@roomle/embedding-lib 5.7.0-alpha.2 → 5.7.0-alpha.4

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.
@@ -0,0 +1,149 @@
1
+ var X = Object.defineProperty;
2
+ var x = (e, t, n) => t in e ? X(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[t] = n;
3
+ var o = (e, t, n) => x(e, typeof t != "symbol" ? t + "" : t, n);
4
+ class D {
5
+ constructor(t = 16) {
6
+ o(this, "_computedStyleCache", /* @__PURE__ */ new Map());
7
+ o(this, "_maxLifetime", 16);
8
+ o(this, "_cacheCleanInterval", null);
9
+ this._maxLifetime = t;
10
+ }
11
+ get(t) {
12
+ const n = this._computedStyleCache.get(t), i = Date.now();
13
+ if (n && i - n.updated < this._maxLifetime)
14
+ return n.style;
15
+ const s = getComputedStyle(t);
16
+ return this._computedStyleCache.set(t, { style: s, updated: i }), this._cacheCleanInterval || (this._cacheCleanInterval = setInterval(
17
+ () => this._cleanUpCache,
18
+ Math.max(this._maxLifetime * 1e3, 5e3)
19
+ )), s;
20
+ }
21
+ _cleanUpCache() {
22
+ const t = Date.now();
23
+ for (const [n, { updated: i }] of this._computedStyleCache.entries())
24
+ t - i >= this._maxLifetime && this._computedStyleCache.delete(n);
25
+ this._computedStyleCache.size === 0 && this._cacheCleanInterval && (clearInterval(this._cacheCleanInterval), this._cacheCleanInterval = null);
26
+ }
27
+ }
28
+ const h = (e) => window.TouchEvent && e instanceof window.TouchEvent;
29
+ let l;
30
+ const d = (e) => (l || (l = new D()), l.get(e)), m = (e, t, n) => {
31
+ const i = parseFloat(e), s = window.devicePixelRatio || 1;
32
+ if (t === "px")
33
+ return i;
34
+ if (t === "%") {
35
+ const c = n === document.documentElement ? window.innerWidth : n.offsetWidth;
36
+ return i / 100 * c;
37
+ }
38
+ if (t === "rem") {
39
+ const c = parseFloat(
40
+ d(document.documentElement).fontSize
41
+ );
42
+ return i * c;
43
+ }
44
+ if (t === "em") {
45
+ const c = parseFloat(
46
+ d(n).fontSize
47
+ );
48
+ return i * c;
49
+ }
50
+ if (t === "vh" || t === "vw" || t === "vmin" || t === "vmax") {
51
+ const c = {
52
+ vh: window.innerHeight,
53
+ vw: window.innerWidth,
54
+ vmin: Math.min(window.innerWidth, window.innerHeight),
55
+ vmax: Math.max(window.innerWidth, window.innerHeight)
56
+ };
57
+ return i / 100 * c[t];
58
+ }
59
+ const a = {
60
+ cm: 37.7952755906,
61
+ mm: 3.77952755906,
62
+ in: 96
63
+ };
64
+ return t in a ? i * a[t] * s : (console.warn(
65
+ "Unable to determine coordinates for drag-in. Therefore drag-in is not possible. Check the CSS that positions the iframe of Roomle"
66
+ ), 0);
67
+ }, L = (e, t, n = { x: 0, y: 0 }) => {
68
+ const i = e.getBoundingClientRect(), a = d(e).transform;
69
+ let c = 0, _ = 0;
70
+ if (a !== "none") {
71
+ const S = /translate\(\s*([-+]?\d*\.?\d+|\d+)(px|%)?,?\s*([-+]?\d*\.?\d+|\d+)?(px|%)?\s*\)/, r = a.match(S);
72
+ r && (c = m(r[1], r[2], e), _ = m(r[3], r[4], e));
73
+ }
74
+ const { clientX: g, clientY: w } = Y(t, n), C = g - i.left - c + e.scrollLeft, y = w - i.top - _ + e.scrollTop;
75
+ return { x: C, y };
76
+ }, Y = (e, t = null) => {
77
+ const { clientX: n, clientY: i } = h(e) ? E(e) : e, s = n > 0 ? n : t ? t.x : n, a = i > 0 ? i : t ? t.y : i;
78
+ return { clientX: s, clientY: a };
79
+ }, E = (e) => {
80
+ if (e.touches.length) {
81
+ let { clientX: n, clientY: i } = e.touches[0];
82
+ if (e.touches.length > 1) {
83
+ const s = e.touches[1], a = s.clientX, c = s.clientY;
84
+ n = (n + a) / 2, i = (i + c) / 2;
85
+ }
86
+ return { clientX: n, clientY: i };
87
+ }
88
+ const t = e.changedTouches[0];
89
+ return { clientX: t.clientX, clientY: t.clientY };
90
+ }, f = 500, T = 10, I = 100, M = 15, u = (e, t = 0) => h(e) ? {
91
+ clientX: e.touches[t].clientX,
92
+ clientY: e.touches[t].clientY
93
+ } : {
94
+ clientX: e.clientX,
95
+ clientY: e.clientY
96
+ }, p = (e) => e && h(e) ? e.touches.length > 0 : !0;
97
+ class R {
98
+ constructor(t, { onTouchDragStart: n }, i = {}) {
99
+ o(this, "_touchDragTimeOut");
100
+ o(this, "_onTouchDragStart");
101
+ o(this, "_payload", null);
102
+ o(this, "_delay", f);
103
+ o(this, "_firstTouch", null);
104
+ o(this, "_lastTouch", null);
105
+ o(this, "_epsilon", T);
106
+ this._payload = t, this._onTouchDragStart = n, this._delay = typeof i.delay == "number" ? i.delay : f, this._epsilon = typeof i.epsilon == "number" ? i.epsilon : T;
107
+ }
108
+ onStart(t) {
109
+ p(t) && (this._touchDragTimeOut || (this._firstTouch = u(
110
+ t,
111
+ h(t) ? t.touches.length - 1 : 0
112
+ ), this._touchDragTimeOut = setTimeout(() => {
113
+ this._clearTimeout(), this._lastTouch || (this._lastTouch = u(t)), this._checkXDistance(t)();
114
+ }, this._delay)));
115
+ }
116
+ onEnd() {
117
+ this._resetTouches();
118
+ }
119
+ onMove(t) {
120
+ p(t) && (this._lastTouch = u(t));
121
+ }
122
+ _clearTimeout() {
123
+ this._touchDragTimeOut && (clearTimeout(this._touchDragTimeOut), this._touchDragTimeOut = null);
124
+ }
125
+ _resetTouches() {
126
+ this._clearTimeout(), this._lastTouch = null, this._firstTouch = null, this._payload = null;
127
+ }
128
+ _checkXDistance(t) {
129
+ return () => {
130
+ if (!this._firstTouch || !this._lastTouch)
131
+ return;
132
+ let n = !1;
133
+ n = Math.abs(
134
+ this._firstTouch.clientX - this._lastTouch.clientX
135
+ ) < this._epsilon, n && (this._onTouchDragStart(this._payload, t), this._resetTouches());
136
+ };
137
+ }
138
+ }
139
+ export {
140
+ M as C,
141
+ R as T,
142
+ L as a,
143
+ f as b,
144
+ I as c,
145
+ T as d,
146
+ Y as e,
147
+ d as g,
148
+ h as i
149
+ };
@@ -1,7 +0,0 @@
1
- var O=Object.defineProperty,P=(i,t,e)=>t in i?O(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,c=(i,t,e)=>P(i,typeof t!="symbol"?t+"":t,e);class N{constructor(t=16){c(this,"_computedStyleCache",new Map),c(this,"_maxLifetime",16),c(this,"_cacheCleanInterval",null),this._maxLifetime=t}get(t){const e=this._computedStyleCache.get(t),n=Date.now();if(e&&n-e.updated<this._maxLifetime)return e.style;const o=getComputedStyle(t);return this._computedStyleCache.set(t,{style:o,updated:n}),this._cacheCleanInterval||(this._cacheCleanInterval=setInterval(()=>this._cleanUpCache,Math.max(this._maxLifetime*1e3,5e3))),o}_cleanUpCache(){const t=Date.now();for(const[e,{updated:n}]of this._computedStyleCache.entries())t-n>=this._maxLifetime&&this._computedStyleCache.delete(e);this._computedStyleCache.size===0&&this._cacheCleanInterval&&(clearInterval(this._cacheCleanInterval),this._cacheCleanInterval=null)}}const E=i=>window.TouchEvent&&i instanceof window.TouchEvent;let D;const f=i=>(D||(D=new N),D.get(i)),C=(i,t,e)=>{const n=parseFloat(i),o=window.devicePixelRatio||1;if(t==="px")return n;if(t==="%"){const a=e===document.documentElement?window.innerWidth:e.offsetWidth;return n/100*a}if(t==="rem"){const a=parseFloat(f(document.documentElement).fontSize);return n*a}if(t==="em"){const a=parseFloat(f(e).fontSize);return n*a}if(t==="vh"||t==="vw"||t==="vmin"||t==="vmax"){const a={vh:window.innerHeight,vw:window.innerWidth,vmin:Math.min(window.innerWidth,window.innerHeight),vmax:Math.max(window.innerWidth,window.innerHeight)};return n/100*a[t]}const s={cm:37.7952755906,mm:3.77952755906,in:96};return t in s?n*s[t]*o:(console.warn("Unable to determine coordinates for drag-in. Therefore drag-in is not possible. Check the CSS that positions the iframe of Roomle"),0)},I=(i,t,e={x:0,y:0})=>{const n=i.getBoundingClientRect(),o=f(i).transform;let s=0,a=0;if(o!=="none"){const _=/translate\(\s*([-+]?\d*\.?\d+|\d+)(px|%)?,?\s*([-+]?\d*\.?\d+|\d+)?(px|%)?\s*\)/,d=o.match(_);d&&(s=C(d[1],d[2],i),a=C(d[3],d[4],i))}const{clientX:r,clientY:l}=v(t,e),h=r-n.left-s+i.scrollLeft,u=l-n.top-a+i.scrollTop;return{x:h,y:u}},v=(i,t)=>{const{clientX:e,clientY:n}=E(i)?k(i):i,o=e||t.x,s=n||t.y;return{clientX:o,clientY:s}},k=i=>{if(i.touches.length){let{clientX:e,clientY:n}=i.touches[0];if(i.touches.length>1){const o=i.touches[1],s=o.clientX,a=o.clientY;e=(e+s)/2,n=(n+a)/2}return{clientX:e,clientY:n}}const t=i.changedTouches[0];return{clientX:t.clientX,clientY:t.clientY}},$=500,L=10;class z{constructor(t,{onTouchDragStart:e},n={}){c(this,"_touchDragTimeOut"),c(this,"_onTouchDragStart"),c(this,"_payload",null),c(this,"_delay",$),c(this,"_firstTouch",null),c(this,"_lastTouch",null),c(this,"_epsilon",L),this._payload=t,this._onTouchDragStart=e,this._delay=n.delay||$,this._epsilon=n.epsilon||L}onTouchStart(t){var e;!t||!((e=t?.touches)!=null&&e.length)||this._touchDragTimeOut||(this._firstTouch=t.touches[t.touches.length-1],this._touchDragTimeOut=setTimeout(()=>{this._clearTimeout(),this._lastTouch||(this._lastTouch=t.touches[0]),this._checkXDistance(t)()},this._delay))}onTouchEnd(){this._resetTouches()}onTouchMove(t){var e;!t||!((e=t?.touches)!=null&&e.length)||(this._lastTouch=t.touches[0])}_clearTimeout(){this._touchDragTimeOut&&(clearTimeout(this._touchDragTimeOut),this._touchDragTimeOut=null)}_resetTouches(){this._clearTimeout(),this._lastTouch=null,this._firstTouch=null,this._payload=null}_checkXDistance(t){return()=>{if(!this._firstTouch||!this._lastTouch)return;let e=!1;e=Math.abs(this._firstTouch.clientX-this._lastTouch.clientX)<this._epsilon,e&&(this._onTouchDragStart(this._payload,t),this._resetTouches())}}}const X="rml-drag-in-styles",F="rml-drag-in-drag-element",g="rml-drag-in-overlay",m="rml-drag-in-drag-ghost",x="rml-drag-in-fade-in",Y="rml-drag-in-fade-out",T={DISPLAY_NONE:"rml-display-none"},M=.5,w="250ms",S="forwards",b=i=>i?!0:(console.warn("No instance set, cancel drag-in"),!1);class A{constructor(t){c(this,"_iframe"),c(this,"_currentDrag",{}),c(this,"_currentTouch",null),c(this,"_firefoxDragPosition",{x:0,y:0}),c(this,"_instance",null),c(this,"options",{}),c(this,"_firefoxFallback",e=>{if(!this._currentDrag.event)return;const n=e||window.event;this._firefoxDragPosition.x=n.pageX||0,this._firefoxDragPosition.y=n.pageY||0}),this._iframe=t,this._injectStyles(),this._initializeDragGhost(),this._firefoxFallback=this._firefoxFallback.bind(this),document.addEventListener("dragover",this._firefoxFallback)}_injectStyles(){if(!document.getElementById(X)){const t=document.createElement("style");t.type="text/css",t.id=X,t.innerHTML=`
2
- .${T.DISPLAY_NONE}{display:none}
3
- .${g}{position:absolute;top:0;left:0;width:100%;height:100%;z-index:999;}
4
- .${m}{position:absolute;top:0;left:0;width:1px;height:1px;z-index:999;pointer-events:none;background-color:transparent;}
5
- @keyframes ${x} {from{opacity: 0;}to {opacity: ${M};}}
6
- @keyframes ${Y} {from{opacity: ${M};}to {opacity: 0;}}
7
- `,document.head.appendChild(t)}}_initializeDragGhost(){const t=this._iframe.parentNode;let e=t.querySelector("."+m);e||(e=document.createElement("div"),e.classList.add(m),e.innerText=" ",t.appendChild(e))}setInstance(t){this._instance=t}dragStart(t,e,n="rml_id"){const o=this._iframe.parentNode;if(f(o).position!=="relative"){console.warn("Parent of iframe should have position relative, otherwise drag-in can not detect the x/y coordinates correctly");return}this._iframe.style.pointerEvents="none";let s=o.querySelector("."+g);s||(s=document.createElement("div"),s.classList.add(g),o.appendChild(s)),s.classList.remove(T.DISPLAY_NONE),e.target.getAttribute("draggable")||console.warn(`Draggable not detected correctly! Did you add draggable="true" to the element? In Sarafi only 'draggable' is too less`);const a=o.querySelector("."+m);this._currentDrag.event=e;const r=e.target.cloneNode();r.style.position="fixed",r.style.pointerEvents="none",r.style.opacity="0",r.style.animation=`${x} ${w} ${S}`,r.id=F,r.style.zIndex="9999",document.body.appendChild(r),this._currentDrag.element=r;const l=e.target.getBoundingClientRect();this._currentDrag.offset||(this._currentDrag.offset={x:0,y:0});const{clientX:h,clientY:u}=v(e,this._firefoxDragPosition);this._currentDrag.offset.x=h-l.left,this._currentDrag.offset.y=u-l.top,r.style.top=u+"px",r.style.left=h+"px",e instanceof DragEvent&&e.dataTransfer&&e.dataTransfer.setDragImage&&e.dataTransfer.setDragImage(a,0,0);const{x:_,y:d}=I(o,this._currentDrag.event||e,this._firefoxDragPosition),p=Math.max(1,_),y=Math.max(1,d);b(this._instance)&&this._instance.dragInObject(t,p,y,n)}dragUpdate(t){var e,n;const o=this._iframe.parentNode,{x:s,y:a}=I(o,t,this._firefoxDragPosition);if(s===0&&a===0)return;const r=Math.max(1,s),l=Math.max(1,a);if(this._currentDrag.element){const{clientX:h,clientY:u}=v(t,this._firefoxDragPosition),_=((e=this._currentDrag.offset)==null?void 0:e.x)||0,d=((n=this._currentDrag.offset)==null?void 0:n.y)||0;this._currentDrag.element.style.left=`${h-_}px`,this._currentDrag.element.style.top=`${u-d}px`;const p=(this.options.dragInOverlapX||0)+1,y=(this.options.dragInOverlapY||0)+1;r>p&&l>y?this._currentDrag.element.style.animation=`${Y} ${w} ${S}`:this._currentDrag.element.style.animation=`${x} ${w} ${S}`}if(!(r===1&&l===1)&&b(this._instance)){let h=r,u=l;if(E(t)){const _=this.options.fingerSize||0;h=Math.max(2,r+_),u=Math.max(2,l-_)}this._instance.updateDrag(h,u)}}dragEnd(){this._iframe.style.pointerEvents="all";const t=this._iframe.parentNode;b(this._instance)&&this._instance.dragInObjectEnd(),this._currentDrag.element&&document.body.removeChild(this._currentDrag.element),this._currentDrag={},this._firefoxDragPosition={x:0,y:0};const e=t.querySelector("."+g);e&&e.classList.add(T.DISPLAY_NONE)}touchStart(t,e,n="rml_id"){var o,s;e.preventDefault();const a=(l,h)=>{this.dragStart(t,h,n)},r={};typeof((o=this.options)==null?void 0:o.touchDragDelay)=="number"&&(r.delay=this.options.touchDragDelay),(s=this.options)!=null&&s.touchDragEpsilon&&(r.epsilon=this.options.touchDragEpsilon),this._currentTouch=new z(void 0,{onTouchDragStart:a},r),this._currentTouch.onTouchStart(e)}touchMove(t){this._currentTouch&&this._currentTouch.onTouchMove(t),this._currentDrag.event&&this.dragUpdate(t)}touchEnd(){this._currentTouch&&this._currentTouch.onTouchEnd(),this._currentTouch=null,this.dragEnd()}dispose(){document.removeEventListener("dragover",this._firefoxFallback)}}export{A as DragIn};
@@ -1,265 +0,0 @@
1
- var v = Object.defineProperty;
2
- var P = (n, t, e) => t in n ? v(n, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : n[t] = e;
3
- var c = (n, t, e) => P(n, typeof t != "symbol" ? t + "" : t, e);
4
- class $ {
5
- constructor(t = 16) {
6
- c(this, "_computedStyleCache", /* @__PURE__ */ new Map());
7
- c(this, "_maxLifetime", 16);
8
- c(this, "_cacheCleanInterval", null);
9
- this._maxLifetime = t;
10
- }
11
- get(t) {
12
- const e = this._computedStyleCache.get(t), i = Date.now();
13
- if (e && i - e.updated < this._maxLifetime)
14
- return e.style;
15
- const s = getComputedStyle(t);
16
- return this._computedStyleCache.set(t, { style: s, updated: i }), this._cacheCleanInterval || (this._cacheCleanInterval = setInterval(
17
- () => this._cleanUpCache,
18
- Math.max(this._maxLifetime * 1e3, 5e3)
19
- )), s;
20
- }
21
- _cleanUpCache() {
22
- const t = Date.now();
23
- for (const [e, { updated: i }] of this._computedStyleCache.entries())
24
- t - i >= this._maxLifetime && this._computedStyleCache.delete(e);
25
- this._computedStyleCache.size === 0 && this._cacheCleanInterval && (clearInterval(this._cacheCleanInterval), this._cacheCleanInterval = null);
26
- }
27
- }
28
- const M = (n) => window.TouchEvent && n instanceof window.TouchEvent;
29
- let D;
30
- const p = (n) => (D || (D = new $()), D.get(n)), C = (n, t, e) => {
31
- const i = parseFloat(n), s = window.devicePixelRatio || 1;
32
- if (t === "px")
33
- return i;
34
- if (t === "%") {
35
- const o = e === document.documentElement ? window.innerWidth : e.offsetWidth;
36
- return i / 100 * o;
37
- }
38
- if (t === "rem") {
39
- const o = parseFloat(
40
- p(document.documentElement).fontSize
41
- );
42
- return i * o;
43
- }
44
- if (t === "em") {
45
- const o = parseFloat(
46
- p(e).fontSize
47
- );
48
- return i * o;
49
- }
50
- if (t === "vh" || t === "vw" || t === "vmin" || t === "vmax") {
51
- const o = {
52
- vh: window.innerHeight,
53
- vw: window.innerWidth,
54
- vmin: Math.min(window.innerWidth, window.innerHeight),
55
- vmax: Math.max(window.innerWidth, window.innerHeight)
56
- };
57
- return i / 100 * o[t];
58
- }
59
- const r = {
60
- cm: 37.7952755906,
61
- mm: 3.77952755906,
62
- in: 96
63
- };
64
- return t in r ? i * r[t] * s : (console.warn("Unable to determine coordinates for drag-in. Therefore drag-in is not possible. Check the CSS that positions the iframe of Roomle"), 0);
65
- }, A = (n, t, e = { x: 0, y: 0 }) => {
66
- const i = n.getBoundingClientRect(), r = p(n).transform;
67
- let o = 0, l = 0;
68
- if (r !== "none") {
69
- const f = /translate\(\s*([-+]?\d*\.?\d+|\d+)(px|%)?,?\s*([-+]?\d*\.?\d+|\d+)?(px|%)?\s*\)/, d = r.match(f);
70
- d && (o = C(d[1], d[2], n), l = C(d[3], d[4], n));
71
- }
72
- const { clientX: _, clientY: a } = w(t, e), h = _ - i.left - o + n.scrollLeft, u = a - i.top - l + n.scrollTop;
73
- return { x: h, y: u };
74
- }, w = (n, t) => {
75
- const { clientX: e, clientY: i } = M(n) ? G(n) : n, s = e || t.x, r = i || t.y;
76
- return { clientX: s, clientY: r };
77
- }, G = (n) => {
78
- if (n.touches.length) {
79
- let { clientX: e, clientY: i } = n.touches[0];
80
- if (n.touches.length > 1) {
81
- const s = n.touches[1], r = s.clientX, o = s.clientY;
82
- e = (e + r) / 2, i = (i + o) / 2;
83
- }
84
- return { clientX: e, clientY: i };
85
- }
86
- const t = n.changedTouches[0];
87
- return { clientX: t.clientX, clientY: t.clientY };
88
- }, N = 500, L = 10;
89
- class z {
90
- constructor(t, { onTouchDragStart: e }, i = {}) {
91
- c(this, "_touchDragTimeOut");
92
- c(this, "_onTouchDragStart");
93
- c(this, "_payload", null);
94
- c(this, "_delay", N);
95
- c(this, "_firstTouch", null);
96
- c(this, "_lastTouch", null);
97
- c(this, "_epsilon", L);
98
- this._payload = t, this._onTouchDragStart = e, this._delay = i.delay || N, this._epsilon = i.epsilon || L;
99
- }
100
- onTouchStart(t) {
101
- var e;
102
- !t || !((e = t == null ? void 0 : t.touches) != null && e.length) || this._touchDragTimeOut || (this._firstTouch = t.touches[t.touches.length - 1], this._touchDragTimeOut = setTimeout(() => {
103
- this._clearTimeout(), this._lastTouch || (this._lastTouch = t.touches[0]), this._checkXDistance(t)();
104
- }, this._delay));
105
- }
106
- onTouchEnd() {
107
- this._resetTouches();
108
- }
109
- onTouchMove(t) {
110
- var e;
111
- !t || !((e = t == null ? void 0 : t.touches) != null && e.length) || (this._lastTouch = t.touches[0]);
112
- }
113
- _clearTimeout() {
114
- this._touchDragTimeOut && (clearTimeout(this._touchDragTimeOut), this._touchDragTimeOut = null);
115
- }
116
- _resetTouches() {
117
- this._clearTimeout(), this._lastTouch = null, this._firstTouch = null, this._payload = null;
118
- }
119
- _checkXDistance(t) {
120
- return () => {
121
- if (!this._firstTouch || !this._lastTouch)
122
- return;
123
- let e = !1;
124
- e = Math.abs(
125
- this._firstTouch.clientX - this._lastTouch.clientX
126
- ) < this._epsilon, e && (this._onTouchDragStart(this._payload, t), this._resetTouches());
127
- };
128
- }
129
- }
130
- const O = "rml-drag-in-styles", F = "rml-drag-in-drag-element", g = "rml-drag-in-overlay", m = "rml-drag-in-drag-ghost", T = "rml-drag-in-fade-in", b = "rml-drag-in-fade-out", x = {
131
- DISPLAY_NONE: "rml-display-none"
132
- }, Y = 0.5, S = "250ms", I = "forwards", E = (n) => n ? !0 : (console.warn("No instance set, cancel drag-in"), !1);
133
- class U {
134
- constructor(t) {
135
- c(this, "_iframe");
136
- c(this, "_currentDrag", {});
137
- c(this, "_currentTouch", null);
138
- c(this, "_firefoxDragPosition", { x: 0, y: 0 });
139
- c(this, "_instance", null);
140
- c(this, "options", {});
141
- c(this, "_firefoxFallback", (t) => {
142
- if (!this._currentDrag.event)
143
- return;
144
- const e = t || window.event;
145
- this._firefoxDragPosition.x = e.pageX || 0, this._firefoxDragPosition.y = e.pageY || 0;
146
- });
147
- this._iframe = t, this._injectStyles(), this._initializeDragGhost(), this._firefoxFallback = this._firefoxFallback.bind(this), document.addEventListener("dragover", this._firefoxFallback);
148
- }
149
- _injectStyles() {
150
- if (!!!document.getElementById(O)) {
151
- const e = document.createElement("style");
152
- e.type = "text/css", e.id = O, e.innerHTML = `
153
- .${x.DISPLAY_NONE}{display:none}
154
- .${g}{position:absolute;top:0;left:0;width:100%;height:100%;z-index:999;}
155
- .${m}{position:absolute;top:0;left:0;width:1px;height:1px;z-index:999;pointer-events:none;background-color:transparent;}
156
- @keyframes ${T} {from{opacity: 0;}to {opacity: ${Y};}}
157
- @keyframes ${b} {from{opacity: ${Y};}to {opacity: 0;}}
158
- `, document.head.appendChild(e);
159
- }
160
- }
161
- _initializeDragGhost() {
162
- const t = this._iframe.parentNode;
163
- let e = t.querySelector(
164
- "." + m
165
- );
166
- e || (e = document.createElement("div"), e.classList.add(m), e.innerText = " ", t.appendChild(e));
167
- }
168
- setInstance(t) {
169
- this._instance = t;
170
- }
171
- dragStart(t, e, i = "rml_id") {
172
- const s = this._iframe.parentNode;
173
- if (p(s).position !== "relative") {
174
- console.warn(
175
- "Parent of iframe should have position relative, otherwise drag-in can not detect the x/y coordinates correctly"
176
- );
177
- return;
178
- }
179
- this._iframe.style.pointerEvents = "none";
180
- let o = s.querySelector(
181
- "." + g
182
- );
183
- o || (o = document.createElement("div"), o.classList.add(g), s.appendChild(o)), o.classList.remove(x.DISPLAY_NONE), e.target.getAttribute("draggable") || console.warn(
184
- `Draggable not detected correctly! Did you add draggable="true" to the element? In Sarafi only 'draggable' is too less`
185
- );
186
- const _ = s.querySelector(
187
- "." + m
188
- );
189
- this._currentDrag.event = e;
190
- const a = e.target.cloneNode();
191
- a.style.position = "fixed", a.style.pointerEvents = "none", a.style.opacity = "0", a.style.animation = `${T} ${S} ${I}`, a.id = F, a.style.zIndex = "9999", document.body.appendChild(a), this._currentDrag.element = a;
192
- const h = e.target.getBoundingClientRect();
193
- this._currentDrag.offset || (this._currentDrag.offset = { x: 0, y: 0 });
194
- const { clientX: u, clientY: f } = w(
195
- e,
196
- this._firefoxDragPosition
197
- );
198
- this._currentDrag.offset.x = u - h.left, this._currentDrag.offset.y = f - h.top, a.style.top = f + "px", a.style.left = u + "px", e instanceof DragEvent && e.dataTransfer && e.dataTransfer.setDragImage && e.dataTransfer.setDragImage(_, 0, 0);
199
- const { x: d, y } = A(
200
- s,
201
- this._currentDrag.event || e,
202
- this._firefoxDragPosition
203
- ), R = Math.max(1, d), X = Math.max(1, y);
204
- E(this._instance) && this._instance.dragInObject(t, R, X, i);
205
- }
206
- dragUpdate(t) {
207
- var l, _;
208
- const e = this._iframe.parentNode, { x: i, y: s } = A(e, t, this._firefoxDragPosition);
209
- if (i === 0 && s === 0)
210
- return;
211
- const r = Math.max(1, i), o = Math.max(1, s);
212
- if (this._currentDrag.element) {
213
- const { clientX: a, clientY: h } = w(
214
- t,
215
- this._firefoxDragPosition
216
- ), u = ((l = this._currentDrag.offset) == null ? void 0 : l.x) || 0, f = ((_ = this._currentDrag.offset) == null ? void 0 : _.y) || 0;
217
- this._currentDrag.element.style.left = `${a - u}px`, this._currentDrag.element.style.top = `${h - f}px`;
218
- const d = (this.options.dragInOverlapX || 0) + 1, y = (this.options.dragInOverlapY || 0) + 1;
219
- r > d && o > y ? this._currentDrag.element.style.animation = `${b} ${S} ${I}` : this._currentDrag.element.style.animation = `${T} ${S} ${I}`;
220
- }
221
- if (!(r === 1 && o === 1) && E(this._instance)) {
222
- let a = r, h = o;
223
- if (M(t)) {
224
- const u = this.options.fingerSize || 0;
225
- a = Math.max(2, r + u), h = Math.max(2, o - u);
226
- }
227
- this._instance.updateDrag(a, h);
228
- }
229
- }
230
- dragEnd() {
231
- this._iframe.style.pointerEvents = "all";
232
- const t = this._iframe.parentNode;
233
- E(this._instance) && this._instance.dragInObjectEnd(), this._currentDrag.element && document.body.removeChild(this._currentDrag.element), this._currentDrag = {}, this._firefoxDragPosition = { x: 0, y: 0 };
234
- const e = t.querySelector(
235
- "." + g
236
- );
237
- e && e.classList.add(x.DISPLAY_NONE);
238
- }
239
- touchStart(t, e, i = "rml_id") {
240
- var o, l;
241
- e.preventDefault();
242
- const s = (_, a) => {
243
- this.dragStart(t, a, i);
244
- }, r = {};
245
- typeof ((o = this.options) == null ? void 0 : o.touchDragDelay) == "number" && (r.delay = this.options.touchDragDelay), (l = this.options) != null && l.touchDragEpsilon && (r.epsilon = this.options.touchDragEpsilon), this._currentTouch = new z(
246
- void 0,
247
- {
248
- onTouchDragStart: s
249
- },
250
- r
251
- ), this._currentTouch.onTouchStart(e);
252
- }
253
- touchMove(t) {
254
- this._currentTouch && this._currentTouch.onTouchMove(t), this._currentDrag.event && this.dragUpdate(t);
255
- }
256
- touchEnd() {
257
- this._currentTouch && this._currentTouch.onTouchEnd(), this._currentTouch = null, this.dragEnd();
258
- }
259
- dispose() {
260
- document.removeEventListener("dragover", this._firefoxFallback);
261
- }
262
- }
263
- export {
264
- U as DragIn
265
- };