Commit 6df54b2d authored by 王博's avatar 王博

Merge branch 'new' into 'master'

init url

See merge request !1
parents 48983153 784ecc7a
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
<link rel="icon" href="./favicon.ico" /> <link rel="icon" href="./favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>静安智慧房管</title> <title>静安智慧房管</title>
<script type="module" crossorigin src="./assets/index.6824a7c1.js"></script> <script type="module" crossorigin src="./assets/index.bb375392.js"></script>
<link rel="modulepreload" href="./assets/vendor.d8be57b6.js"> <link rel="modulepreload" href="./assets/vendor.d8be57b6.js">
<link rel="stylesheet" href="./assets/vendor.db35e2cd.css"> <link rel="stylesheet" href="./assets/vendor.db35e2cd.css">
<link rel="stylesheet" href="./assets/index.1e95251e.css"> <link rel="stylesheet" href="./assets/index.1e95251e.css">
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "jingan-wisdom",
"version": "1.0.0", "version": "1.0.0",
"dependencies": { "dependencies": {
"@dom-utils/selector-path": "^1.0.3", "@dom-utils/selector-path": "^1.0.3",
......
let BASE_URL: string = '' let BASE_URL: string = ''
switch (process.env.NODE_ENV) { switch (process.env.NODE_ENV) {
case 'production': case 'production':
BASE_URL = 'http://ja-hm.omniview.pro/api/v2' BASE_URL = 'http://jingan.omniview.pro/api/v2'
break break
default: default:
BASE_URL = 'http://ja-hm.omniview.pro/api/v2' BASE_URL = 'http://jingan.omniview.pro/api/v2'
} }
export default { export default {
......
...@@ -170,11 +170,11 @@ let BASE_URL = ''; ...@@ -170,11 +170,11 @@ let BASE_URL = '';
switch ("production") { switch ("production") {
case 'production': case 'production':
BASE_URL = 'http://ja-hm.omniview.pro/api/v2'; BASE_URL = 'http://jingan.omniview.pro//api/v2';
break; break;
default: default:
BASE_URL = 'http://ja-hm.omniview.pro/api/v2'; BASE_URL = 'http://jingan.omniview.pro//api/v2';
} }
var api = { var api = {
...@@ -7758,931 +7758,931 @@ var VFollower = defineComponent({ ...@@ -7758,931 +7758,931 @@ var VFollower = defineComponent({
} }
}); });
/** /**
* A collection of shims that provide minimal functionality of the ES6 collections. * A collection of shims that provide minimal functionality of the ES6 collections.
* *
* These implementations are not meant to be used outside of the ResizeObserver * These implementations are not meant to be used outside of the ResizeObserver
* modules as they cover only a limited range of use cases. * modules as they cover only a limited range of use cases.
*/ */
/* eslint-disable require-jsdoc, valid-jsdoc */ /* eslint-disable require-jsdoc, valid-jsdoc */
var MapShim = (function () { var MapShim = (function () {
if (typeof Map !== 'undefined') { if (typeof Map !== 'undefined') {
return Map; return Map;
} }
/** /**
* Returns index in provided array that matches the specified key. * Returns index in provided array that matches the specified key.
* *
* @param {Array<Array>} arr * @param {Array<Array>} arr
* @param {*} key * @param {*} key
* @returns {number} * @returns {number}
*/ */
function getIndex(arr, key) { function getIndex(arr, key) {
var result = -1; var result = -1;
arr.some(function (entry, index) { arr.some(function (entry, index) {
if (entry[0] === key) { if (entry[0] === key) {
result = index; result = index;
return true; return true;
} }
return false; return false;
}); });
return result; return result;
} }
return /** @class */ (function () { return /** @class */ (function () {
function class_1() { function class_1() {
this.__entries__ = []; this.__entries__ = [];
} }
Object.defineProperty(class_1.prototype, "size", { Object.defineProperty(class_1.prototype, "size", {
/** /**
* @returns {boolean} * @returns {boolean}
*/ */
get: function () { get: function () {
return this.__entries__.length; return this.__entries__.length;
}, },
enumerable: true, enumerable: true,
configurable: true configurable: true
}); });
/** /**
* @param {*} key * @param {*} key
* @returns {*} * @returns {*}
*/ */
class_1.prototype.get = function (key) { class_1.prototype.get = function (key) {
var index = getIndex(this.__entries__, key); var index = getIndex(this.__entries__, key);
var entry = this.__entries__[index]; var entry = this.__entries__[index];
return entry && entry[1]; return entry && entry[1];
}; };
/** /**
* @param {*} key * @param {*} key
* @param {*} value * @param {*} value
* @returns {void} * @returns {void}
*/ */
class_1.prototype.set = function (key, value) { class_1.prototype.set = function (key, value) {
var index = getIndex(this.__entries__, key); var index = getIndex(this.__entries__, key);
if (~index) { if (~index) {
this.__entries__[index][1] = value; this.__entries__[index][1] = value;
} }
else { else {
this.__entries__.push([key, value]); this.__entries__.push([key, value]);
} }
}; };
/** /**
* @param {*} key * @param {*} key
* @returns {void} * @returns {void}
*/ */
class_1.prototype.delete = function (key) { class_1.prototype.delete = function (key) {
var entries = this.__entries__; var entries = this.__entries__;
var index = getIndex(entries, key); var index = getIndex(entries, key);
if (~index) { if (~index) {
entries.splice(index, 1); entries.splice(index, 1);
} }
}; };
/** /**
* @param {*} key * @param {*} key
* @returns {void} * @returns {void}
*/ */
class_1.prototype.has = function (key) { class_1.prototype.has = function (key) {
return !!~getIndex(this.__entries__, key); return !!~getIndex(this.__entries__, key);
}; };
/** /**
* @returns {void} * @returns {void}
*/ */
class_1.prototype.clear = function () { class_1.prototype.clear = function () {
this.__entries__.splice(0); this.__entries__.splice(0);
}; };
/** /**
* @param {Function} callback * @param {Function} callback
* @param {*} [ctx=null] * @param {*} [ctx=null]
* @returns {void} * @returns {void}
*/ */
class_1.prototype.forEach = function (callback, ctx) { class_1.prototype.forEach = function (callback, ctx) {
if (ctx === void 0) { ctx = null; } if (ctx === void 0) { ctx = null; }
for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) { for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {
var entry = _a[_i]; var entry = _a[_i];
callback.call(ctx, entry[1], entry[0]); callback.call(ctx, entry[1], entry[0]);
} }
}; };
return class_1; return class_1;
}()); }());
})(); })();
/** /**
* Detects whether window and document objects are available in current environment. * Detects whether window and document objects are available in current environment.
*/ */
var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document; var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;
// Returns global object of a current environment. // Returns global object of a current environment.
var global$1 = (function () { var global$1 = (function () {
if (typeof global !== 'undefined' && global.Math === Math) { if (typeof global !== 'undefined' && global.Math === Math) {
return global; return global;
} }
if (typeof self !== 'undefined' && self.Math === Math) { if (typeof self !== 'undefined' && self.Math === Math) {
return self; return self;
} }
if (typeof window !== 'undefined' && window.Math === Math) { if (typeof window !== 'undefined' && window.Math === Math) {
return window; return window;
} }
// eslint-disable-next-line no-new-func // eslint-disable-next-line no-new-func
return Function('return this')(); return Function('return this')();
})(); })();
/** /**
* A shim for the requestAnimationFrame which falls back to the setTimeout if * A shim for the requestAnimationFrame which falls back to the setTimeout if
* first one is not supported. * first one is not supported.
* *
* @returns {number} Requests' identifier. * @returns {number} Requests' identifier.
*/ */
var requestAnimationFrame$1 = (function () { var requestAnimationFrame$1 = (function () {
if (typeof requestAnimationFrame === 'function') { if (typeof requestAnimationFrame === 'function') {
// It's required to use a bounded function because IE sometimes throws // It's required to use a bounded function because IE sometimes throws
// an "Invalid calling object" error if rAF is invoked without the global // an "Invalid calling object" error if rAF is invoked without the global
// object on the left hand side. // object on the left hand side.
return requestAnimationFrame.bind(global$1); return requestAnimationFrame.bind(global$1);
} }
return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); }; return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };
})(); })();
// Defines minimum timeout before adding a trailing call. // Defines minimum timeout before adding a trailing call.
var trailingTimeout = 2; var trailingTimeout = 2;
/** /**
* Creates a wrapper function which ensures that provided callback will be * Creates a wrapper function which ensures that provided callback will be
* invoked only once during the specified delay period. * invoked only once during the specified delay period.
* *
* @param {Function} callback - Function to be invoked after the delay period. * @param {Function} callback - Function to be invoked after the delay period.
* @param {number} delay - Delay after which to invoke callback. * @param {number} delay - Delay after which to invoke callback.
* @returns {Function} * @returns {Function}
*/ */
function throttle (callback, delay) { function throttle (callback, delay) {
var leadingCall = false, trailingCall = false, lastCallTime = 0; var leadingCall = false, trailingCall = false, lastCallTime = 0;
/** /**
* Invokes the original callback function and schedules new invocation if * Invokes the original callback function and schedules new invocation if
* the "proxy" was called during current request. * the "proxy" was called during current request.
* *
* @returns {void} * @returns {void}
*/ */
function resolvePending() { function resolvePending() {
if (leadingCall) { if (leadingCall) {
leadingCall = false; leadingCall = false;
callback(); callback();
} }
if (trailingCall) { if (trailingCall) {
proxy(); proxy();
} }
} }
/** /**
* Callback invoked after the specified delay. It will further postpone * Callback invoked after the specified delay. It will further postpone
* invocation of the original function delegating it to the * invocation of the original function delegating it to the
* requestAnimationFrame. * requestAnimationFrame.
* *
* @returns {void} * @returns {void}
*/ */
function timeoutCallback() { function timeoutCallback() {
requestAnimationFrame$1(resolvePending); requestAnimationFrame$1(resolvePending);
} }
/** /**
* Schedules invocation of the original function. * Schedules invocation of the original function.
* *
* @returns {void} * @returns {void}
*/ */
function proxy() { function proxy() {
var timeStamp = Date.now(); var timeStamp = Date.now();
if (leadingCall) { if (leadingCall) {
// Reject immediately following calls. // Reject immediately following calls.
if (timeStamp - lastCallTime < trailingTimeout) { if (timeStamp - lastCallTime < trailingTimeout) {
return; return;
} }
// Schedule new call to be in invoked when the pending one is resolved. // Schedule new call to be in invoked when the pending one is resolved.
// This is important for "transitions" which never actually start // This is important for "transitions" which never actually start
// immediately so there is a chance that we might miss one if change // immediately so there is a chance that we might miss one if change
// happens amids the pending invocation. // happens amids the pending invocation.
trailingCall = true; trailingCall = true;
} }
else { else {
leadingCall = true; leadingCall = true;
trailingCall = false; trailingCall = false;
setTimeout(timeoutCallback, delay); setTimeout(timeoutCallback, delay);
} }
lastCallTime = timeStamp; lastCallTime = timeStamp;
} }
return proxy; return proxy;
} }
// Minimum delay before invoking the update of observers. // Minimum delay before invoking the update of observers.
var REFRESH_DELAY = 20; var REFRESH_DELAY = 20;
// A list of substrings of CSS properties used to find transition events that // A list of substrings of CSS properties used to find transition events that
// might affect dimensions of observed elements. // might affect dimensions of observed elements.
var transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight']; var transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];
// Check if MutationObserver is available. // Check if MutationObserver is available.
var mutationObserverSupported = typeof MutationObserver !== 'undefined'; var mutationObserverSupported = typeof MutationObserver !== 'undefined';
/** /**
* Singleton controller class which handles updates of ResizeObserver instances. * Singleton controller class which handles updates of ResizeObserver instances.
*/ */
var ResizeObserverController = /** @class */ (function () { var ResizeObserverController = /** @class */ (function () {
/** /**
* Creates a new instance of ResizeObserverController. * Creates a new instance of ResizeObserverController.
* *
* @private * @private
*/ */
function ResizeObserverController() { function ResizeObserverController() {
/** /**
* Indicates whether DOM listeners have been added. * Indicates whether DOM listeners have been added.
* *
* @private {boolean} * @private {boolean}
*/ */
this.connected_ = false; this.connected_ = false;
/** /**
* Tells that controller has subscribed for Mutation Events. * Tells that controller has subscribed for Mutation Events.
* *
* @private {boolean} * @private {boolean}
*/ */
this.mutationEventsAdded_ = false; this.mutationEventsAdded_ = false;
/** /**
* Keeps reference to the instance of MutationObserver. * Keeps reference to the instance of MutationObserver.
* *
* @private {MutationObserver} * @private {MutationObserver}
*/ */
this.mutationsObserver_ = null; this.mutationsObserver_ = null;
/** /**
* A list of connected observers. * A list of connected observers.
* *
* @private {Array<ResizeObserverSPI>} * @private {Array<ResizeObserverSPI>}
*/ */
this.observers_ = []; this.observers_ = [];
this.onTransitionEnd_ = this.onTransitionEnd_.bind(this); this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);
this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY); this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);
} }
/** /**
* Adds observer to observers list. * Adds observer to observers list.
* *
* @param {ResizeObserverSPI} observer - Observer to be added. * @param {ResizeObserverSPI} observer - Observer to be added.
* @returns {void} * @returns {void}
*/ */
ResizeObserverController.prototype.addObserver = function (observer) { ResizeObserverController.prototype.addObserver = function (observer) {
if (!~this.observers_.indexOf(observer)) { if (!~this.observers_.indexOf(observer)) {
this.observers_.push(observer); this.observers_.push(observer);
} }
// Add listeners if they haven't been added yet. // Add listeners if they haven't been added yet.
if (!this.connected_) { if (!this.connected_) {
this.connect_(); this.connect_();
} }
}; };
/** /**
* Removes observer from observers list. * Removes observer from observers list.
* *
* @param {ResizeObserverSPI} observer - Observer to be removed. * @param {ResizeObserverSPI} observer - Observer to be removed.
* @returns {void} * @returns {void}
*/ */
ResizeObserverController.prototype.removeObserver = function (observer) { ResizeObserverController.prototype.removeObserver = function (observer) {
var observers = this.observers_; var observers = this.observers_;
var index = observers.indexOf(observer); var index = observers.indexOf(observer);
// Remove observer if it's present in registry. // Remove observer if it's present in registry.
if (~index) { if (~index) {
observers.splice(index, 1); observers.splice(index, 1);
} }
// Remove listeners if controller has no connected observers. // Remove listeners if controller has no connected observers.
if (!observers.length && this.connected_) { if (!observers.length && this.connected_) {
this.disconnect_(); this.disconnect_();
} }
}; };
/** /**
* Invokes the update of observers. It will continue running updates insofar * Invokes the update of observers. It will continue running updates insofar
* it detects changes. * it detects changes.
* *
* @returns {void} * @returns {void}
*/ */
ResizeObserverController.prototype.refresh = function () { ResizeObserverController.prototype.refresh = function () {
var changesDetected = this.updateObservers_(); var changesDetected = this.updateObservers_();
// Continue running updates if changes have been detected as there might // Continue running updates if changes have been detected as there might
// be future ones caused by CSS transitions. // be future ones caused by CSS transitions.
if (changesDetected) { if (changesDetected) {
this.refresh(); this.refresh();
} }
}; };
/** /**
* Updates every observer from observers list and notifies them of queued * Updates every observer from observers list and notifies them of queued
* entries. * entries.
* *
* @private * @private
* @returns {boolean} Returns "true" if any observer has detected changes in * @returns {boolean} Returns "true" if any observer has detected changes in
* dimensions of it's elements. * dimensions of it's elements.
*/ */
ResizeObserverController.prototype.updateObservers_ = function () { ResizeObserverController.prototype.updateObservers_ = function () {
// Collect observers that have active observations. // Collect observers that have active observations.
var activeObservers = this.observers_.filter(function (observer) { var activeObservers = this.observers_.filter(function (observer) {
return observer.gatherActive(), observer.hasActive(); return observer.gatherActive(), observer.hasActive();
}); });
// Deliver notifications in a separate cycle in order to avoid any // Deliver notifications in a separate cycle in order to avoid any
// collisions between observers, e.g. when multiple instances of // collisions between observers, e.g. when multiple instances of
// ResizeObserver are tracking the same element and the callback of one // ResizeObserver are tracking the same element and the callback of one
// of them changes content dimensions of the observed target. Sometimes // of them changes content dimensions of the observed target. Sometimes
// this may result in notifications being blocked for the rest of observers. // this may result in notifications being blocked for the rest of observers.
activeObservers.forEach(function (observer) { return observer.broadcastActive(); }); activeObservers.forEach(function (observer) { return observer.broadcastActive(); });
return activeObservers.length > 0; return activeObservers.length > 0;
}; };
/** /**
* Initializes DOM listeners. * Initializes DOM listeners.
* *
* @private * @private
* @returns {void} * @returns {void}
*/ */
ResizeObserverController.prototype.connect_ = function () { ResizeObserverController.prototype.connect_ = function () {
// Do nothing if running in a non-browser environment or if listeners // Do nothing if running in a non-browser environment or if listeners
// have been already added. // have been already added.
if (!isBrowser || this.connected_) { if (!isBrowser || this.connected_) {
return; return;
} }
// Subscription to the "Transitionend" event is used as a workaround for // Subscription to the "Transitionend" event is used as a workaround for
// delayed transitions. This way it's possible to capture at least the // delayed transitions. This way it's possible to capture at least the
// final state of an element. // final state of an element.
document.addEventListener('transitionend', this.onTransitionEnd_); document.addEventListener('transitionend', this.onTransitionEnd_);
window.addEventListener('resize', this.refresh); window.addEventListener('resize', this.refresh);
if (mutationObserverSupported) { if (mutationObserverSupported) {
this.mutationsObserver_ = new MutationObserver(this.refresh); this.mutationsObserver_ = new MutationObserver(this.refresh);
this.mutationsObserver_.observe(document, { this.mutationsObserver_.observe(document, {
attributes: true, attributes: true,
childList: true, childList: true,
characterData: true, characterData: true,
subtree: true subtree: true
}); });
} }
else { else {
document.addEventListener('DOMSubtreeModified', this.refresh); document.addEventListener('DOMSubtreeModified', this.refresh);
this.mutationEventsAdded_ = true; this.mutationEventsAdded_ = true;
} }
this.connected_ = true; this.connected_ = true;
}; };
/** /**
* Removes DOM listeners. * Removes DOM listeners.
* *
* @private * @private
* @returns {void} * @returns {void}
*/ */
ResizeObserverController.prototype.disconnect_ = function () { ResizeObserverController.prototype.disconnect_ = function () {
// Do nothing if running in a non-browser environment or if listeners // Do nothing if running in a non-browser environment or if listeners
// have been already removed. // have been already removed.
if (!isBrowser || !this.connected_) { if (!isBrowser || !this.connected_) {
return; return;
} }
document.removeEventListener('transitionend', this.onTransitionEnd_); document.removeEventListener('transitionend', this.onTransitionEnd_);
window.removeEventListener('resize', this.refresh); window.removeEventListener('resize', this.refresh);
if (this.mutationsObserver_) { if (this.mutationsObserver_) {
this.mutationsObserver_.disconnect(); this.mutationsObserver_.disconnect();
} }
if (this.mutationEventsAdded_) { if (this.mutationEventsAdded_) {
document.removeEventListener('DOMSubtreeModified', this.refresh); document.removeEventListener('DOMSubtreeModified', this.refresh);
} }
this.mutationsObserver_ = null; this.mutationsObserver_ = null;
this.mutationEventsAdded_ = false; this.mutationEventsAdded_ = false;
this.connected_ = false; this.connected_ = false;
}; };
/** /**
* "Transitionend" event handler. * "Transitionend" event handler.
* *
* @private * @private
* @param {TransitionEvent} event * @param {TransitionEvent} event
* @returns {void} * @returns {void}
*/ */
ResizeObserverController.prototype.onTransitionEnd_ = function (_a) { ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {
var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b; var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;
// Detect whether transition may affect dimensions of an element. // Detect whether transition may affect dimensions of an element.
var isReflowProperty = transitionKeys.some(function (key) { var isReflowProperty = transitionKeys.some(function (key) {
return !!~propertyName.indexOf(key); return !!~propertyName.indexOf(key);
}); });
if (isReflowProperty) { if (isReflowProperty) {
this.refresh(); this.refresh();
} }
}; };
/** /**
* Returns instance of the ResizeObserverController. * Returns instance of the ResizeObserverController.
* *
* @returns {ResizeObserverController} * @returns {ResizeObserverController}
*/ */
ResizeObserverController.getInstance = function () { ResizeObserverController.getInstance = function () {
if (!this.instance_) { if (!this.instance_) {
this.instance_ = new ResizeObserverController(); this.instance_ = new ResizeObserverController();
} }
return this.instance_; return this.instance_;
}; };
/** /**
* Holds reference to the controller's instance. * Holds reference to the controller's instance.
* *
* @private {ResizeObserverController} * @private {ResizeObserverController}
*/ */
ResizeObserverController.instance_ = null; ResizeObserverController.instance_ = null;
return ResizeObserverController; return ResizeObserverController;
}()); }());
/** /**
* Defines non-writable/enumerable properties of the provided target object. * Defines non-writable/enumerable properties of the provided target object.
* *
* @param {Object} target - Object for which to define properties. * @param {Object} target - Object for which to define properties.
* @param {Object} props - Properties to be defined. * @param {Object} props - Properties to be defined.
* @returns {Object} Target object. * @returns {Object} Target object.
*/ */
var defineConfigurable = (function (target, props) { var defineConfigurable = (function (target, props) {
for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) { for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {
var key = _a[_i]; var key = _a[_i];
Object.defineProperty(target, key, { Object.defineProperty(target, key, {
value: props[key], value: props[key],
enumerable: false, enumerable: false,
writable: false, writable: false,
configurable: true configurable: true
}); });
} }
return target; return target;
}); });
/** /**
* Returns the global object associated with provided element. * Returns the global object associated with provided element.
* *
* @param {Object} target * @param {Object} target
* @returns {Object} * @returns {Object}
*/ */
var getWindowOf = (function (target) { var getWindowOf = (function (target) {
// Assume that the element is an instance of Node, which means that it // Assume that the element is an instance of Node, which means that it
// has the "ownerDocument" property from which we can retrieve a // has the "ownerDocument" property from which we can retrieve a
// corresponding global object. // corresponding global object.
var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView; var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;
// Return the local global object if it's not possible extract one from // Return the local global object if it's not possible extract one from
// provided element. // provided element.
return ownerGlobal || global$1; return ownerGlobal || global$1;
}); });
// Placeholder of an empty content rectangle. // Placeholder of an empty content rectangle.
var emptyRect = createRectInit(0, 0, 0, 0); var emptyRect = createRectInit(0, 0, 0, 0);
/** /**
* Converts provided string to a number. * Converts provided string to a number.
* *
* @param {number|string} value * @param {number|string} value
* @returns {number} * @returns {number}
*/ */
function toFloat(value) { function toFloat(value) {
return parseFloat(value) || 0; return parseFloat(value) || 0;
} }
/** /**
* Extracts borders size from provided styles. * Extracts borders size from provided styles.
* *
* @param {CSSStyleDeclaration} styles * @param {CSSStyleDeclaration} styles
* @param {...string} positions - Borders positions (top, right, ...) * @param {...string} positions - Borders positions (top, right, ...)
* @returns {number} * @returns {number}
*/ */
function getBordersSize(styles) { function getBordersSize(styles) {
var positions = []; var positions = [];
for (var _i = 1; _i < arguments.length; _i++) { for (var _i = 1; _i < arguments.length; _i++) {
positions[_i - 1] = arguments[_i]; positions[_i - 1] = arguments[_i];
} }
return positions.reduce(function (size, position) { return positions.reduce(function (size, position) {
var value = styles['border-' + position + '-width']; var value = styles['border-' + position + '-width'];
return size + toFloat(value); return size + toFloat(value);
}, 0); }, 0);
} }
/** /**
* Extracts paddings sizes from provided styles. * Extracts paddings sizes from provided styles.
* *
* @param {CSSStyleDeclaration} styles * @param {CSSStyleDeclaration} styles
* @returns {Object} Paddings box. * @returns {Object} Paddings box.
*/ */
function getPaddings(styles) { function getPaddings(styles) {
var positions = ['top', 'right', 'bottom', 'left']; var positions = ['top', 'right', 'bottom', 'left'];
var paddings = {}; var paddings = {};
for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) { for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {
var position = positions_1[_i]; var position = positions_1[_i];
var value = styles['padding-' + position]; var value = styles['padding-' + position];
paddings[position] = toFloat(value); paddings[position] = toFloat(value);
} }
return paddings; return paddings;
} }
/** /**
* Calculates content rectangle of provided SVG element. * Calculates content rectangle of provided SVG element.
* *
* @param {SVGGraphicsElement} target - Element content rectangle of which needs * @param {SVGGraphicsElement} target - Element content rectangle of which needs
* to be calculated. * to be calculated.
* @returns {DOMRectInit} * @returns {DOMRectInit}
*/ */
function getSVGContentRect(target) { function getSVGContentRect(target) {
var bbox = target.getBBox(); var bbox = target.getBBox();
return createRectInit(0, 0, bbox.width, bbox.height); return createRectInit(0, 0, bbox.width, bbox.height);
} }
/** /**
* Calculates content rectangle of provided HTMLElement. * Calculates content rectangle of provided HTMLElement.
* *
* @param {HTMLElement} target - Element for which to calculate the content rectangle. * @param {HTMLElement} target - Element for which to calculate the content rectangle.
* @returns {DOMRectInit} * @returns {DOMRectInit}
*/ */
function getHTMLElementContentRect(target) { function getHTMLElementContentRect(target) {
// Client width & height properties can't be // Client width & height properties can't be
// used exclusively as they provide rounded values. // used exclusively as they provide rounded values.
var clientWidth = target.clientWidth, clientHeight = target.clientHeight; var clientWidth = target.clientWidth, clientHeight = target.clientHeight;
// By this condition we can catch all non-replaced inline, hidden and // By this condition we can catch all non-replaced inline, hidden and
// detached elements. Though elements with width & height properties less // detached elements. Though elements with width & height properties less
// than 0.5 will be discarded as well. // than 0.5 will be discarded as well.
// //
// Without it we would need to implement separate methods for each of // Without it we would need to implement separate methods for each of
// those cases and it's not possible to perform a precise and performance // those cases and it's not possible to perform a precise and performance
// effective test for hidden elements. E.g. even jQuery's ':visible' filter // effective test for hidden elements. E.g. even jQuery's ':visible' filter
// gives wrong results for elements with width & height less than 0.5. // gives wrong results for elements with width & height less than 0.5.
if (!clientWidth && !clientHeight) { if (!clientWidth && !clientHeight) {
return emptyRect; return emptyRect;
} }
var styles = getWindowOf(target).getComputedStyle(target); var styles = getWindowOf(target).getComputedStyle(target);
var paddings = getPaddings(styles); var paddings = getPaddings(styles);
var horizPad = paddings.left + paddings.right; var horizPad = paddings.left + paddings.right;
var vertPad = paddings.top + paddings.bottom; var vertPad = paddings.top + paddings.bottom;
// Computed styles of width & height are being used because they are the // Computed styles of width & height are being used because they are the
// only dimensions available to JS that contain non-rounded values. It could // only dimensions available to JS that contain non-rounded values. It could
// be possible to utilize the getBoundingClientRect if only it's data wasn't // be possible to utilize the getBoundingClientRect if only it's data wasn't
// affected by CSS transformations let alone paddings, borders and scroll bars. // affected by CSS transformations let alone paddings, borders and scroll bars.
var width = toFloat(styles.width), height = toFloat(styles.height); var width = toFloat(styles.width), height = toFloat(styles.height);
// Width & height include paddings and borders when the 'border-box' box // Width & height include paddings and borders when the 'border-box' box
// model is applied (except for IE). // model is applied (except for IE).
if (styles.boxSizing === 'border-box') { if (styles.boxSizing === 'border-box') {
// Following conditions are required to handle Internet Explorer which // Following conditions are required to handle Internet Explorer which
// doesn't include paddings and borders to computed CSS dimensions. // doesn't include paddings and borders to computed CSS dimensions.
// //
// We can say that if CSS dimensions + paddings are equal to the "client" // We can say that if CSS dimensions + paddings are equal to the "client"
// properties then it's either IE, and thus we don't need to subtract // properties then it's either IE, and thus we don't need to subtract
// anything, or an element merely doesn't have paddings/borders styles. // anything, or an element merely doesn't have paddings/borders styles.
if (Math.round(width + horizPad) !== clientWidth) { if (Math.round(width + horizPad) !== clientWidth) {
width -= getBordersSize(styles, 'left', 'right') + horizPad; width -= getBordersSize(styles, 'left', 'right') + horizPad;
} }
if (Math.round(height + vertPad) !== clientHeight) { if (Math.round(height + vertPad) !== clientHeight) {
height -= getBordersSize(styles, 'top', 'bottom') + vertPad; height -= getBordersSize(styles, 'top', 'bottom') + vertPad;
} }
} }
// Following steps can't be applied to the document's root element as its // Following steps can't be applied to the document's root element as its
// client[Width/Height] properties represent viewport area of the window. // client[Width/Height] properties represent viewport area of the window.
// Besides, it's as well not necessary as the <html> itself neither has // Besides, it's as well not necessary as the <html> itself neither has
// rendered scroll bars nor it can be clipped. // rendered scroll bars nor it can be clipped.
if (!isDocumentElement(target)) { if (!isDocumentElement(target)) {
// In some browsers (only in Firefox, actually) CSS width & height // In some browsers (only in Firefox, actually) CSS width & height
// include scroll bars size which can be removed at this step as scroll // include scroll bars size which can be removed at this step as scroll
// bars are the only difference between rounded dimensions + paddings // bars are the only difference between rounded dimensions + paddings
// and "client" properties, though that is not always true in Chrome. // and "client" properties, though that is not always true in Chrome.
var vertScrollbar = Math.round(width + horizPad) - clientWidth; var vertScrollbar = Math.round(width + horizPad) - clientWidth;
var horizScrollbar = Math.round(height + vertPad) - clientHeight; var horizScrollbar = Math.round(height + vertPad) - clientHeight;
// Chrome has a rather weird rounding of "client" properties. // Chrome has a rather weird rounding of "client" properties.
// E.g. for an element with content width of 314.2px it sometimes gives // E.g. for an element with content width of 314.2px it sometimes gives
// the client width of 315px and for the width of 314.7px it may give // the client width of 315px and for the width of 314.7px it may give
// 314px. And it doesn't happen all the time. So just ignore this delta // 314px. And it doesn't happen all the time. So just ignore this delta
// as a non-relevant. // as a non-relevant.
if (Math.abs(vertScrollbar) !== 1) { if (Math.abs(vertScrollbar) !== 1) {
width -= vertScrollbar; width -= vertScrollbar;
} }
if (Math.abs(horizScrollbar) !== 1) { if (Math.abs(horizScrollbar) !== 1) {
height -= horizScrollbar; height -= horizScrollbar;
} }
} }
return createRectInit(paddings.left, paddings.top, width, height); return createRectInit(paddings.left, paddings.top, width, height);
} }
/** /**
* Checks whether provided element is an instance of the SVGGraphicsElement. * Checks whether provided element is an instance of the SVGGraphicsElement.
* *
* @param {Element} target - Element to be checked. * @param {Element} target - Element to be checked.
* @returns {boolean} * @returns {boolean}
*/ */
var isSVGGraphicsElement = (function () { var isSVGGraphicsElement = (function () {
// Some browsers, namely IE and Edge, don't have the SVGGraphicsElement // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement
// interface. // interface.
if (typeof SVGGraphicsElement !== 'undefined') { if (typeof SVGGraphicsElement !== 'undefined') {
return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; }; return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };
} }
// If it's so, then check that element is at least an instance of the // If it's so, then check that element is at least an instance of the
// SVGElement and that it has the "getBBox" method. // SVGElement and that it has the "getBBox" method.
// eslint-disable-next-line no-extra-parens // eslint-disable-next-line no-extra-parens
return function (target) { return (target instanceof getWindowOf(target).SVGElement && return function (target) { return (target instanceof getWindowOf(target).SVGElement &&
typeof target.getBBox === 'function'); }; typeof target.getBBox === 'function'); };
})(); })();
/** /**
* Checks whether provided element is a document element (<html>). * Checks whether provided element is a document element (<html>).
* *
* @param {Element} target - Element to be checked. * @param {Element} target - Element to be checked.
* @returns {boolean} * @returns {boolean}
*/ */
function isDocumentElement(target) { function isDocumentElement(target) {
return target === getWindowOf(target).document.documentElement; return target === getWindowOf(target).document.documentElement;
} }
/** /**
* Calculates an appropriate content rectangle for provided html or svg element. * Calculates an appropriate content rectangle for provided html or svg element.
* *
* @param {Element} target - Element content rectangle of which needs to be calculated. * @param {Element} target - Element content rectangle of which needs to be calculated.
* @returns {DOMRectInit} * @returns {DOMRectInit}
*/ */
function getContentRect(target) { function getContentRect(target) {
if (!isBrowser) { if (!isBrowser) {
return emptyRect; return emptyRect;
} }
if (isSVGGraphicsElement(target)) { if (isSVGGraphicsElement(target)) {
return getSVGContentRect(target); return getSVGContentRect(target);
} }
return getHTMLElementContentRect(target); return getHTMLElementContentRect(target);
} }
/** /**
* Creates rectangle with an interface of the DOMRectReadOnly. * Creates rectangle with an interface of the DOMRectReadOnly.
* Spec: https://drafts.fxtf.org/geometry/#domrectreadonly * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly
* *
* @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions. * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.
* @returns {DOMRectReadOnly} * @returns {DOMRectReadOnly}
*/ */
function createReadOnlyRect(_a) { function createReadOnlyRect(_a) {
var x = _a.x, y = _a.y, width = _a.width, height = _a.height; var x = _a.x, y = _a.y, width = _a.width, height = _a.height;
// If DOMRectReadOnly is available use it as a prototype for the rectangle. // If DOMRectReadOnly is available use it as a prototype for the rectangle.
var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object; var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;
var rect = Object.create(Constr.prototype); var rect = Object.create(Constr.prototype);
// Rectangle's properties are not writable and non-enumerable. // Rectangle's properties are not writable and non-enumerable.
defineConfigurable(rect, { defineConfigurable(rect, {
x: x, y: y, width: width, height: height, x: x, y: y, width: width, height: height,
top: y, top: y,
right: x + width, right: x + width,
bottom: height + y, bottom: height + y,
left: x left: x
}); });
return rect; return rect;
} }
/** /**
* Creates DOMRectInit object based on the provided dimensions and the x/y coordinates. * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.
* Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit
* *
* @param {number} x - X coordinate. * @param {number} x - X coordinate.
* @param {number} y - Y coordinate. * @param {number} y - Y coordinate.
* @param {number} width - Rectangle's width. * @param {number} width - Rectangle's width.
* @param {number} height - Rectangle's height. * @param {number} height - Rectangle's height.
* @returns {DOMRectInit} * @returns {DOMRectInit}
*/ */
function createRectInit(x, y, width, height) { function createRectInit(x, y, width, height) {
return { x: x, y: y, width: width, height: height }; return { x: x, y: y, width: width, height: height };
} }
/** /**
* Class that is responsible for computations of the content rectangle of * Class that is responsible for computations of the content rectangle of
* provided DOM element and for keeping track of it's changes. * provided DOM element and for keeping track of it's changes.
*/ */
var ResizeObservation = /** @class */ (function () { var ResizeObservation = /** @class */ (function () {
/** /**
* Creates an instance of ResizeObservation. * Creates an instance of ResizeObservation.
* *
* @param {Element} target - Element to be observed. * @param {Element} target - Element to be observed.
*/ */
function ResizeObservation(target) { function ResizeObservation(target) {
/** /**
* Broadcasted width of content rectangle. * Broadcasted width of content rectangle.
* *
* @type {number} * @type {number}
*/ */
this.broadcastWidth = 0; this.broadcastWidth = 0;
/** /**
* Broadcasted height of content rectangle. * Broadcasted height of content rectangle.
* *
* @type {number} * @type {number}
*/ */
this.broadcastHeight = 0; this.broadcastHeight = 0;
/** /**
* Reference to the last observed content rectangle. * Reference to the last observed content rectangle.
* *
* @private {DOMRectInit} * @private {DOMRectInit}
*/ */
this.contentRect_ = createRectInit(0, 0, 0, 0); this.contentRect_ = createRectInit(0, 0, 0, 0);
this.target = target; this.target = target;
} }
/** /**
* Updates content rectangle and tells whether it's width or height properties * Updates content rectangle and tells whether it's width or height properties
* have changed since the last broadcast. * have changed since the last broadcast.
* *
* @returns {boolean} * @returns {boolean}
*/ */
ResizeObservation.prototype.isActive = function () { ResizeObservation.prototype.isActive = function () {
var rect = getContentRect(this.target); var rect = getContentRect(this.target);
this.contentRect_ = rect; this.contentRect_ = rect;
return (rect.width !== this.broadcastWidth || return (rect.width !== this.broadcastWidth ||
rect.height !== this.broadcastHeight); rect.height !== this.broadcastHeight);
}; };
/** /**
* Updates 'broadcastWidth' and 'broadcastHeight' properties with a data * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data
* from the corresponding properties of the last observed content rectangle. * from the corresponding properties of the last observed content rectangle.
* *
* @returns {DOMRectInit} Last observed content rectangle. * @returns {DOMRectInit} Last observed content rectangle.
*/ */
ResizeObservation.prototype.broadcastRect = function () { ResizeObservation.prototype.broadcastRect = function () {
var rect = this.contentRect_; var rect = this.contentRect_;
this.broadcastWidth = rect.width; this.broadcastWidth = rect.width;
this.broadcastHeight = rect.height; this.broadcastHeight = rect.height;
return rect; return rect;
}; };
return ResizeObservation; return ResizeObservation;
}()); }());
var ResizeObserverEntry = /** @class */ (function () { var ResizeObserverEntry = /** @class */ (function () {
/** /**
* Creates an instance of ResizeObserverEntry. * Creates an instance of ResizeObserverEntry.
* *
* @param {Element} target - Element that is being observed. * @param {Element} target - Element that is being observed.
* @param {DOMRectInit} rectInit - Data of the element's content rectangle. * @param {DOMRectInit} rectInit - Data of the element's content rectangle.
*/ */
function ResizeObserverEntry(target, rectInit) { function ResizeObserverEntry(target, rectInit) {
var contentRect = createReadOnlyRect(rectInit); var contentRect = createReadOnlyRect(rectInit);
// According to the specification following properties are not writable // According to the specification following properties are not writable
// and are also not enumerable in the native implementation. // and are also not enumerable in the native implementation.
// //
// Property accessors are not being used as they'd require to define a // Property accessors are not being used as they'd require to define a
// private WeakMap storage which may cause memory leaks in browsers that // private WeakMap storage which may cause memory leaks in browsers that
// don't support this type of collections. // don't support this type of collections.
defineConfigurable(this, { target: target, contentRect: contentRect }); defineConfigurable(this, { target: target, contentRect: contentRect });
} }
return ResizeObserverEntry; return ResizeObserverEntry;
}()); }());
var ResizeObserverSPI = /** @class */ (function () { var ResizeObserverSPI = /** @class */ (function () {
/** /**
* Creates a new instance of ResizeObserver. * Creates a new instance of ResizeObserver.
* *
* @param {ResizeObserverCallback} callback - Callback function that is invoked * @param {ResizeObserverCallback} callback - Callback function that is invoked
* when one of the observed elements changes it's content dimensions. * when one of the observed elements changes it's content dimensions.
* @param {ResizeObserverController} controller - Controller instance which * @param {ResizeObserverController} controller - Controller instance which
* is responsible for the updates of observer. * is responsible for the updates of observer.
* @param {ResizeObserver} callbackCtx - Reference to the public * @param {ResizeObserver} callbackCtx - Reference to the public
* ResizeObserver instance which will be passed to callback function. * ResizeObserver instance which will be passed to callback function.
*/ */
function ResizeObserverSPI(callback, controller, callbackCtx) { function ResizeObserverSPI(callback, controller, callbackCtx) {
/** /**
* Collection of resize observations that have detected changes in dimensions * Collection of resize observations that have detected changes in dimensions
* of elements. * of elements.
* *
* @private {Array<ResizeObservation>} * @private {Array<ResizeObservation>}
*/ */
this.activeObservations_ = []; this.activeObservations_ = [];
/** /**
* Registry of the ResizeObservation instances. * Registry of the ResizeObservation instances.
* *
* @private {Map<Element, ResizeObservation>} * @private {Map<Element, ResizeObservation>}
*/ */
this.observations_ = new MapShim(); this.observations_ = new MapShim();
if (typeof callback !== 'function') { if (typeof callback !== 'function') {
throw new TypeError('The callback provided as parameter 1 is not a function.'); throw new TypeError('The callback provided as parameter 1 is not a function.');
} }
this.callback_ = callback; this.callback_ = callback;
this.controller_ = controller; this.controller_ = controller;
this.callbackCtx_ = callbackCtx; this.callbackCtx_ = callbackCtx;
} }
/** /**
* Starts observing provided element. * Starts observing provided element.
* *
* @param {Element} target - Element to be observed. * @param {Element} target - Element to be observed.
* @returns {void} * @returns {void}
*/ */
ResizeObserverSPI.prototype.observe = function (target) { ResizeObserverSPI.prototype.observe = function (target) {
if (!arguments.length) { if (!arguments.length) {
throw new TypeError('1 argument required, but only 0 present.'); throw new TypeError('1 argument required, but only 0 present.');
} }
// Do nothing if current environment doesn't have the Element interface. // Do nothing if current environment doesn't have the Element interface.
if (typeof Element === 'undefined' || !(Element instanceof Object)) { if (typeof Element === 'undefined' || !(Element instanceof Object)) {
return; return;
} }
if (!(target instanceof getWindowOf(target).Element)) { if (!(target instanceof getWindowOf(target).Element)) {
throw new TypeError('parameter 1 is not of type "Element".'); throw new TypeError('parameter 1 is not of type "Element".');
} }
var observations = this.observations_; var observations = this.observations_;
// Do nothing if element is already being observed. // Do nothing if element is already being observed.
if (observations.has(target)) { if (observations.has(target)) {
return; return;
} }
observations.set(target, new ResizeObservation(target)); observations.set(target, new ResizeObservation(target));
this.controller_.addObserver(this); this.controller_.addObserver(this);
// Force the update of observations. // Force the update of observations.
this.controller_.refresh(); this.controller_.refresh();
}; };
/** /**
* Stops observing provided element. * Stops observing provided element.
* *
* @param {Element} target - Element to stop observing. * @param {Element} target - Element to stop observing.
* @returns {void} * @returns {void}
*/ */
ResizeObserverSPI.prototype.unobserve = function (target) { ResizeObserverSPI.prototype.unobserve = function (target) {
if (!arguments.length) { if (!arguments.length) {
throw new TypeError('1 argument required, but only 0 present.'); throw new TypeError('1 argument required, but only 0 present.');
} }
// Do nothing if current environment doesn't have the Element interface. // Do nothing if current environment doesn't have the Element interface.
if (typeof Element === 'undefined' || !(Element instanceof Object)) { if (typeof Element === 'undefined' || !(Element instanceof Object)) {
return; return;
} }
if (!(target instanceof getWindowOf(target).Element)) { if (!(target instanceof getWindowOf(target).Element)) {
throw new TypeError('parameter 1 is not of type "Element".'); throw new TypeError('parameter 1 is not of type "Element".');
} }
var observations = this.observations_; var observations = this.observations_;
// Do nothing if element is not being observed. // Do nothing if element is not being observed.
if (!observations.has(target)) { if (!observations.has(target)) {
return; return;
} }
observations.delete(target); observations.delete(target);
if (!observations.size) { if (!observations.size) {
this.controller_.removeObserver(this); this.controller_.removeObserver(this);
} }
}; };
/** /**
* Stops observing all elements. * Stops observing all elements.
* *
* @returns {void} * @returns {void}
*/ */
ResizeObserverSPI.prototype.disconnect = function () { ResizeObserverSPI.prototype.disconnect = function () {
this.clearActive(); this.clearActive();
this.observations_.clear(); this.observations_.clear();
this.controller_.removeObserver(this); this.controller_.removeObserver(this);
}; };
/** /**
* Collects observation instances the associated element of which has changed * Collects observation instances the associated element of which has changed
* it's content rectangle. * it's content rectangle.
* *
* @returns {void} * @returns {void}
*/ */
ResizeObserverSPI.prototype.gatherActive = function () { ResizeObserverSPI.prototype.gatherActive = function () {
var _this = this; var _this = this;
this.clearActive(); this.clearActive();
this.observations_.forEach(function (observation) { this.observations_.forEach(function (observation) {
if (observation.isActive()) { if (observation.isActive()) {
_this.activeObservations_.push(observation); _this.activeObservations_.push(observation);
} }
}); });
}; };
/** /**
* Invokes initial callback function with a list of ResizeObserverEntry * Invokes initial callback function with a list of ResizeObserverEntry
* instances collected from active resize observations. * instances collected from active resize observations.
* *
* @returns {void} * @returns {void}
*/ */
ResizeObserverSPI.prototype.broadcastActive = function () { ResizeObserverSPI.prototype.broadcastActive = function () {
// Do nothing if observer doesn't have active observations. // Do nothing if observer doesn't have active observations.
if (!this.hasActive()) { if (!this.hasActive()) {
return; return;
} }
var ctx = this.callbackCtx_; var ctx = this.callbackCtx_;
// Create ResizeObserverEntry instance for every active observation. // Create ResizeObserverEntry instance for every active observation.
var entries = this.activeObservations_.map(function (observation) { var entries = this.activeObservations_.map(function (observation) {
return new ResizeObserverEntry(observation.target, observation.broadcastRect()); return new ResizeObserverEntry(observation.target, observation.broadcastRect());
}); });
this.callback_.call(ctx, entries, ctx); this.callback_.call(ctx, entries, ctx);
this.clearActive(); this.clearActive();
}; };
/** /**
* Clears the collection of active observations. * Clears the collection of active observations.
* *
* @returns {void} * @returns {void}
*/ */
ResizeObserverSPI.prototype.clearActive = function () { ResizeObserverSPI.prototype.clearActive = function () {
this.activeObservations_.splice(0); this.activeObservations_.splice(0);
}; };
/** /**
* Tells whether observer has active observations. * Tells whether observer has active observations.
* *
* @returns {boolean} * @returns {boolean}
*/ */
ResizeObserverSPI.prototype.hasActive = function () { ResizeObserverSPI.prototype.hasActive = function () {
return this.activeObservations_.length > 0; return this.activeObservations_.length > 0;
}; };
return ResizeObserverSPI; return ResizeObserverSPI;
}()); }());
// Registry of internal observers. If WeakMap is not available use current shim // Registry of internal observers. If WeakMap is not available use current shim
// for the Map collection as it has all required methods and because WeakMap // for the Map collection as it has all required methods and because WeakMap
// can't be fully polyfilled anyway. // can't be fully polyfilled anyway.
var observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim(); var observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();
/** /**
* ResizeObserver API. Encapsulates the ResizeObserver SPI implementation * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation
* exposing only those methods and properties that are defined in the spec. * exposing only those methods and properties that are defined in the spec.
*/ */
var ResizeObserver = /** @class */ (function () { var ResizeObserver = /** @class */ (function () {
/** /**
* Creates a new instance of ResizeObserver. * Creates a new instance of ResizeObserver.
* *
* @param {ResizeObserverCallback} callback - Callback that is invoked when * @param {ResizeObserverCallback} callback - Callback that is invoked when
* dimensions of the observed elements change. * dimensions of the observed elements change.
*/ */
function ResizeObserver(callback) { function ResizeObserver(callback) {
if (!(this instanceof ResizeObserver)) { if (!(this instanceof ResizeObserver)) {
throw new TypeError('Cannot call a class as a function.'); throw new TypeError('Cannot call a class as a function.');
} }
if (!arguments.length) { if (!arguments.length) {
throw new TypeError('1 argument required, but only 0 present.'); throw new TypeError('1 argument required, but only 0 present.');
} }
var controller = ResizeObserverController.getInstance(); var controller = ResizeObserverController.getInstance();
var observer = new ResizeObserverSPI(callback, controller, this); var observer = new ResizeObserverSPI(callback, controller, this);
observers.set(this, observer); observers.set(this, observer);
} }
return ResizeObserver; return ResizeObserver;
}()); }());
// Expose public methods of ResizeObserver. // Expose public methods of ResizeObserver.
[ [
'observe', 'observe',
'unobserve', 'unobserve',
'disconnect' 'disconnect'
].forEach(function (method) { ].forEach(function (method) {
ResizeObserver.prototype[method] = function () { ResizeObserver.prototype[method] = function () {
var _a; var _a;
return (_a = observers.get(this))[method].apply(_a, arguments); return (_a = observers.get(this))[method].apply(_a, arguments);
}; };
}); });
var index = (function () { var index = (function () {
// Export existing implementation if available. // Export existing implementation if available.
if (typeof global$1.ResizeObserver !== 'undefined') { if (typeof global$1.ResizeObserver !== 'undefined') {
return global$1.ResizeObserver; return global$1.ResizeObserver;
} }
return ResizeObserver; return ResizeObserver;
})(); })();
class ResizeObserverDelegate { class ResizeObserverDelegate {
......
...@@ -6,9 +6,9 @@ ...@@ -6,9 +6,9 @@
// vue, // vue,
// axios, // axios,
// qs, // qs,
// )('http://ja-hm.omniview.pro/api/v2') // )('http://jingan.omniview.pro//api/v2')
window._base_url = 'http://ja-hm.omniview.pro/api/v2' window._base_url = 'http://jingan.omniview.pro//api/v2'
import { components, eventBus } from './component-lib.esm' // 未正式上生产暂时先如此代替 import { components, eventBus } from './component-lib.esm' // 未正式上生产暂时先如此代替
export default components export default components
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment