1 | import {createElement as $hgUW1$createElement, Component as $hgUW1$Component} from "react";
|
2 |
|
3 | var $parcel$global =
|
4 | typeof globalThis !== 'undefined'
|
5 | ? globalThis
|
6 | : typeof self !== 'undefined'
|
7 | ? self
|
8 | : typeof window !== 'undefined'
|
9 | ? window
|
10 | : typeof global !== 'undefined'
|
11 | ? global
|
12 | : {};
|
13 |
|
14 | var $3e40d2fd7fdb47d2$exports = {};
|
15 |
|
16 |
|
17 |
|
18 |
|
19 |
|
20 |
|
21 |
|
22 |
|
23 |
|
24 |
|
25 |
|
26 | let $3e40d2fd7fdb47d2$var$windowObject;
|
27 | if (typeof window !== "undefined") $3e40d2fd7fdb47d2$var$windowObject = window;
|
28 | else if (typeof self !== "undefined")
|
29 | $3e40d2fd7fdb47d2$var$windowObject = self;
|
30 | else $3e40d2fd7fdb47d2$var$windowObject = $parcel$global;
|
31 | let $3e40d2fd7fdb47d2$var$cancelFrame = null;
|
32 | let $3e40d2fd7fdb47d2$var$requestFrame = null;
|
33 | const $3e40d2fd7fdb47d2$var$TIMEOUT_DURATION = 20;
|
34 | const $3e40d2fd7fdb47d2$var$clearTimeoutFn = $3e40d2fd7fdb47d2$var$windowObject.clearTimeout;
|
35 | const $3e40d2fd7fdb47d2$var$setTimeoutFn = $3e40d2fd7fdb47d2$var$windowObject.setTimeout;
|
36 | const $3e40d2fd7fdb47d2$var$cancelAnimationFrameFn = $3e40d2fd7fdb47d2$var$windowObject.cancelAnimationFrame || $3e40d2fd7fdb47d2$var$windowObject.mozCancelAnimationFrame || $3e40d2fd7fdb47d2$var$windowObject.webkitCancelAnimationFrame;
|
37 | const $3e40d2fd7fdb47d2$var$requestAnimationFrameFn = $3e40d2fd7fdb47d2$var$windowObject.requestAnimationFrame || $3e40d2fd7fdb47d2$var$windowObject.mozRequestAnimationFrame || $3e40d2fd7fdb47d2$var$windowObject.webkitRequestAnimationFrame;
|
38 | if ($3e40d2fd7fdb47d2$var$cancelAnimationFrameFn == null || $3e40d2fd7fdb47d2$var$requestAnimationFrameFn == null) {
|
39 |
|
40 |
|
41 | $3e40d2fd7fdb47d2$var$cancelFrame = $3e40d2fd7fdb47d2$var$clearTimeoutFn;
|
42 | $3e40d2fd7fdb47d2$var$requestFrame = function requestAnimationFrameViaSetTimeout(callback) {
|
43 | return $3e40d2fd7fdb47d2$var$setTimeoutFn(callback, $3e40d2fd7fdb47d2$var$TIMEOUT_DURATION);
|
44 | };
|
45 | } else {
|
46 |
|
47 |
|
48 |
|
49 | $3e40d2fd7fdb47d2$var$cancelFrame = function cancelFrame([animationFrameID, timeoutID]) {
|
50 | $3e40d2fd7fdb47d2$var$cancelAnimationFrameFn(animationFrameID);
|
51 | $3e40d2fd7fdb47d2$var$clearTimeoutFn(timeoutID);
|
52 | };
|
53 | $3e40d2fd7fdb47d2$var$requestFrame = function requestAnimationFrameWithSetTimeoutFallback(callback) {
|
54 | const animationFrameID = $3e40d2fd7fdb47d2$var$requestAnimationFrameFn(function animationFrameCallback() {
|
55 | $3e40d2fd7fdb47d2$var$clearTimeoutFn(timeoutID);
|
56 | callback();
|
57 | });
|
58 | const timeoutID = $3e40d2fd7fdb47d2$var$setTimeoutFn(function timeoutCallback() {
|
59 | $3e40d2fd7fdb47d2$var$cancelAnimationFrameFn(animationFrameID);
|
60 | callback();
|
61 | }, $3e40d2fd7fdb47d2$var$TIMEOUT_DURATION);
|
62 | return [
|
63 | animationFrameID,
|
64 | timeoutID
|
65 | ];
|
66 | };
|
67 | }
|
68 | function $3e40d2fd7fdb47d2$var$createDetectElementResize(nonce) {
|
69 | let animationKeyframes;
|
70 | let animationName;
|
71 | let animationStartEvent;
|
72 | let animationStyle;
|
73 | let checkTriggers;
|
74 | let resetTriggers;
|
75 | let scrollListener;
|
76 | const attachEvent = typeof document !== "undefined" && document.attachEvent;
|
77 | if (!attachEvent) {
|
78 | resetTriggers = function(element) {
|
79 | const triggers = element.__resizeTriggers__, expand = triggers.firstElementChild, contract = triggers.lastElementChild, expandChild = expand.firstElementChild;
|
80 | contract.scrollLeft = contract.scrollWidth;
|
81 | contract.scrollTop = contract.scrollHeight;
|
82 | expandChild.style.width = expand.offsetWidth + 1 + "px";
|
83 | expandChild.style.height = expand.offsetHeight + 1 + "px";
|
84 | expand.scrollLeft = expand.scrollWidth;
|
85 | expand.scrollTop = expand.scrollHeight;
|
86 | };
|
87 | checkTriggers = function(element) {
|
88 | return element.offsetWidth !== element.__resizeLast__.width || element.offsetHeight !== element.__resizeLast__.height;
|
89 | };
|
90 | scrollListener = function(e) {
|
91 |
|
92 | if (e.target.className && typeof e.target.className.indexOf === "function" && e.target.className.indexOf("contract-trigger") < 0 && e.target.className.indexOf("expand-trigger") < 0) return;
|
93 | const element = this;
|
94 | resetTriggers(this);
|
95 | if (this.__resizeRAF__) $3e40d2fd7fdb47d2$var$cancelFrame(this.__resizeRAF__);
|
96 | this.__resizeRAF__ = $3e40d2fd7fdb47d2$var$requestFrame(function animationFrame() {
|
97 | if (checkTriggers(element)) {
|
98 | element.__resizeLast__.width = element.offsetWidth;
|
99 | element.__resizeLast__.height = element.offsetHeight;
|
100 | element.__resizeListeners__.forEach(function forEachResizeListener(fn) {
|
101 | fn.call(element, e);
|
102 | });
|
103 | }
|
104 | });
|
105 | };
|
106 | let animation = false;
|
107 | let keyframeprefix = "";
|
108 | animationStartEvent = "animationstart";
|
109 | const domPrefixes = "Webkit Moz O ms".split(" ");
|
110 | let startEvents = "webkitAnimationStart animationstart oAnimationStart MSAnimationStart".split(" ");
|
111 | let pfx = "";
|
112 | {
|
113 | const elm = document.createElement("fakeelement");
|
114 | if (elm.style.animationName !== undefined) animation = true;
|
115 | if (animation === false) {
|
116 | for(let i = 0; i < domPrefixes.length; i++)if (elm.style[domPrefixes[i] + "AnimationName"] !== undefined) {
|
117 | pfx = domPrefixes[i];
|
118 | keyframeprefix = "-" + pfx.toLowerCase() + "-";
|
119 | animationStartEvent = startEvents[i];
|
120 | animation = true;
|
121 | break;
|
122 | }
|
123 | }
|
124 | }
|
125 | animationName = "resizeanim";
|
126 | animationKeyframes = "@" + keyframeprefix + "keyframes " + animationName + " { from { opacity: 0; } to { opacity: 0; } } ";
|
127 | animationStyle = keyframeprefix + "animation: 1ms " + animationName + "; ";
|
128 | }
|
129 | const createStyles = function(doc) {
|
130 | if (!doc.getElementById("detectElementResize")) {
|
131 |
|
132 | const css = (animationKeyframes ? animationKeyframes : "") + ".resize-triggers { " + (animationStyle ? animationStyle : "") + "visibility: hidden; opacity: 0; } " + '.resize-triggers, .resize-triggers > div, .contract-trigger:before { content: " "; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; z-index: -1; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }', head = doc.head || doc.getElementsByTagName("head")[0], style = doc.createElement("style");
|
133 | style.id = "detectElementResize";
|
134 | style.type = "text/css";
|
135 | if (nonce != null) style.setAttribute("nonce", nonce);
|
136 | if (style.styleSheet) style.styleSheet.cssText = css;
|
137 | else style.appendChild(doc.createTextNode(css));
|
138 | head.appendChild(style);
|
139 | }
|
140 | };
|
141 | const addResizeListener = function(element, fn) {
|
142 | if (attachEvent) element.attachEvent("onresize", fn);
|
143 | else {
|
144 | if (!element.__resizeTriggers__) {
|
145 | const doc = element.ownerDocument;
|
146 | const elementStyle = $3e40d2fd7fdb47d2$var$windowObject.getComputedStyle(element);
|
147 | if (elementStyle && elementStyle.position === "static") element.style.position = "relative";
|
148 | createStyles(doc);
|
149 | element.__resizeLast__ = {};
|
150 | element.__resizeListeners__ = [];
|
151 | (element.__resizeTriggers__ = doc.createElement("div")).className = "resize-triggers";
|
152 | const expandTrigger = doc.createElement("div");
|
153 | expandTrigger.className = "expand-trigger";
|
154 | expandTrigger.appendChild(doc.createElement("div"));
|
155 | const contractTrigger = doc.createElement("div");
|
156 | contractTrigger.className = "contract-trigger";
|
157 | element.__resizeTriggers__.appendChild(expandTrigger);
|
158 | element.__resizeTriggers__.appendChild(contractTrigger);
|
159 | element.appendChild(element.__resizeTriggers__);
|
160 | resetTriggers(element);
|
161 | element.addEventListener("scroll", scrollListener, true);
|
162 | if (animationStartEvent) {
|
163 | element.__resizeTriggers__.__animationListener__ = function animationListener(e) {
|
164 | if (e.animationName === animationName) resetTriggers(element);
|
165 | };
|
166 | element.__resizeTriggers__.addEventListener(animationStartEvent, element.__resizeTriggers__.__animationListener__);
|
167 | }
|
168 | }
|
169 | element.__resizeListeners__.push(fn);
|
170 | }
|
171 | };
|
172 | const removeResizeListener = function(element, fn) {
|
173 | if (attachEvent) element.detachEvent("onresize", fn);
|
174 | else {
|
175 | element.__resizeListeners__.splice(element.__resizeListeners__.indexOf(fn), 1);
|
176 | if (!element.__resizeListeners__.length) {
|
177 | element.removeEventListener("scroll", scrollListener, true);
|
178 | if (element.__resizeTriggers__.__animationListener__) {
|
179 | element.__resizeTriggers__.removeEventListener(animationStartEvent, element.__resizeTriggers__.__animationListener__);
|
180 | element.__resizeTriggers__.__animationListener__ = null;
|
181 | }
|
182 | try {
|
183 | element.__resizeTriggers__ = !element.removeChild(element.__resizeTriggers__);
|
184 | } catch (e) {
|
185 |
|
186 | }
|
187 | }
|
188 | }
|
189 | };
|
190 | return {
|
191 | addResizeListener: addResizeListener,
|
192 | removeResizeListener: removeResizeListener
|
193 | };
|
194 | }
|
195 | $3e40d2fd7fdb47d2$exports = {
|
196 | createDetectElementResize: $3e40d2fd7fdb47d2$var$createDetectElementResize
|
197 | };
|
198 |
|
199 |
|
200 | function $6e2bb92d9db3b0c8$var$_defineProperty(obj, key, value) {
|
201 | key = $6e2bb92d9db3b0c8$var$_toPropertyKey(key);
|
202 | if (key in obj) Object.defineProperty(obj, key, {
|
203 | value: value,
|
204 | enumerable: true,
|
205 | configurable: true,
|
206 | writable: true
|
207 | });
|
208 | else obj[key] = value;
|
209 | return obj;
|
210 | }
|
211 | function $6e2bb92d9db3b0c8$var$_toPropertyKey(arg) {
|
212 | var key = $6e2bb92d9db3b0c8$var$_toPrimitive(arg, "string");
|
213 | return typeof key === "symbol" ? key : String(key);
|
214 | }
|
215 | function $6e2bb92d9db3b0c8$var$_toPrimitive(input, hint) {
|
216 | if (typeof input !== "object" || input === null) return input;
|
217 | var prim = input[Symbol.toPrimitive];
|
218 | if (prim !== undefined) {
|
219 | var res = prim.call(input, hint || "default");
|
220 | if (typeof res !== "object") return res;
|
221 | throw new TypeError("@@toPrimitive must return a primitive value.");
|
222 | }
|
223 | return (hint === "string" ? String : Number)(input);
|
224 | }
|
225 | class $6e2bb92d9db3b0c8$export$9d94f4ee1d930ff extends (0, $hgUW1$Component) {
|
226 | constructor(...args){
|
227 | super(...args);
|
228 | $6e2bb92d9db3b0c8$var$_defineProperty(this, "state", {
|
229 | height: this.props.defaultHeight || 0,
|
230 | scaledHeight: this.props.defaultHeight || 0,
|
231 | scaledWidth: this.props.defaultWidth || 0,
|
232 | width: this.props.defaultWidth || 0
|
233 | });
|
234 | $6e2bb92d9db3b0c8$var$_defineProperty(this, "_autoSizer", null);
|
235 | $6e2bb92d9db3b0c8$var$_defineProperty(this, "_detectElementResize", null);
|
236 | $6e2bb92d9db3b0c8$var$_defineProperty(this, "_parentNode", null);
|
237 | $6e2bb92d9db3b0c8$var$_defineProperty(this, "_resizeObserver", null);
|
238 | $6e2bb92d9db3b0c8$var$_defineProperty(this, "_onResize", ()=>{
|
239 | const { disableHeight: disableHeight , disableWidth: disableWidth , onResize: onResize } = this.props;
|
240 | if (this._parentNode) {
|
241 | var _style$paddingLeft, _style$paddingRight, _style$paddingTop, _style$paddingBottom;
|
242 |
|
243 |
|
244 |
|
245 | const style = window.getComputedStyle(this._parentNode) || {};
|
246 | const paddingLeft = parseInt((_style$paddingLeft = style.paddingLeft) !== null && _style$paddingLeft !== void 0 ? _style$paddingLeft : "0", 10);
|
247 | const paddingRight = parseInt((_style$paddingRight = style.paddingRight) !== null && _style$paddingRight !== void 0 ? _style$paddingRight : "0", 10);
|
248 | const paddingTop = parseInt((_style$paddingTop = style.paddingTop) !== null && _style$paddingTop !== void 0 ? _style$paddingTop : "0", 10);
|
249 | const paddingBottom = parseInt((_style$paddingBottom = style.paddingBottom) !== null && _style$paddingBottom !== void 0 ? _style$paddingBottom : "0", 10);
|
250 | const rect = this._parentNode.getBoundingClientRect();
|
251 | const scaledHeight = rect.height - paddingTop - paddingBottom;
|
252 | const scaledWidth = rect.width - paddingLeft - paddingRight;
|
253 | const height = this._parentNode.offsetHeight - paddingTop - paddingBottom;
|
254 | const width = this._parentNode.offsetWidth - paddingLeft - paddingRight;
|
255 | if (!disableHeight && (this.state.height !== height || this.state.scaledHeight !== scaledHeight) || !disableWidth && (this.state.width !== width || this.state.scaledWidth !== scaledWidth)) {
|
256 | this.setState({
|
257 | height: height,
|
258 | width: width,
|
259 | scaledHeight: scaledHeight,
|
260 | scaledWidth: scaledWidth
|
261 | });
|
262 | if (typeof onResize === "function") onResize({
|
263 | height: height,
|
264 | scaledHeight: scaledHeight,
|
265 | scaledWidth: scaledWidth,
|
266 | width: width
|
267 | });
|
268 | }
|
269 | }
|
270 | });
|
271 | $6e2bb92d9db3b0c8$var$_defineProperty(this, "_setRef", (autoSizer)=>{
|
272 | this._autoSizer = autoSizer;
|
273 | });
|
274 | }
|
275 | componentDidMount() {
|
276 | const { nonce: nonce } = this.props;
|
277 | if (this._autoSizer && this._autoSizer.parentNode && this._autoSizer.parentNode.ownerDocument && this._autoSizer.parentNode.ownerDocument.defaultView && this._autoSizer.parentNode instanceof this._autoSizer.parentNode.ownerDocument.defaultView.HTMLElement) {
|
278 |
|
279 |
|
280 |
|
281 | this._parentNode = this._autoSizer.parentNode;
|
282 |
|
283 |
|
284 | if (this._parentNode != null) {
|
285 | if (typeof ResizeObserver !== "undefined") {
|
286 | this._resizeObserver = new ResizeObserver(()=>{
|
287 |
|
288 |
|
289 |
|
290 | setTimeout(this._onResize, 0);
|
291 | });
|
292 | this._resizeObserver.observe(this._parentNode);
|
293 | } else {
|
294 | this._detectElementResize = (0, $3e40d2fd7fdb47d2$exports.createDetectElementResize)(nonce);
|
295 | this._detectElementResize.addResizeListener(this._parentNode, this._onResize);
|
296 | }
|
297 | this._onResize();
|
298 | }
|
299 | }
|
300 | }
|
301 | componentWillUnmount() {
|
302 | if (this._parentNode) {
|
303 | if (this._detectElementResize) this._detectElementResize.removeResizeListener(this._parentNode, this._onResize);
|
304 | if (this._resizeObserver) {
|
305 | this._resizeObserver.observe(this._parentNode);
|
306 | this._resizeObserver.disconnect();
|
307 | }
|
308 | }
|
309 | }
|
310 | render() {
|
311 | const { children: children , defaultHeight: defaultHeight , defaultWidth: defaultWidth , disableHeight: disableHeight , disableWidth: disableWidth , nonce: nonce , onResize: onResize , style: style , tagName: tagName = "div" , ...rest } = this.props;
|
312 | const { height: height , scaledHeight: scaledHeight , scaledWidth: scaledWidth , width: width } = this.state;
|
313 |
|
314 |
|
315 |
|
316 | const outerStyle = {
|
317 | overflow: "visible"
|
318 | };
|
319 | const childParams = {};
|
320 |
|
321 |
|
322 | let bailoutOnChildren = false;
|
323 | if (!disableHeight) {
|
324 | if (height === 0) bailoutOnChildren = true;
|
325 | outerStyle.height = 0;
|
326 | childParams.height = height;
|
327 | childParams.scaledHeight = scaledHeight;
|
328 | }
|
329 | if (!disableWidth) {
|
330 | if (width === 0) bailoutOnChildren = true;
|
331 | outerStyle.width = 0;
|
332 | childParams.width = width;
|
333 | childParams.scaledWidth = scaledWidth;
|
334 | }
|
335 | return (0, $hgUW1$createElement)(tagName, {
|
336 | ref: this._setRef,
|
337 | style: {
|
338 | ...outerStyle,
|
339 | ...style
|
340 | },
|
341 | ...rest
|
342 | }, !bailoutOnChildren && children(childParams));
|
343 | }
|
344 | }
|
345 | $6e2bb92d9db3b0c8$var$_defineProperty($6e2bb92d9db3b0c8$export$9d94f4ee1d930ff, "defaultProps", {
|
346 | onResize: ()=>{},
|
347 | disableHeight: false,
|
348 | disableWidth: false,
|
349 | style: {}
|
350 | });
|
351 |
|
352 |
|
353 | var $149c1bd638913645$export$2e2bcd8739ae039 = (0, $6e2bb92d9db3b0c8$export$9d94f4ee1d930ff);
|
354 |
|
355 |
|
356 | export {$149c1bd638913645$export$2e2bcd8739ae039 as default};
|
357 |
|