@deriv-com/smartcharts-champion 1.9.2 → 1.9.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/.github/workflows/deploy-preview.yml +1 -1
  2. package/CHANGELOG.md +13 -2
  3. package/dist/ar-json-0f73c7.smartcharts.js +1 -1
  4. package/dist/bn-json-0d6eca.smartcharts.js +1 -1
  5. package/dist/chart/flutter_bootstrap.js +1 -1
  6. package/dist/chart/flutter_service_worker.js +1 -1
  7. package/dist/chart/main.dart.js +1 -1
  8. package/dist/de-json-b3239f.smartcharts.js +1 -1
  9. package/dist/es-json-85869d.smartcharts.js +1 -1
  10. package/dist/flutter-chart-adapter-1c321c.smartcharts.js +1 -0
  11. package/dist/flutter-chart-adapter-1c321c.smartcharts.js.map +1 -0
  12. package/dist/fr-json-69f949.smartcharts.js +1 -1
  13. package/dist/html2canvas-33f82f.smartcharts.js +1 -0
  14. package/dist/{html2canvas-06703d.smartcharts.js.map → html2canvas-33f82f.smartcharts.js.map} +1 -1
  15. package/dist/id-json-fd1066.smartcharts.js +1 -1
  16. package/dist/it-json-3a6a0a.smartcharts.js +1 -1
  17. package/dist/km-json-6c33fb.smartcharts.js +1 -1
  18. package/dist/ko-json-6618e5.smartcharts.js +1 -1
  19. package/dist/lz-string-0c6be0.smartcharts.js +1 -1
  20. package/dist/lz-string-0c6be0.smartcharts.js.map +1 -1
  21. package/dist/messages-json-dcf345.smartcharts.js +1 -1
  22. package/dist/mn-json-324f5d.smartcharts.js +1 -1
  23. package/dist/nl-json-0b1291.smartcharts.js +1 -1
  24. package/dist/pl-json-408399.smartcharts.js +1 -1
  25. package/dist/pt-json-f62ac5.smartcharts.js +1 -1
  26. package/dist/resize-observer-polyfill-ca29ff.smartcharts.js +1 -0
  27. package/dist/{resize-observer-polyfill-55e30f.smartcharts.js.map → resize-observer-polyfill-ca29ff.smartcharts.js.map} +1 -1
  28. package/dist/ru-json-64ef7d.smartcharts.js +1 -1
  29. package/dist/si-json-da53eb.smartcharts.js +1 -1
  30. package/dist/smartcharts.js +1 -1
  31. package/dist/smartcharts.js.map +1 -1
  32. package/dist/sw-json-637b1d.smartcharts.js +1 -1
  33. package/dist/th-json-0a9ace.smartcharts.js +1 -1
  34. package/dist/tr-json-9b9028.smartcharts.js +1 -1
  35. package/dist/uz-json-bed401.smartcharts.js +1 -1
  36. package/dist/vi-json-86cd8b.smartcharts.js +1 -1
  37. package/dist/zh-json-bf1035.smartcharts.js +1 -1
  38. package/dist/zh_cn-json-06d50e.smartcharts.js +1 -1
  39. package/dist/zh_tw-json-891074.smartcharts.js +1 -1
  40. package/package.json +3 -3
  41. package/dist/flutter-chart-adapter-df8140.smartcharts.js +0 -1
  42. package/dist/flutter-chart-adapter-df8140.smartcharts.js.map +0 -1
  43. package/dist/html2canvas-06703d.smartcharts.js +0 -1
  44. package/dist/resize-observer-polyfill-55e30f.smartcharts.js +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"resize-observer-polyfill-55e30f.smartcharts.js","mappings":"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","sources":["webpack://smartcharts/./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js"],"sourcesContent":["/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array<Array>} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array<ResizeObserverSPI>}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the <html> itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element (<html>).\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array<ResizeObservation>}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map<Element, ResizeObservation>}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n"],"names":["MapShim","Map","getIndex","arr","key","result","some","entry","index","class_1","this","__entries__","Object","defineProperty","prototype","get","length","enumerable","configurable","set","value","push","delete","entries","splice","has","clear","forEach","callback","ctx","_i","_a","call","isBrowser","window","document","global$1","global","Math","self","Function","requestAnimationFrame$1","requestAnimationFrame","bind","setTimeout","Date","now","transitionKeys","mutationObserverSupported","MutationObserver","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","refresh","delay","leadingCall","trailingCall","lastCallTime","resolvePending","proxy","timeoutCallback","timeStamp","throttle","addObserver","observer","indexOf","connect_","removeObserver","observers","disconnect_","updateObservers_","activeObservers","filter","gatherActive","hasActive","broadcastActive","addEventListener","observe","attributes","childList","characterData","subtree","removeEventListener","disconnect","_b","propertyName","getInstance","instance_","defineConfigurable","target","props","keys","writable","getWindowOf","ownerDocument","defaultView","emptyRect","createRectInit","toFloat","parseFloat","getBordersSize","styles","positions","arguments","reduce","size","position","getHTMLElementContentRect","clientWidth","clientHeight","getComputedStyle","paddings","positions_1","getPaddings","horizPad","left","right","vertPad","top","bottom","width","height","boxSizing","round","documentElement","isDocumentElement","vertScrollbar","horizScrollbar","abs","isSVGGraphicsElement","SVGGraphicsElement","SVGElement","getBBox","getContentRect","bbox","getSVGContentRect","x","y","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","isActive","rect","broadcastRect","ResizeObserverEntry","rectInit","Constr","contentRect","DOMRectReadOnly","create","ResizeObserverSPI","controller","callbackCtx","activeObservations_","observations_","TypeError","callback_","controller_","callbackCtx_","Element","observations","unobserve","clearActive","_this","observation","map","WeakMap","ResizeObserver","method","apply"],"sourceRoot":""}
1
+ {"version":3,"file":"resize-observer-polyfill-ca29ff.smartcharts.js","mappings":"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","sources":["webpack://smartcharts/./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js"],"sourcesContent":["/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array<Array>} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array<ResizeObserverSPI>}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the <html> itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element (<html>).\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array<ResizeObservation>}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map<Element, ResizeObservation>}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n"],"names":["MapShim","Map","getIndex","arr","key","result","some","entry","index","class_1","this","__entries__","Object","defineProperty","prototype","get","length","enumerable","configurable","set","value","push","delete","entries","splice","has","clear","forEach","callback","ctx","_i","_a","call","isBrowser","window","document","global$1","global","Math","self","Function","requestAnimationFrame$1","requestAnimationFrame","bind","setTimeout","Date","now","transitionKeys","mutationObserverSupported","MutationObserver","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","refresh","delay","leadingCall","trailingCall","lastCallTime","resolvePending","proxy","timeoutCallback","timeStamp","throttle","addObserver","observer","indexOf","connect_","removeObserver","observers","disconnect_","updateObservers_","activeObservers","filter","gatherActive","hasActive","broadcastActive","addEventListener","observe","attributes","childList","characterData","subtree","removeEventListener","disconnect","_b","propertyName","getInstance","instance_","defineConfigurable","target","props","keys","writable","getWindowOf","ownerDocument","defaultView","emptyRect","createRectInit","toFloat","parseFloat","getBordersSize","styles","positions","arguments","reduce","size","position","getHTMLElementContentRect","clientWidth","clientHeight","getComputedStyle","paddings","positions_1","getPaddings","horizPad","left","right","vertPad","top","bottom","width","height","boxSizing","round","documentElement","isDocumentElement","vertScrollbar","horizScrollbar","abs","isSVGGraphicsElement","SVGGraphicsElement","SVGElement","getBBox","getContentRect","bbox","getSVGContentRect","x","y","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","isActive","rect","broadcastRect","ResizeObserverEntry","rectInit","Constr","contentRect","DOMRectReadOnly","create","ResizeObserverSPI","controller","callbackCtx","activeObservations_","observations_","TypeError","callback_","controller_","callbackCtx_","Element","observations","unobserve","clearActive","_this","observation","map","WeakMap","ResizeObserver","method","apply"],"sourceRoot":""}
@@ -1 +1 @@
1
- "use strict";(self.webpackChunksmartcharts=self.webpackChunksmartcharts||[]).push([[191],{3351:e=>{e.exports=JSON.parse('{"-DI":"-DI","[symbol] feed is delayed by [delay] minutes":"Данные для [symbol] запаздывают на [delay] мин.","[symbol] market is now opened.":"Рынок [symbol] открыт.","[symbol] market is presently closed.":"Рынок [symbol] в настоящее время закрыт.","+DI":"+DI","2-Exponential":"2-Экспоненциальный","3-Exponential":"3-экспоненциальный","A technical momentum indicator that compares a security\'s closing price to its price range over a given time period. The oscillator\'s sensitivity to market movements can be reduced by adjusting the time period or by taking a moving average of the result.":"Технический индикатор темпа, который сравнивает цену закрытия ценной бумаги с диапазоном её цен на протяжении заданного периода времени. Уменьшить чувствительность осциллятора к рыночным движениям можно путём регулирования временного периода или воспользовавшись скользящей средней.","Active":"Активные","Add":"Добавить","Add new template":"Добавить новый шаблон","Add new templates":"Добавить новые шаблоны","ADX":"ADX","ADX/DMS":"ADX/DMS","All drawings":"Все рисунки","Alligator":"Аллигатор","already exists.":"уже существует.","Are you sure?":"Вы уверены?","Area":"Область","Aroon":"Арун","Aroon Down":"Арун (вниз)","Aroon Up":"Арун (вверх)","Available only for \\\\\\"Area\\\\\\" chart type.":"Доступно только для графика \\\\\\"с областями\\\\\\".","Available only for non-tick time intervals.":"Недоступно для тиковых временных интервалов.","Awesome":"Великолепный","Awesome Oscillator":"Чудесный осциллятор","Axis Label":"Метка оси","Base Line":"Базовая линия","Base Line Period":"Период усреднения базовой линии","Bill Williams introduced the Alligator indicator in 1995. The Alligator is as much a metaphor as it is an indicator. It consists of three lines, overlaid on a pricing chart, that represent the jaw, the teeth and the lips of the beast, and was created to help the trader confirm the presence of a trend and its direction. The Alligator indicator can also help traders designate impulse and corrective wave formations, but the tool works best when combined with a momentum indicator.":"Билл Уильямс представил индикатор «Аллигатор» в 1995 году. «Аллигатор» состоит из трех линий, наложенных на ценовой график, которые представляют челюсть, зубы и губы зверя, и был создан, чтобы помочь трейдерам подтвердить наличие тренда и его направление. С помощью Аллигатора также можно определять образование импульсных и корректирующих волн. Стоит отметить, что этот инструмент лучше всего работает в сочетании с индикатором темпа.","Bollinger Bands":"Полосы Боллинджера","Bollinger Bands Bottom":"Полосы Боллинджера (нижний уровень)","Bollinger Bands can be used to measure the highness or lowness of the price relative to previous trades.":"Полосы Боллинджера измеряют максимум или минимум цены по отношению к предыдущим контрактам.","Bollinger Bands Median":"Полосы Боллинджера (медианный уровень)","Bollinger Bands Top":"Полосы Боллинджера (верхний уровень)","Cancel":"Отмена","Candle":"Свеча","CCI":"CCI","Channel Fill":"Заполнение канала","Chart data is not available for this symbol.":"График недоступен для данного актива.","Chart types":"Виды графиков","Charts":"Графики","Clear all":"Очистить все","Click on the chart to confirm point {{step}}.":"Нажмите на график, чтобы подтвердить точку {{step}}.","Click on the chart to confirm the end point.":"Нажмите на график, чтобы подтвердить конечную точку.","Click on the chart to confirm the start point.":"Нажмите на график, чтобы подтвердить начальную точку.","Click on the chart to place the line.":"Нажмите на график, чтобы разместить линию.","Close":"Закрытие","CLOSED":"ЗАКРЫТО","Color":"Цвет","Commodity Channel Index":"Индекс товарного канала","Continue":"Продолжить","Conversion Line":"Конверсионная линия","Conversion Line Period":"Период усреднения конверсионной линии","CSV":"CSV","Dark":"Тёмный","day":"дн.","days":"дн.","Decreasing Bar":"Столбец падения","Detrended":"Детрендированный","Detrended Price Oscillator":"Осциллятор бестрендовой цены","Developed by Larry Williams, Williams %R is a momentum indicator that is the inverse of the Fast Stochastic Oscillator. Also referred to as %R, Williams %R reflects the level of the close relative to the highest high for the look-back period.":"Диапазон Уильямса (%R), разработанный Ларри Уильямсом, служит индикатором темпа, который противоположен быстрому стохастическому осциллятору. Его также часто называют %R. Индикатор показывает уровень цены закрытия относительно максимума за определенный период.","Developed by Tushar Chande in 1995, Aroon is an indicator system that determines whether a stock is trending or not and how strong the trend is. There are two separate indicators: Aroon-Up and Aroon-Down. A 25-day Aroon-Up measures the number of days since a 25-day high. A 25-day Aroon-Down measures the number of days since a 25-day low.":"Арун – это система индикаторов, разработанная Тушаром Чэндом в 1995 году. Система определяет, развивает ли инструмент какой-либо тренд, а также силу данного тренда. Выделяют две разновидности индикатора: Арун-Вверх и Арун-Вниз. 25-дневный Арун-Вверх измеряет количество дней после 25-дневного максимума. 25-дневный Арун-Вниз измеряет количество дней после 25-дневного минимума.","Disable Crosshair":"Отключить прицел","Display data for a specific date and time":"Показать данные для определенных даты/времени","Display remaining time for each interval":"Показать оставшееся время для каждого интервала","Display the highest and lowest spot price":"Показать максимальную и минимальную спот-цену","Distance(%)":"Расстояние (%)","Donchian Channel":"Канал Дончиана","Donchian High":"Канал Дончиана (высокий уровень)","Donchian Low":"Канал Дончиана (низкий уровень)","Donchian Median":"Канал Дончиана (медианный уровень)","Done":"Готово","Double Smoothing Period":"Период двойного сглаживания","Download":"Загрузить","Download your current chart view as a PNG or export the historical data for analysis as a CSV.":"Скачайте текущий вид графика в формате PNG или экспортируйте исторические данные для анализа в формате CSV.","Drawing tools":"Ср-ва отображения","Enable Crosshair":"Включить прицел","Exponential":"Экспоненциальный","Fast":"Быстрый","Fast MA Period":"Период быстрой скользящей средней","Favorites":"Избранное","Field":"Поле","Fill Color":"Цвет заливки","Fractal Channel":"Канал фракталов","Fractal Chaos Band":"Полоса фрактала и хаоса","Fractal High":"Фрактал (высокий)","Fractal Low":"Фрактал (низкий)","Fractals are indicators on candlestick charts that identify reversal points in the market. Traders often use fractals to get an idea about the direction in which the price will develop. A fractal will form when a particular price pattern happens on a chart.":"Фракталы - это индикаторы на графике японских свечей, которые определяют уровни разворота на рынке. Трейдеры часто используют фракталы, чтобы определить направление, в котором будет двигаться цена. Фракталы образуются при появлении на графике определённых фигур.","H":"Мак","High":"Верхн.","High Period":"Высокий период","Highest and lowest spot":"Самая высокая и самая низкая спот-котировки","Histogram":"Гистограмма","Historical data mode":"Исторические данные","Hl/2":"Hl/2","Hlc/3":"Hlc/3","Hlcc/4":"Hlcc/4","Hollow":"Полый","Horizontal line [num]":"Горизонталь [num]","hour":"час.","hours":"час.","Hull":"Корпус","Ichimoku Clouds":"Облака Ишимоку","Increasing Bar":"Столбец роста","Indicators":"Индикаторы","Interval duration":"Продолжительность интервала","Jaw":"Синяя линия (челюсти аллигатора)","Jaw Offset":"Смещение синей линии","Jaw Period":"Период усреднения синей линии","L":"Мин","Lagging Span":"Период отставания","Lagging Span Period":"Период отставания","Language":"Язык","Last digits stats for latest 1000 ticks on":"Статистика последних десятичных в последних 1000 тиков для","Leading Span A":"Период опережения A","Leading Span B":"Период опережения B","Leading Span B Period":"Период опережения B","Light":"Светлый","Lips":"Зеленая линия (губы аллигатора)","Lips Offset":"Смещение зеленый линии","Lips Period":"Период усреднения зеленой линии","Low":"Нижн.","Low Period":"Низкий период","MA":"MA","MA Env":"MA Env","MA Env Bottom":"Конверт скользящих средних (минимальный)","MA Env Median":"Конверт скользящих средних (медианный)","MA Env Top":"Конверт скользящих средних (максимальный)","MACD":"MACD","MACD is a trading indicator used in technical analysis of stock prices. It is supposed to reveal changes in the strength, direction, momentum, and duration of a trend in a stock\'s price.":"MACD – это индикатор, использующийся для технического анализа цены акций. Он выявляет изменение силы, направления, темпа и продолжительности тренда, отмечающегося на цене акции.","Markets":"Рынки","Maximum AF":"Макс. AF","Minimum AF":"Мин. AF","minute":"мин.","minutes":"мин.","Momentum":"Моментум","Moving Average (MA)":"Скользящая средняя (MA)","Moving Average Envelope":"Конверт скользящих средних","Moving Average Type":"Тип скользящего среднего","Moving averages":"Скользящие средние","Negative Bar":"Отрицательная граница","Network status":"Статус сети","No results for":"Не найдено результатов для","Offset":"Офсет","OHLC":"OHLC","Ohlc/4":"Ohlc/4","Only selected charts and time intervals are available for this trade type.":"Не все графики и временные интервалы доступны для этого типа контракта.","Open":"Открытие","Opens in:":"Откроется через:","Others":"Другое","OverBought":"OverBought (перекупленность)","OverSold":"OverSold (перепроданность)","Overwrite":"Переписать","Parabolic SAR":"Параболическая система SAR","Percent":"Процент","Performance may vary by device. Turn off if it lags.":"Производительность может отличаться в зависимости от устройства. Выключите, если задержки.","Period":"Период","Platform settings":"Настройки платформы","PNG":"PNG","Point":"Пункт","Positive Bar":"Положительная граница","Price Rate of Change":"Скорость изменения цены","Price ROC":"Цена ROC","PSAR":"PSAR","Rainbow MA":"Радуга MA","Rainbow Moving Average":"Радужная скользящая средняя","Relative Strength Index (RSI)":"Индекс относительной силы (RSI)","removed":"удалено","Reset":"Сбросить","Result":"Результат","Retrieving Chart Data...":"Получение данных графика...","Retrieving Chart Engine...":"Получение данных из Chart Engine...","Retrieving Market Symbols...":"Получение рыночных данных...","Retrieving Trading Times...":"Получение времени торговли...","RSI":"RSI","Saved templates":"Сохраненные шаблоны","Search":"Поиск","Search...":"Поиск...","Select language":"Выберите язык","Select theme":"Выбрать тему","Series":"Серия","Settings":"Настройки","Shading":"Незначительное понижение","Shift":"Сдвиг","Shift Type":"Тип сдвигу","Show Fractals":"Показать фракталы","Show Lines":"Показать линии","Show Zones":"Показать зоны","Signal":"Сигнал","Signal Period":"Период сигнала","Simple":"Простота","Size":"Размер","Slow":"Медленный","Slow MA Period":"Период медленной скользящей средней","SMA1":"SMA1","SMA10":"SMA10","SMA2":"SMA2","SMA3":"SMA3","SMA4":"SMA4","SMA5":"SMA5","SMA6":"SMA6","SMA7":"SMA7","SMA8":"SMA8","SMA9":"SMA9","Smooth":"Плавный","Smooth chart movement":"Плавное перемещение графика","Smoothing Period":"Период сглаживания","Some of your active indicators don’t support 1-tick intervals. If you change to a 1-tick interval, these indicators will be removed from your chart.":"Некоторые из активных индикаторов не поддерживают интервалы в 1 тик. Если вы измените интервал на 1 тик, эти индикаторы будут удалены с графика.","Some of your templates may not work with this trade type.":"Некоторые из ваших шаблонов могут не работать с этим типом сделки.","Standard Deviations":"Среднеквадратичные отклонения","Stch Mtm":"Stch Mtm","Stochastic":"Стохастический","Stochastic Momentum Index":"Индекс стохастического темпа","Stochastic Oscillator":"Стохастический осциллятор","Streaming for [symbol] is not available due to license restrictions":"Потоковые котировки для [symbol] недоступны из-за лицензионных ограничений","Teeth":"Красная линия (зубы аллигатора)","Teeth Offset":"Смещение красной линии","Teeth Period":"Период усреднения красной линии","Templates":"Шаблоны","The Average Directional Movement Index index (ADX) was developed in 1978 by J. Welles Wilder as an indicator of trend strength in a series of prices of a financial instrument ADX will range between 0 and 100. Generally, ADX readings below 20 indicate trend weakness, and readings above 40 indicate trend strength.":"Индекс среднего направления (ADX) впервые был предложен в 1978 Дж. Уэллсом Уайлдером в качестве индикатора силы тренда в серии котировок финансового инструмента. ADX рассчитывается по шкале от 0 до 100. Как правило, если ADX опускается ниже 20, это означает слабый тренд, а рост показателя выше 40 говорит о силе тренда.","The Awesome Oscillator is an indicator used to measure market momentum. AO calculates the difference of a 34 Period and 5 Period Simple Moving Averages. The Simple Moving Averages that are used are not calculated using closing price but rather each bar\'s midpoints. AO is generally used to affirm trends or to anticipate possible reversals.":"Чудесный осциллятор – это индикатор, измеряющий темп рынка. Чудесный осциллятор (AO) рассчитывает разницу значений простой скользящей средней за 34 периода и 5 периодов. Применяемые простые скользящие средние не учитывают цену закрытия, но учитывают средние значения каждого столбика на графике. Как правило, Чудесный осциллятор применяется для подтверждения тренда и предсказания возможных разворотов.","The Commodity Channel Index (CCI) is a versatile indicator that can be used to identify a new trend or warn of extreme conditions.":"Индекс товарного канала (CCI) – гибкий индикатор, призванный определить новый тренд или предупредить о формировании экстремальных условий.","The Detrended Price Oscillator (DPO) helps to identify price cycles without the influence of short- and long-term trends. The DPO compares a simple moving average to a historical pricenear the middle of a specified period. It also shows the peaks and drops over that particular period, making it easier to predict buy points.":"Осциллятор бестрендовой цены (DPO) помогает идентифицировать ценовые циклы без учета краткосрочных и долгосрочных трендов. DPO сравнивает простую скользящую среднюю с исторической ценой около середины указанного периода. Он также показывает пики и падения за этот конкретный период, что упрощает прогнозирование точек покупки.","The Donchian Channel is an indicator used in market trading developed by Richard Donchian. It is formed by taking the highest high and the lowest low of the last n periods. The area between the high and the low is the channel for the period chosen.":"Канал Дончиана – это индикатор, разработанный Ричардом Дончианом и применяемый для торговли на рынке. Индикатор основан на максимуме и минимуме за последние n периодов. Промежуток между максимумом и минимумом является каналом за выбранный период.","The Ichimoku Cloud, also known as Ichimoku Kinko Hyo, is a versatile indicator that defines support and resistance, identifies trend direction, gauges momentum and provides trading signals. Ichimoku Kinko Hyo translates into “one look equilibrium chart”.":"Облако Ишимоку, также известное как Ichimoku Kinko Hyo, является универсальным индикатором, который определяет поддержку, сопротивление, направление тренда, измеряет темп и предоставляет торговые сигналы. Ichimoku Kinko Hyo переводится как \\"диаграмма равновесия одного взгляда\\".","The Moving Average (MA) helps to identify the overall market trend by filtering out short-term price fluctuations. Using historical data, it calculates the average price over a specific period and plots a line on the chart. If the MA line moves upwards, it’s an indicator of an uptrend, a downtrend if it moves downwards. A buy signal occurs when the price moves above the MA line.":"Скользящее среднее (MA) помогает определить общую рыночную тенденцию, отфильтровывая краткосрочные колебания цен. Используя исторические данные, индикатор рассчитывает среднюю цену за определенный период и строит линию на графике. Если линия MA движется вверх, это показатель восходящего тренда, а если он движется вниз - нисходящего. Сигналом на покупку может служить движение цены выше линии МА.","The Moving Average Envelope (MAE) helps to identify strong price movement that indicates the start of a trend. The MAE creates a moving average line as well as 2 bands around it. In theory, when the market price touches the upper or lower bands, a trend reversal will occur, indicating a buy signal.":"Конверт скользящих средних (MAE) помогает определить сильное ценовое движение, которое указывает на начало тренда. MAE создает линию скользящего среднего, а также 2 полосы сверху и снизу от нее. Теоретически, когда рыночная цена касается верхней или нижней полосы, произойдет разворот тренда, что служит сигналом к покупке.","The parabolic SAR is calculated almost independently for each trend in the price. When the price is in an uptrend, the SAR emerges below the price and converges upwards towards it. Similarly, on a downtrend, the SAR emerges above the price and converges downwards. At each step within a trend, the SAR is calculated one period in advance.":"Параболическая система SAR (SAR) рассчитывается практически индивидуально для каждого тренда. Когда цена демонстрирует восходящий тренд, SAR находится ниже цены и стремится вверх. Аналогичным образом, когда цена демонстрирует нисходящий тренд, SAR находится выше цены и стремится вниз. На каждом этапе тренда SAR рассчитывается на один период вперёд.","The Price Rate-of-Change (ROC) indicator displays the difference between the current price and the price x-time periods ago. The difference can be displayed in either points or as a percentage.":"Индикатор Скорость изменения цены (ROC) показывает разницу между текущей ценой и ценой x периодов назад. Разница может быть отображена в пунктах или процентах.","The Rainbow Moving Average (RMA) displays several moving average lines simultaneously. When the lines intersect, it’s an indicator of price reversal and the angle of the lines are helpful to predict the trend strength. The steeper the curve, the stronger the trend. When the price crosses the moving average lines from below, it signals an upward trend. When the price crosses the moving average lines from above, it signals a downward trend. The RMA is easier to use compared to using several different moving average indicators at once.":"Радужная скользящая средняя (RMA) отображает несколько линий скользящей средней одновременно. Пересечение линий служит индикатором разворота цены, а угол линий помогает предсказать силу тренда - чем круче кривая, тем сильнее тренд. Когда цена пересекает линии скользящей средней снизу, это сигнализирует о восходящем тренде, а когда цена пересекает линии скользящей средней сверху - о нисходящем тренде. RMA проще в использовании по сравнению с применением нескольких разных индикаторов скользящей средней одновременно.","The Relative Strength Index (RSI) was published by J. Welles Wilder. The current price is normalized as a percentage between 0 and 100. The name of this oscillator is misleading because it does not compare the instrument relative to another instrument or set of instruments, but rather represents the current price relative to other recent prices within the selected lookback window length.":"Индекс относительной силы (RSI) разработан Дж. Уэллсом Уайлдером. Текущая цена нормализована в виде процента от 0 до 100. Название индикатора может ввести в заблуждение, так как он не сравнивает инструмент по отношению к другому инструменту или ряду инструментов, а отображает текущую цену по отношению к другим недавним ценам за выбранный период.","The Stochastic Momentum Index (SMI) helps to identify overbought or oversold conditions in the market and to predict bearish or bullish trends. It calculates the distance between the current closing price and the median of the high/low range, and displays 2 lines on the chart: the first (known as %K) represents the price movement while the second (known as %D) is a moving average of the first line. If the closing price is higher than the median of the high/low range, the SMI returns a positive value. If the closing price is lower than the average price, a negative value is returned. Values above 40 indicate a bullish trend while values below -40 indicate a bearish trend.":"Индекс Стохастического Моментума (SMI) помогает идентифицировать условия перекупленности или перепроданности на рынке и прогнозировать медвежьи или бычьи тренды. Он рассчитывает расстояние между текущей ценой закрытия и медианой диапазона максимума/минимума, и отображает 2 линии на графике: первая (известная как %K) представляет движение цены, а вторая (известная как %D) представляет собой скользящее среднее первой линии. Если цена закрытия выше, чем медиана диапазона максимума/минимума, SMI возвращает положительное значение. Если цена закрытия ниже средней цены, возвращается отрицательное значение. Значения выше 40 указывают на бычий тренд, а значения ниже -40 указывают на медвежий тренд.","Themes":"Темы","There are no favorites yet.":"Нет записей в избранном.","This indicator does not support 1-tick intervals. To use this indicator, change your chart time interval to 1 minute or more.":"Этот индикатор не поддерживает интервалы в 1 тик. Чтобы использовать этот индикатор, измените временной интервал графика на 1 минуту или более.","tick":"тик.","Tick interval only available for \\\\\\"Area\\\\\\" Chart type.":"Тиковый интервал доступен только для графика \\\\\\"с областями\\\\\\".","Time interval":"Интервал","Time Series":"Временные ряды","Trend":"Тренд","Trend line [num]":"Тренд [num]","Triangular":"Треугольный","Try checking your spelling or use a different term":"Проверьте орфографию или используйте другой термин","Type":"Тип","Up to 2 active indicators allowed.":"До 2 индикаторов одновременно.","Up to 5 active indicators allowed.":"До пяти индикаторов одновременно.","Variable":"Переменная","Vertical line [num]":"Вертикаль [num]","Volatility":"Волатильность","Weighted":"Взвешенный","Welles Wilder":"Уэллс Уайлдер","William\'s %R":"William\'s %R","William\'s Percent Range":"Процентный диапазон Уильямса","Would you like to overwrite it?":"Хотите перезаписать?","You have no active drawings yet.":"У вас пока нет активных рисунков.","You have no active indicators yet.":"У вас пока нет активных индикаторов.","You have no saved templates yet.":"У Вас пока нет сохранённых шаблонов.","Zero Lag":"Нулевая задержка","Zig Zag":"Zig Zag","Zig Zag helps to identify trend reversals and filters out relatively small price movements by determining the support and resistance levels of the market. It accepts a percentage of deviation as the input and displays a line if the price change is larger than the percentage of deviation. Zig Zag ignores any sideways movement and is useful to filter out “market noise”.":"Zig Zag помогает идентифицировать развороты тренда и отфильтровывает относительно небольшие ценовые движения, определяя уровни поддержки и сопротивления рынка. Он принимает процент отклонения в качестве входных данных и отображает линию, если изменение цены больше, чем процент отклонения. Zig Zag игнорирует любые боковые движения и полезен для фильтрации \\"рыночного шума\\".","Zoom in":"Увеличить","Zoom out":"Уменьшить"}')}}]);
1
+ "use strict";(self.webpackChunksmartcharts=self.webpackChunksmartcharts||[]).push([[191],{3351(e){e.exports=JSON.parse('{"-DI":"-DI","[symbol] feed is delayed by [delay] minutes":"Данные для [symbol] запаздывают на [delay] мин.","[symbol] market is now opened.":"Рынок [symbol] открыт.","[symbol] market is presently closed.":"Рынок [symbol] в настоящее время закрыт.","+DI":"+DI","2-Exponential":"2-Экспоненциальный","3-Exponential":"3-экспоненциальный","A technical momentum indicator that compares a security\'s closing price to its price range over a given time period. The oscillator\'s sensitivity to market movements can be reduced by adjusting the time period or by taking a moving average of the result.":"Технический индикатор темпа, который сравнивает цену закрытия ценной бумаги с диапазоном её цен на протяжении заданного периода времени. Уменьшить чувствительность осциллятора к рыночным движениям можно путём регулирования временного периода или воспользовавшись скользящей средней.","Active":"Активные","Add":"Добавить","Add new template":"Добавить новый шаблон","Add new templates":"Добавить новые шаблоны","ADX":"ADX","ADX/DMS":"ADX/DMS","All drawings":"Все рисунки","Alligator":"Аллигатор","already exists.":"уже существует.","Are you sure?":"Вы уверены?","Area":"Область","Aroon":"Арун","Aroon Down":"Арун (вниз)","Aroon Up":"Арун (вверх)","Available only for \\\\\\"Area\\\\\\" chart type.":"Доступно только для графика \\\\\\"с областями\\\\\\".","Available only for non-tick time intervals.":"Недоступно для тиковых временных интервалов.","Awesome":"Великолепный","Awesome Oscillator":"Чудесный осциллятор","Axis Label":"Метка оси","Base Line":"Базовая линия","Base Line Period":"Период усреднения базовой линии","Bill Williams introduced the Alligator indicator in 1995. The Alligator is as much a metaphor as it is an indicator. It consists of three lines, overlaid on a pricing chart, that represent the jaw, the teeth and the lips of the beast, and was created to help the trader confirm the presence of a trend and its direction. The Alligator indicator can also help traders designate impulse and corrective wave formations, but the tool works best when combined with a momentum indicator.":"Билл Уильямс представил индикатор «Аллигатор» в 1995 году. «Аллигатор» состоит из трех линий, наложенных на ценовой график, которые представляют челюсть, зубы и губы зверя, и был создан, чтобы помочь трейдерам подтвердить наличие тренда и его направление. С помощью Аллигатора также можно определять образование импульсных и корректирующих волн. Стоит отметить, что этот инструмент лучше всего работает в сочетании с индикатором темпа.","Bollinger Bands":"Полосы Боллинджера","Bollinger Bands Bottom":"Полосы Боллинджера (нижний уровень)","Bollinger Bands can be used to measure the highness or lowness of the price relative to previous trades.":"Полосы Боллинджера измеряют максимум или минимум цены по отношению к предыдущим контрактам.","Bollinger Bands Median":"Полосы Боллинджера (медианный уровень)","Bollinger Bands Top":"Полосы Боллинджера (верхний уровень)","Cancel":"Отмена","Candle":"Свеча","CCI":"CCI","Channel Fill":"Заполнение канала","Chart data is not available for this symbol.":"График недоступен для данного актива.","Chart types":"Виды графиков","Charts":"Графики","Clear all":"Очистить все","Click on the chart to confirm point {{step}}.":"Нажмите на график, чтобы подтвердить точку {{step}}.","Click on the chart to confirm the end point.":"Нажмите на график, чтобы подтвердить конечную точку.","Click on the chart to confirm the start point.":"Нажмите на график, чтобы подтвердить начальную точку.","Click on the chart to place the line.":"Нажмите на график, чтобы разместить линию.","Close":"Закрытие","CLOSED":"ЗАКРЫТО","Color":"Цвет","Commodity Channel Index":"Индекс товарного канала","Continue":"Продолжить","Conversion Line":"Конверсионная линия","Conversion Line Period":"Период усреднения конверсионной линии","CSV":"CSV","Dark":"Тёмный","day":"дн.","days":"дн.","Decreasing Bar":"Столбец падения","Detrended":"Детрендированный","Detrended Price Oscillator":"Осциллятор бестрендовой цены","Developed by Larry Williams, Williams %R is a momentum indicator that is the inverse of the Fast Stochastic Oscillator. Also referred to as %R, Williams %R reflects the level of the close relative to the highest high for the look-back period.":"Диапазон Уильямса (%R), разработанный Ларри Уильямсом, служит индикатором темпа, который противоположен быстрому стохастическому осциллятору. Его также часто называют %R. Индикатор показывает уровень цены закрытия относительно максимума за определенный период.","Developed by Tushar Chande in 1995, Aroon is an indicator system that determines whether a stock is trending or not and how strong the trend is. There are two separate indicators: Aroon-Up and Aroon-Down. A 25-day Aroon-Up measures the number of days since a 25-day high. A 25-day Aroon-Down measures the number of days since a 25-day low.":"Арун – это система индикаторов, разработанная Тушаром Чэндом в 1995 году. Система определяет, развивает ли инструмент какой-либо тренд, а также силу данного тренда. Выделяют две разновидности индикатора: Арун-Вверх и Арун-Вниз. 25-дневный Арун-Вверх измеряет количество дней после 25-дневного максимума. 25-дневный Арун-Вниз измеряет количество дней после 25-дневного минимума.","Disable Crosshair":"Отключить прицел","Display data for a specific date and time":"Показать данные для определенных даты/времени","Display remaining time for each interval":"Показать оставшееся время для каждого интервала","Display the highest and lowest spot price":"Показать максимальную и минимальную спот-цену","Distance(%)":"Расстояние (%)","Donchian Channel":"Канал Дончиана","Donchian High":"Канал Дончиана (высокий уровень)","Donchian Low":"Канал Дончиана (низкий уровень)","Donchian Median":"Канал Дончиана (медианный уровень)","Done":"Готово","Double Smoothing Period":"Период двойного сглаживания","Download":"Загрузить","Download your current chart view as a PNG or export the historical data for analysis as a CSV.":"Скачайте текущий вид графика в формате PNG или экспортируйте исторические данные для анализа в формате CSV.","Drawing tools":"Ср-ва отображения","Enable Crosshair":"Включить прицел","Exponential":"Экспоненциальный","Fast":"Быстрый","Fast MA Period":"Период быстрой скользящей средней","Favorites":"Избранное","Field":"Поле","Fill Color":"Цвет заливки","Fractal Channel":"Канал фракталов","Fractal Chaos Band":"Полоса фрактала и хаоса","Fractal High":"Фрактал (высокий)","Fractal Low":"Фрактал (низкий)","Fractals are indicators on candlestick charts that identify reversal points in the market. Traders often use fractals to get an idea about the direction in which the price will develop. A fractal will form when a particular price pattern happens on a chart.":"Фракталы - это индикаторы на графике японских свечей, которые определяют уровни разворота на рынке. Трейдеры часто используют фракталы, чтобы определить направление, в котором будет двигаться цена. Фракталы образуются при появлении на графике определённых фигур.","H":"Мак","High":"Верхн.","High Period":"Высокий период","Highest and lowest spot":"Самая высокая и самая низкая спот-котировки","Histogram":"Гистограмма","Historical data mode":"Исторические данные","Hl/2":"Hl/2","Hlc/3":"Hlc/3","Hlcc/4":"Hlcc/4","Hollow":"Полый","Horizontal line [num]":"Горизонталь [num]","hour":"час.","hours":"час.","Hull":"Корпус","Ichimoku Clouds":"Облака Ишимоку","Increasing Bar":"Столбец роста","Indicators":"Индикаторы","Interval duration":"Продолжительность интервала","Jaw":"Синяя линия (челюсти аллигатора)","Jaw Offset":"Смещение синей линии","Jaw Period":"Период усреднения синей линии","L":"Мин","Lagging Span":"Период отставания","Lagging Span Period":"Период отставания","Language":"Язык","Last digits stats for latest 1000 ticks on":"Статистика последних десятичных в последних 1000 тиков для","Leading Span A":"Период опережения A","Leading Span B":"Период опережения B","Leading Span B Period":"Период опережения B","Light":"Светлый","Lips":"Зеленая линия (губы аллигатора)","Lips Offset":"Смещение зеленый линии","Lips Period":"Период усреднения зеленой линии","Low":"Нижн.","Low Period":"Низкий период","MA":"MA","MA Env":"MA Env","MA Env Bottom":"Конверт скользящих средних (минимальный)","MA Env Median":"Конверт скользящих средних (медианный)","MA Env Top":"Конверт скользящих средних (максимальный)","MACD":"MACD","MACD is a trading indicator used in technical analysis of stock prices. It is supposed to reveal changes in the strength, direction, momentum, and duration of a trend in a stock\'s price.":"MACD – это индикатор, использующийся для технического анализа цены акций. Он выявляет изменение силы, направления, темпа и продолжительности тренда, отмечающегося на цене акции.","Markets":"Рынки","Maximum AF":"Макс. AF","Minimum AF":"Мин. AF","minute":"мин.","minutes":"мин.","Momentum":"Моментум","Moving Average (MA)":"Скользящая средняя (MA)","Moving Average Envelope":"Конверт скользящих средних","Moving Average Type":"Тип скользящего среднего","Moving averages":"Скользящие средние","Negative Bar":"Отрицательная граница","Network status":"Статус сети","No results for":"Не найдено результатов для","Offset":"Офсет","OHLC":"OHLC","Ohlc/4":"Ohlc/4","Only selected charts and time intervals are available for this trade type.":"Не все графики и временные интервалы доступны для этого типа контракта.","Open":"Открытие","Opens in:":"Откроется через:","Others":"Другое","OverBought":"OverBought (перекупленность)","OverSold":"OverSold (перепроданность)","Overwrite":"Переписать","Parabolic SAR":"Параболическая система SAR","Percent":"Процент","Performance may vary by device. Turn off if it lags.":"Производительность может отличаться в зависимости от устройства. Выключите, если задержки.","Period":"Период","Platform settings":"Настройки платформы","PNG":"PNG","Point":"Пункт","Positive Bar":"Положительная граница","Price Rate of Change":"Скорость изменения цены","Price ROC":"Цена ROC","PSAR":"PSAR","Rainbow MA":"Радуга MA","Rainbow Moving Average":"Радужная скользящая средняя","Relative Strength Index (RSI)":"Индекс относительной силы (RSI)","removed":"удалено","Reset":"Сбросить","Result":"Результат","Retrieving Chart Data...":"Получение данных графика...","Retrieving Chart Engine...":"Получение данных из Chart Engine...","Retrieving Market Symbols...":"Получение рыночных данных...","Retrieving Trading Times...":"Получение времени торговли...","RSI":"RSI","Saved templates":"Сохраненные шаблоны","Search":"Поиск","Search...":"Поиск...","Select language":"Выберите язык","Select theme":"Выбрать тему","Series":"Серия","Settings":"Настройки","Shading":"Незначительное понижение","Shift":"Сдвиг","Shift Type":"Тип сдвигу","Show Fractals":"Показать фракталы","Show Lines":"Показать линии","Show Zones":"Показать зоны","Signal":"Сигнал","Signal Period":"Период сигнала","Simple":"Простота","Size":"Размер","Slow":"Медленный","Slow MA Period":"Период медленной скользящей средней","SMA1":"SMA1","SMA10":"SMA10","SMA2":"SMA2","SMA3":"SMA3","SMA4":"SMA4","SMA5":"SMA5","SMA6":"SMA6","SMA7":"SMA7","SMA8":"SMA8","SMA9":"SMA9","Smooth":"Плавный","Smooth chart movement":"Плавное перемещение графика","Smoothing Period":"Период сглаживания","Some of your active indicators don’t support 1-tick intervals. If you change to a 1-tick interval, these indicators will be removed from your chart.":"Некоторые из активных индикаторов не поддерживают интервалы в 1 тик. Если вы измените интервал на 1 тик, эти индикаторы будут удалены с графика.","Some of your templates may not work with this trade type.":"Некоторые из ваших шаблонов могут не работать с этим типом сделки.","Standard Deviations":"Среднеквадратичные отклонения","Stch Mtm":"Stch Mtm","Stochastic":"Стохастический","Stochastic Momentum Index":"Индекс стохастического темпа","Stochastic Oscillator":"Стохастический осциллятор","Streaming for [symbol] is not available due to license restrictions":"Потоковые котировки для [symbol] недоступны из-за лицензионных ограничений","Teeth":"Красная линия (зубы аллигатора)","Teeth Offset":"Смещение красной линии","Teeth Period":"Период усреднения красной линии","Templates":"Шаблоны","The Average Directional Movement Index index (ADX) was developed in 1978 by J. Welles Wilder as an indicator of trend strength in a series of prices of a financial instrument ADX will range between 0 and 100. Generally, ADX readings below 20 indicate trend weakness, and readings above 40 indicate trend strength.":"Индекс среднего направления (ADX) впервые был предложен в 1978 Дж. Уэллсом Уайлдером в качестве индикатора силы тренда в серии котировок финансового инструмента. ADX рассчитывается по шкале от 0 до 100. Как правило, если ADX опускается ниже 20, это означает слабый тренд, а рост показателя выше 40 говорит о силе тренда.","The Awesome Oscillator is an indicator used to measure market momentum. AO calculates the difference of a 34 Period and 5 Period Simple Moving Averages. The Simple Moving Averages that are used are not calculated using closing price but rather each bar\'s midpoints. AO is generally used to affirm trends or to anticipate possible reversals.":"Чудесный осциллятор – это индикатор, измеряющий темп рынка. Чудесный осциллятор (AO) рассчитывает разницу значений простой скользящей средней за 34 периода и 5 периодов. Применяемые простые скользящие средние не учитывают цену закрытия, но учитывают средние значения каждого столбика на графике. Как правило, Чудесный осциллятор применяется для подтверждения тренда и предсказания возможных разворотов.","The Commodity Channel Index (CCI) is a versatile indicator that can be used to identify a new trend or warn of extreme conditions.":"Индекс товарного канала (CCI) – гибкий индикатор, призванный определить новый тренд или предупредить о формировании экстремальных условий.","The Detrended Price Oscillator (DPO) helps to identify price cycles without the influence of short- and long-term trends. The DPO compares a simple moving average to a historical pricenear the middle of a specified period. It also shows the peaks and drops over that particular period, making it easier to predict buy points.":"Осциллятор бестрендовой цены (DPO) помогает идентифицировать ценовые циклы без учета краткосрочных и долгосрочных трендов. DPO сравнивает простую скользящую среднюю с исторической ценой около середины указанного периода. Он также показывает пики и падения за этот конкретный период, что упрощает прогнозирование точек покупки.","The Donchian Channel is an indicator used in market trading developed by Richard Donchian. It is formed by taking the highest high and the lowest low of the last n periods. The area between the high and the low is the channel for the period chosen.":"Канал Дончиана – это индикатор, разработанный Ричардом Дончианом и применяемый для торговли на рынке. Индикатор основан на максимуме и минимуме за последние n периодов. Промежуток между максимумом и минимумом является каналом за выбранный период.","The Ichimoku Cloud, also known as Ichimoku Kinko Hyo, is a versatile indicator that defines support and resistance, identifies trend direction, gauges momentum and provides trading signals. Ichimoku Kinko Hyo translates into “one look equilibrium chart”.":"Облако Ишимоку, также известное как Ichimoku Kinko Hyo, является универсальным индикатором, который определяет поддержку, сопротивление, направление тренда, измеряет темп и предоставляет торговые сигналы. Ichimoku Kinko Hyo переводится как \\"диаграмма равновесия одного взгляда\\".","The Moving Average (MA) helps to identify the overall market trend by filtering out short-term price fluctuations. Using historical data, it calculates the average price over a specific period and plots a line on the chart. If the MA line moves upwards, it’s an indicator of an uptrend, a downtrend if it moves downwards. A buy signal occurs when the price moves above the MA line.":"Скользящее среднее (MA) помогает определить общую рыночную тенденцию, отфильтровывая краткосрочные колебания цен. Используя исторические данные, индикатор рассчитывает среднюю цену за определенный период и строит линию на графике. Если линия MA движется вверх, это показатель восходящего тренда, а если он движется вниз - нисходящего. Сигналом на покупку может служить движение цены выше линии МА.","The Moving Average Envelope (MAE) helps to identify strong price movement that indicates the start of a trend. The MAE creates a moving average line as well as 2 bands around it. In theory, when the market price touches the upper or lower bands, a trend reversal will occur, indicating a buy signal.":"Конверт скользящих средних (MAE) помогает определить сильное ценовое движение, которое указывает на начало тренда. MAE создает линию скользящего среднего, а также 2 полосы сверху и снизу от нее. Теоретически, когда рыночная цена касается верхней или нижней полосы, произойдет разворот тренда, что служит сигналом к покупке.","The parabolic SAR is calculated almost independently for each trend in the price. When the price is in an uptrend, the SAR emerges below the price and converges upwards towards it. Similarly, on a downtrend, the SAR emerges above the price and converges downwards. At each step within a trend, the SAR is calculated one period in advance.":"Параболическая система SAR (SAR) рассчитывается практически индивидуально для каждого тренда. Когда цена демонстрирует восходящий тренд, SAR находится ниже цены и стремится вверх. Аналогичным образом, когда цена демонстрирует нисходящий тренд, SAR находится выше цены и стремится вниз. На каждом этапе тренда SAR рассчитывается на один период вперёд.","The Price Rate-of-Change (ROC) indicator displays the difference between the current price and the price x-time periods ago. The difference can be displayed in either points or as a percentage.":"Индикатор Скорость изменения цены (ROC) показывает разницу между текущей ценой и ценой x периодов назад. Разница может быть отображена в пунктах или процентах.","The Rainbow Moving Average (RMA) displays several moving average lines simultaneously. When the lines intersect, it’s an indicator of price reversal and the angle of the lines are helpful to predict the trend strength. The steeper the curve, the stronger the trend. When the price crosses the moving average lines from below, it signals an upward trend. When the price crosses the moving average lines from above, it signals a downward trend. The RMA is easier to use compared to using several different moving average indicators at once.":"Радужная скользящая средняя (RMA) отображает несколько линий скользящей средней одновременно. Пересечение линий служит индикатором разворота цены, а угол линий помогает предсказать силу тренда - чем круче кривая, тем сильнее тренд. Когда цена пересекает линии скользящей средней снизу, это сигнализирует о восходящем тренде, а когда цена пересекает линии скользящей средней сверху - о нисходящем тренде. RMA проще в использовании по сравнению с применением нескольких разных индикаторов скользящей средней одновременно.","The Relative Strength Index (RSI) was published by J. Welles Wilder. The current price is normalized as a percentage between 0 and 100. The name of this oscillator is misleading because it does not compare the instrument relative to another instrument or set of instruments, but rather represents the current price relative to other recent prices within the selected lookback window length.":"Индекс относительной силы (RSI) разработан Дж. Уэллсом Уайлдером. Текущая цена нормализована в виде процента от 0 до 100. Название индикатора может ввести в заблуждение, так как он не сравнивает инструмент по отношению к другому инструменту или ряду инструментов, а отображает текущую цену по отношению к другим недавним ценам за выбранный период.","The Stochastic Momentum Index (SMI) helps to identify overbought or oversold conditions in the market and to predict bearish or bullish trends. It calculates the distance between the current closing price and the median of the high/low range, and displays 2 lines on the chart: the first (known as %K) represents the price movement while the second (known as %D) is a moving average of the first line. If the closing price is higher than the median of the high/low range, the SMI returns a positive value. If the closing price is lower than the average price, a negative value is returned. Values above 40 indicate a bullish trend while values below -40 indicate a bearish trend.":"Индекс Стохастического Моментума (SMI) помогает идентифицировать условия перекупленности или перепроданности на рынке и прогнозировать медвежьи или бычьи тренды. Он рассчитывает расстояние между текущей ценой закрытия и медианой диапазона максимума/минимума, и отображает 2 линии на графике: первая (известная как %K) представляет движение цены, а вторая (известная как %D) представляет собой скользящее среднее первой линии. Если цена закрытия выше, чем медиана диапазона максимума/минимума, SMI возвращает положительное значение. Если цена закрытия ниже средней цены, возвращается отрицательное значение. Значения выше 40 указывают на бычий тренд, а значения ниже -40 указывают на медвежий тренд.","Themes":"Темы","There are no favorites yet.":"Нет записей в избранном.","This indicator does not support 1-tick intervals. To use this indicator, change your chart time interval to 1 minute or more.":"Этот индикатор не поддерживает интервалы в 1 тик. Чтобы использовать этот индикатор, измените временной интервал графика на 1 минуту или более.","tick":"тик.","Tick interval only available for \\\\\\"Area\\\\\\" Chart type.":"Тиковый интервал доступен только для графика \\\\\\"с областями\\\\\\".","Time interval":"Интервал","Time Series":"Временные ряды","Trend":"Тренд","Trend line [num]":"Тренд [num]","Triangular":"Треугольный","Try checking your spelling or use a different term":"Проверьте орфографию или используйте другой термин","Type":"Тип","Up to 2 active indicators allowed.":"До 2 индикаторов одновременно.","Up to 5 active indicators allowed.":"До пяти индикаторов одновременно.","Variable":"Переменная","Vertical line [num]":"Вертикаль [num]","Volatility":"Волатильность","Weighted":"Взвешенный","Welles Wilder":"Уэллс Уайлдер","William\'s %R":"William\'s %R","William\'s Percent Range":"Процентный диапазон Уильямса","Would you like to overwrite it?":"Хотите перезаписать?","You have no active drawings yet.":"У вас пока нет активных рисунков.","You have no active indicators yet.":"У вас пока нет активных индикаторов.","You have no saved templates yet.":"У Вас пока нет сохранённых шаблонов.","Zero Lag":"Нулевая задержка","Zig Zag":"Zig Zag","Zig Zag helps to identify trend reversals and filters out relatively small price movements by determining the support and resistance levels of the market. It accepts a percentage of deviation as the input and displays a line if the price change is larger than the percentage of deviation. Zig Zag ignores any sideways movement and is useful to filter out “market noise”.":"Zig Zag помогает идентифицировать развороты тренда и отфильтровывает относительно небольшие ценовые движения, определяя уровни поддержки и сопротивления рынка. Он принимает процент отклонения в качестве входных данных и отображает линию, если изменение цены больше, чем процент отклонения. Zig Zag игнорирует любые боковые движения и полезен для фильтрации \\"рыночного шума\\".","Zoom in":"Увеличить","Zoom out":"Уменьшить"}')}}]);