You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2295 lines
78 KiB
2295 lines
78 KiB
(window.webpackJsonp = window.webpackJsonp || []).push([
|
|
["floating-toolbars"], {
|
|
"+KIV": function(t, e) {
|
|
t.exports =
|
|
'<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" fill="none"><path stroke="currentColor" d="M8 9.5H6.5a1 1 0 0 0-1 1v11a1 1 0 0 0 1 1h11a1 1 0 0 0 1-1V20m-8-1.5h11a1 1 0 0 0 1-1v-11a1 1 0 0 0-1-1h-11a1 1 0 0 0-1 1v11a1 1 0 0 0 1 1z"/></svg>'
|
|
},
|
|
"0ZwQ": function(t, e, i) {
|
|
"use strict";
|
|
var o = i("8+VR"),
|
|
n = i("9uLv"),
|
|
s = i("Vdly"),
|
|
r = i("aIyQ"),
|
|
a = i.n(r),
|
|
l = i("hY0g"),
|
|
c = i.n(l),
|
|
d = i("cZRT");
|
|
class h extends d.a {
|
|
_startLoading() {
|
|
return i.e("hammerjs").then(i.bind(null, "be1f")).then(t => t.HammerJS)
|
|
}
|
|
}
|
|
var u = i("VVxS");
|
|
i("Eyy1");
|
|
|
|
function p(t, e = !1) {
|
|
const i = getComputedStyle(t),
|
|
o = [i.height];
|
|
return "border-box" !== i.boxSizing && o.push(i.paddingTop, i.paddingBottom, i
|
|
.borderTopWidth, i.borderBottomWidth), e && o.push(i.marginTop, i.marginBottom), o
|
|
.reduce((t, e) => t + (parseFloat(e) || 0), 0)
|
|
}
|
|
|
|
function g(t, e = !1) {
|
|
const i = getComputedStyle(t),
|
|
o = [i.width];
|
|
return "border-box" !== i.boxSizing && o.push(i.paddingLeft, i.paddingRight, i
|
|
.borderLeftWidth, i.borderRightWidth), e && o.push(i.marginLeft, i.marginRight), o
|
|
.reduce((t, e) => t + (parseFloat(e) || 0), 0)
|
|
}
|
|
var _ = i("qFKp");
|
|
class m {
|
|
constructor(t) {
|
|
var e, i;
|
|
this._helper = null, this._handleDragStart = t => {
|
|
var e;
|
|
if (null !== this._helper) return;
|
|
if (!(t.target instanceof Element && this._handle.contains(t.target)))
|
|
return;
|
|
const i = this._source;
|
|
i.classList.add("ui-draggable-dragging");
|
|
const o = this._getEventTarget();
|
|
o.addEventListener("pointermove", this._handleDragMove), o.addEventListener(
|
|
"pointerup", this._handleDragStop), o.addEventListener(
|
|
"pointercancel", this._handleDragStop), o.setPointerCapture(t
|
|
.pointerId);
|
|
const [n, s] = [g(i), p(i)];
|
|
this._helper = {
|
|
pointer: t.pointerId,
|
|
startX: t.clientX,
|
|
startY: t.clientY,
|
|
startTop: parseFloat(i.style.top) || 0,
|
|
startLeft: parseFloat(i.style.left) || 0,
|
|
nextTop: null,
|
|
nextLeft: null,
|
|
raf: null,
|
|
size: [n, s],
|
|
containment: this._containment instanceof HTMLElement ? [parseInt(
|
|
getComputedStyle(this._containment).borderLeftWidth) +
|
|
parseInt(getComputedStyle(this._containment).paddingLeft),
|
|
parseInt(getComputedStyle(this._containment)
|
|
.borderTopWidth) + parseInt(getComputedStyle(this
|
|
._containment).paddingTop), this._containment
|
|
.offsetWidth - parseInt(getComputedStyle(this._containment)
|
|
.borderRightWidth) - parseInt(getComputedStyle(this
|
|
._containment).paddingRight) - parseInt(
|
|
getComputedStyle(i).marginLeft) - parseInt(
|
|
getComputedStyle(i).marginRight) - n, this._containment
|
|
.offsetHeight - parseInt(getComputedStyle(this._containment)
|
|
.borderBottomWidth) - parseInt(getComputedStyle(this
|
|
._containment).paddingBottom) - parseInt(
|
|
getComputedStyle(i).marginTop) - parseInt(
|
|
getComputedStyle(i).marginBottom) - s
|
|
] : "window" === this._containment ? [window.scrollX, window
|
|
.scrollY, window.scrollX + document.documentElement
|
|
.offsetWidth - n, window.scrollY + document.documentElement
|
|
.offsetHeight - s
|
|
] : null
|
|
}, null === (e = this._start) || void 0 === e || e.call(this)
|
|
}, this._handleDragMove = t => {
|
|
var e;
|
|
if (null === this._helper || this._helper.pointer !== t.pointerId) return;
|
|
const i = this._source,
|
|
o = this._helper.nextTop,
|
|
n = this._helper.nextLeft,
|
|
s = "y" === this._axis || !1 === this._axis || 0 !== t.movementY;
|
|
if (s) {
|
|
const e = this._helper.startTop;
|
|
isFinite(e) && (this._helper.nextTop = t.clientY - this._helper.startY +
|
|
e)
|
|
}
|
|
const r = "x" === this._axis || !1 === this._axis || 0 !== t.movementX;
|
|
if (r) {
|
|
const e = this._helper.startLeft;
|
|
isFinite(e) && (this._helper.nextLeft = t.clientX - this._helper
|
|
.startX + e)
|
|
}
|
|
if (null !== this._helper.containment) {
|
|
const [t, e, i, o] = this._helper.containment;
|
|
s && this._helper.nextTop && (this._helper.nextTop = Math.min(this
|
|
._helper.nextTop, o), this._helper.nextTop = Math.max(this
|
|
._helper.nextTop, e)), r && this._helper.nextLeft && (this
|
|
._helper.nextLeft = Math.min(this._helper.nextLeft, i), this
|
|
._helper.nextLeft = Math.max(this._helper.nextLeft, t))
|
|
}
|
|
null !== this._helper.raf || o === this._helper.nextTop && n === this
|
|
._helper.nextLeft || (this._helper.raf = requestAnimationFrame(() => {
|
|
null !== this._helper && (null !== this._helper.nextTop && (
|
|
i.style.top = this._helper.nextTop + "px", this
|
|
._helper.nextTop = null), null !== this._helper
|
|
.nextLeft && (i.style.left = this._helper.nextLeft +
|
|
"px", this._helper.nextLeft = null), this
|
|
._helper.raf = null)
|
|
})), null === (e = this._drag) || void 0 === e || e.call(this)
|
|
}, this._handleDragStop = t => {
|
|
var e;
|
|
if (null === this._helper || this._helper.pointer !== t.pointerId) return;
|
|
this._source.classList.remove("ui-draggable-dragging");
|
|
const i = this._getEventTarget();
|
|
i.removeEventListener("pointermove", this._handleDragMove), i
|
|
.removeEventListener("pointerup", this._handleDragStop), i
|
|
.removeEventListener("pointercancel", this._handleDragStop), i
|
|
.releasePointerCapture(this._helper.pointer), this._helper = null,
|
|
null === (e = this._stop) || void 0 === e || e.call(this)
|
|
};
|
|
const o = this._source = t.source;
|
|
o.classList.add("ui-draggable");
|
|
const n = this._handle = null !== (e = t.handle ? o.querySelector(t.handle) :
|
|
null) && void 0 !== e ? e : o;
|
|
n.style.touchAction = "none", n.classList.add("ui-draggable-handle");
|
|
this._getEventTarget().addEventListener("pointerdown", this._handleDragStart), this
|
|
._start = t.start, this._stop = t.stop, this._drag = t.drag, this._axis =
|
|
null !== (i = t.axis) && void 0 !== i && i, this._containment = t.containment
|
|
}
|
|
destroy() {
|
|
const t = this._source;
|
|
t.classList.remove("ui-draggable"), t.classList.remove("ui-draggable-dragging");
|
|
this._handle.style.touchAction = "";
|
|
const e = this._getEventTarget();
|
|
e.removeEventListener("pointerdown", this._handleDragStart), e.removeEventListener(
|
|
"pointermove", this._handleDragMove), e.removeEventListener("pointerup",
|
|
this._handleDragStop), e.removeEventListener("pointercancel", this
|
|
._handleDragStop), null !== this._helper && (this._helper.raf &&
|
|
cancelAnimationFrame(this._helper.raf), e.releasePointerCapture(this._helper
|
|
.pointer), this._helper = null)
|
|
}
|
|
_getEventTarget() {
|
|
return _.CheckMobile.iOS() || Object(_.isMac)() && o.touch ? window.document
|
|
.documentElement : this._handle
|
|
}
|
|
}
|
|
var b = i("gWrr"),
|
|
v = i("JWMC"),
|
|
w = i("qAO1");
|
|
i("PwLo");
|
|
i.d(e, "a", (function() {
|
|
return f
|
|
})), i.d(e, "b", (function() {
|
|
return C
|
|
}));
|
|
const f = "floating-toolbar-react-widgets",
|
|
y =
|
|
`<div class="tv-floating-toolbar i-closed i-hidden"><div class="tv-floating-toolbar__widget-wrapper"><div class="tv-floating-toolbar__drag js-drag">${w}</div><div class="tv-floating-toolbar__content js-content"></div><div class="${f}"></div></div></div>`;
|
|
class C {
|
|
constructor(t) {
|
|
this._widget = document.createElement("div"), this._isVertical = !1,
|
|
this._hiddingTimeoutId = null, this._visibility = new c.a(!1), this
|
|
._windowResizeListener = this._onWindowResize.bind(this), this
|
|
._reorderedDelegate = new a.a, this._responsiveResizeFunction = null, this
|
|
._showTimeStamp = null, this._draggable = null, this
|
|
._preventClickUntilAnimation = t => {
|
|
null !== this._showTimeStamp && performance.now() - this._showTimeStamp <
|
|
this.hideDuration() && t.stopPropagation()
|
|
}, C._toolbars.push(this), this._options = t, this._widget = Object(b.b)(y),
|
|
this._content = this._widget.getElementsByClassName("js-content").item(0), this
|
|
._reactWidgetsContainer = this._widget.getElementsByClassName(f).item(0), this
|
|
._setZIndex(C._startZIndex + C._toolbars.length - 1), this._options.addClass &&
|
|
(this._widget.className += " " + this._options.addClass), this._options[
|
|
"data-name"] && (this._widget.dataset.name = this._options["data-name"]),
|
|
this._options.layout && "auto" !== this._options.layout && (this._isVertical =
|
|
"vertical" === this._options.layout, this._updateLayoutType(), this
|
|
._updateAxisOption()), this._widget.addEventListener("click", this
|
|
._preventClickUntilAnimation, !0)
|
|
}
|
|
destroy() {
|
|
this.hide(!0), C._toolbars.splice(C._toolbars.indexOf(this), 1), this._widget
|
|
.removeEventListener("click", this._preventClickUntilAnimation, !0), document
|
|
.body.contains(this._widget) && document.body.removeChild(this._widget),
|
|
null !== this._draggable && this._draggable.destroy(), this._widget.innerHTML =
|
|
"", this._responsiveResizeFunction = null
|
|
}
|
|
setResponsiveResizeFunc(t) {
|
|
this._responsiveResizeFunction = t
|
|
}
|
|
isVisible() {
|
|
return this._visibility.value()
|
|
}
|
|
visibility() {
|
|
return this._visibility.readonly()
|
|
}
|
|
isVertical() {
|
|
return this._isVertical
|
|
}
|
|
show() {
|
|
this.isVisible() || (document.body.contains(this._widget) || (this._init(), document
|
|
.body.appendChild(this._widget)), this._setHiddingTimeout(null), window
|
|
.addEventListener("resize", this._windowResizeListener), this.raise(), this
|
|
._visibility.setValue(!0), this._showTimeStamp = performance.now(), this
|
|
._widget.classList.contains("i-hidden") ? (this._widget.classList.remove(
|
|
"i-hidden"), setTimeout(() => {
|
|
this.isVisible() && this._widget.classList.remove("i-closed")
|
|
})) : this._widget.classList.remove("i-closed"), this._onWindowResize())
|
|
}
|
|
hide(t = !1) {
|
|
if (!this.isVisible()) return;
|
|
const e = this._widget.classList.contains("i-closed");
|
|
if (this._widget.classList.add("i-closed"), this._visibility.setValue(!1), t || e)
|
|
this._setHiddingTimeout(null), this._widget.classList.add("i-hidden");
|
|
else {
|
|
const t = setTimeout(() => {
|
|
this._setHiddingTimeout(null), this._widget.classList.add(
|
|
"i-hidden")
|
|
}, this.hideDuration());
|
|
this._setHiddingTimeout(t)
|
|
}
|
|
window.removeEventListener("resize", this._windowResizeListener)
|
|
}
|
|
raise() {
|
|
C._toolbars.length + C._startZIndex !== this._zIndex() && (C._toolbars.splice(C
|
|
._toolbars.indexOf(this), 1), C._toolbars.push(this), C
|
|
._updateAllZIndexes())
|
|
}
|
|
hideDuration() {
|
|
return .75 * n.b
|
|
}
|
|
addWidget(t, e = {}) {
|
|
const i = this.widgetsCount();
|
|
if (void 0 === e.index && (e.index = i), e.index < 0 || e.index > i)
|
|
throw new Error(`Index must be in [0, ${i}]`);
|
|
const o = document.createElement("div");
|
|
o.className = "tv-floating-toolbar__widget js-widget", o.appendChild(t);
|
|
const n = e.index === i ? null : this._content.childNodes.item(e.index);
|
|
this._content.insertBefore(o, n),
|
|
this._onWindowResize()
|
|
}
|
|
getReactWidgetContainer() {
|
|
return this._reactWidgetsContainer
|
|
}
|
|
removeWidget(t) {
|
|
const e = this._findWrapperForWidget(t);
|
|
e && (this._content.removeChild(e), this._onWindowResize())
|
|
}
|
|
widgetsCount() {
|
|
return this._content.childNodes.length
|
|
}
|
|
showWidget(t) {
|
|
const e = this._findWrapperForWidget(t);
|
|
e && e.classList.remove("i-hidden")
|
|
}
|
|
hideWidget(t) {
|
|
const e = this._findWrapperForWidget(t);
|
|
e && e.classList.add("i-hidden")
|
|
}
|
|
removeWidgets() {
|
|
for (; this._content.firstChild;) this._content.removeChild(this._content
|
|
.firstChild);
|
|
this._onWindowResize()
|
|
}
|
|
onWidgetsReordered() {
|
|
return this._reorderedDelegate
|
|
}
|
|
onContextMenu(t) {
|
|
if (o.mobiletouch) {
|
|
(new h).load().then(e => {
|
|
const i = new e(this._widget);
|
|
i.get("press").set({
|
|
time: 500
|
|
}), i.on("press", e => {
|
|
this._preventWidgetTouchEndEvent(), t(e.srcEvent)
|
|
})
|
|
})
|
|
} else this._widget.addEventListener("contextmenu", t)
|
|
}
|
|
checkPosition() {
|
|
const t = this._getCorrectedWidgetRect(),
|
|
e = {
|
|
left: t.left,
|
|
top: t.top
|
|
};
|
|
this._correctPosition(e), t.left === e.left && t.top === e.top || (this._widget
|
|
.style.left = e.left + "px", this._widget.style.top = e.top + "px")
|
|
}
|
|
_determineCurrentLayoutVertical(t) {
|
|
const e = this._isVertical ? t.height : t.width;
|
|
return window.innerWidth < e && window.innerWidth < window.innerHeight
|
|
}
|
|
_getWidget() {
|
|
return this._widget
|
|
}
|
|
_findWrapperForWidget(t) {
|
|
const e = this._content.getElementsByClassName("js-widget");
|
|
for (let i = 0; i < e.length; ++i) {
|
|
const o = e.item(i);
|
|
if (o.contains(t)) return o
|
|
}
|
|
return null
|
|
}
|
|
_onVerticalChanged(t, e) {}
|
|
_setHiddingTimeout(t) {
|
|
null !== this._hiddingTimeoutId && clearTimeout(this._hiddingTimeoutId), this
|
|
._hiddingTimeoutId = t
|
|
}
|
|
_preventWidgetTouchEndEvent() {
|
|
const t = e => {
|
|
e.preventDefault(), this._widget.removeEventListener("touchend", t)
|
|
};
|
|
this._widget.addEventListener("touchend", t)
|
|
}
|
|
_updateLayoutType() {
|
|
this._widget.classList.toggle("i-vertical", this._isVertical)
|
|
}
|
|
_updateAxisOption() {
|
|
0
|
|
}
|
|
_onWindowResize() {
|
|
if ("auto" === (this._options.layout || "auto")) {
|
|
const t = this._isVertical,
|
|
e = this._getCorrectedWidgetRect();
|
|
this._isVertical = this._determineCurrentLayoutVertical(e), this
|
|
._updateLayoutType(), t !== this._isVertical && (this._onVerticalChanged(
|
|
this._isVertical, t), this._updateAxisOption())
|
|
}
|
|
this.checkPosition(), this._resizeResponsive()
|
|
}
|
|
_resizeResponsive() {
|
|
if (null === this._responsiveResizeFunction) return;
|
|
let t = this._options.layout || "auto";
|
|
"auto" === t && (t = this._isVertical ? "vertical" : "horizontal");
|
|
const e = "vertical" === t ? this._widget.clientHeight : this._widget.clientWidth,
|
|
i = ("vertical" === t ? window.innerHeight : window.innerWidth) - e;
|
|
this._responsiveResizeFunction(e, i, t)
|
|
}
|
|
_correctPosition(t) {
|
|
const e = this._getCorrectedWidgetRect();
|
|
t.left + e.width > window.innerWidth && (t.left = Math.max(0, window.innerWidth - e
|
|
.width)), t.top + e.height > window.innerHeight && (t.top = Math.max(0,
|
|
window.innerHeight - e.height)), t.left = Math.max(0, t.left), t.top = Math
|
|
.max(0, t.top)
|
|
}
|
|
_setZIndex(t) {
|
|
this._widget.style.zIndex = String(t)
|
|
}
|
|
_zIndex() {
|
|
return Number(this._widget.style.zIndex)
|
|
}
|
|
_loadPosition() {
|
|
let t;
|
|
if ("device" === this._options.positionStorageType) {
|
|
const e = u.TVLocalStorage.getItem(this._options.positionSettingsKey);
|
|
t = null !== e ? JSON.parse(e) : this._options.defaultPosition
|
|
} else t = Object(s.getJSON)(this._options.positionSettingsKey, this._options
|
|
.defaultPosition);
|
|
this._widget.style.left = Math.round(t.left) + "px", this._widget.style.top = Math
|
|
.round(t.top) + "px", this._onWindowResize()
|
|
}
|
|
_savePosition() {
|
|
const t = this._widget.getBoundingClientRect();
|
|
if ("device" === this._options.positionStorageType) try {
|
|
u.TVLocalStorage.setItem(this._options.positionSettingsKey, JSON.stringify({
|
|
left: t.left,
|
|
top: t.top
|
|
}))
|
|
} catch (t) {} else Object(s.setJSON)(this._options.positionSettingsKey, {
|
|
left: t.left,
|
|
top: t.top
|
|
})
|
|
}
|
|
_init() {
|
|
this._loadPosition(), this._draggable = new m({
|
|
source: this._widget,
|
|
containment: "window",
|
|
handle: ".js-drag",
|
|
stop: this._savePosition.bind(this)
|
|
}), this._widget.addEventListener("pointerdown", this.raise.bind(this))
|
|
}
|
|
_initSortable() {
|
|
let t = -1;
|
|
lazyJqueryUI(this._content).sortable({
|
|
start: (e, i) => {
|
|
t = i.item.index()
|
|
},
|
|
stop: (e, i) => {
|
|
const o = i.item.index();
|
|
t !== o && (Object(v.trackEvent)("Floating Toolbar",
|
|
"User Sort"), this._reorderedDelegate.fire(t, o))
|
|
},
|
|
tolerance: "pointer",
|
|
distance: 5,
|
|
containment: !!this._options.dragOnlyInsideToolbar && "parent",
|
|
scroll: !1,
|
|
placeholder: "sortable-placeholder",
|
|
forcePlaceholderSize: !0
|
|
}), this._updateAxisOption()
|
|
}
|
|
_getCorrectedWidgetRect() {
|
|
const t = this._widget.getBoundingClientRect();
|
|
if (this._widget.classList.contains("i-closed")) {
|
|
const e = 1 / .925 - 1,
|
|
i = t.width * e,
|
|
o = t.height * e;
|
|
return {
|
|
bottom: t.bottom + o / 2,
|
|
height: t.height + o,
|
|
left: t.left - i / 2,
|
|
right: t.right + i / 2,
|
|
top: t.top - o / 2,
|
|
width: t.width + i
|
|
}
|
|
}
|
|
return t
|
|
}
|
|
static _updateAllZIndexes() {
|
|
C._toolbars.forEach((t, e) => {
|
|
t._setZIndex(C._startZIndex + e)
|
|
})
|
|
}
|
|
}
|
|
C._startZIndex = 20, C._toolbars = []
|
|
},
|
|
"0fuu": function(t, e) {
|
|
t.exports =
|
|
'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width="20" height="20" fill="none"><path stroke="currentColor" d="M13.5 6.5l-3-3-7 7 7.59 7.59a2 2 0 0 0 2.82 0l4.18-4.18a2 2 0 0 0 0-2.82L13.5 6.5zm0 0v-4a2 2 0 0 0-2-2v0a2 2 0 0 0-2 2v6"/><path fill="currentColor" d="M0 16.5C0 15 2.5 12 2.5 12S5 15 5 16.5 4 19 2.5 19 0 18 0 16.5z"/><circle fill="currentColor" cx="9.5" cy="9.5" r="1.5"/></svg>'
|
|
},
|
|
"2F1E": function(t, e) {
|
|
t.exports =
|
|
'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 4" width="18" height="4"><rect width="18" height="4" fill="currentColor" rx="2"/></svg>'
|
|
},
|
|
"4QAy": function(t, e, i) {},
|
|
"5hRh": function(t, e, i) {
|
|
"use strict";
|
|
i.d(e, "a", (function() {
|
|
return n
|
|
}));
|
|
var o = i("q1tI");
|
|
const n = t => {
|
|
const [e, i] = Object(o.useState)(t.value());
|
|
return Object(o.useEffect)(() => {
|
|
const e = t => {
|
|
i(t.value())
|
|
};
|
|
e(t);
|
|
const o = {};
|
|
return t.subscribe(o, e), () => t.unsubscribe(o, e)
|
|
}, [t]), e
|
|
}
|
|
},
|
|
ADFN: function(t, e, i) {},
|
|
EvtC: function(t, e, i) {
|
|
t.exports = {
|
|
button: "button-2YcRd2gv"
|
|
}
|
|
},
|
|
HWhk: function(t, e) {
|
|
t.exports =
|
|
'<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" fill="none"><path fill="currentColor" fillRule="evenodd" clipRule="evenodd" d="M7.5 13a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3zM5 14.5a2.5 2.5 0 1 1 5 0 2.5 2.5 0 0 1-5 0zm9.5-1.5a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3zM12 14.5a2.5 2.5 0 1 1 5 0 2.5 2.5 0 0 1-5 0zm9.5-1.5a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3zM19 14.5a2.5 2.5 0 1 1 5 0 2.5 2.5 0 0 1-5 0z"/></svg>'
|
|
},
|
|
IhRv: function(t, e, i) {
|
|
"use strict";
|
|
i.r(e),
|
|
i.d(e, "ColorPickerButton", (function() {
|
|
return b
|
|
}));
|
|
var o = i("q1tI"),
|
|
n = i.n(o),
|
|
s = i("TSYQ"),
|
|
r = i.n(s),
|
|
a = i("Eyy1"),
|
|
l = i("Iivm"),
|
|
c = i("eJTA"),
|
|
d = i("Tmoa"),
|
|
h = i("V3OP"),
|
|
u = i("htM8"),
|
|
p = i("wLjq"),
|
|
g = i("82wv"),
|
|
_ = i("5hRh"),
|
|
m = i("X1vi");
|
|
|
|
function b(t) {
|
|
const {
|
|
property: e,
|
|
icon: i,
|
|
model: s,
|
|
title: b,
|
|
className: v
|
|
} = t, w = Object(_.a)(e), f = Object(o.useRef)(null), y = w ? Object(c.parseRgba)(w)[3] :
|
|
void 0, C = "" === w, x = String(T()).toLowerCase() === p.c, [W, P, S] = Object(h.a)();
|
|
return n.a.createElement(g.a, {
|
|
className: v,
|
|
content: n.a.createElement("div", {
|
|
className: m.wrap
|
|
}, n.a.createElement(l.a, {
|
|
className: m.icon,
|
|
icon: i
|
|
}), n.a.createElement("div", {
|
|
className: m.colorBg
|
|
}, n.a.createElement("div", {
|
|
className: r()(m.color, C && m.multicolor, x && m.white),
|
|
style: C ? void 0 : {
|
|
backgroundColor: w
|
|
}
|
|
}))),
|
|
arrow: !1,
|
|
title: b,
|
|
ref: f,
|
|
"data-name": t["data-name"],
|
|
menuDataName: t["data-name"] + "-menu"
|
|
}, n.a.createElement(u.a, {
|
|
color: T(),
|
|
opacity: y,
|
|
onColorChange: function(t, e) {
|
|
const i = w ? Object(d.alphaToTransparency)(Object(c.parseRgba)(w)[
|
|
3]) : 0;
|
|
L(Object(d["generateColor"])(String(t), i, true)), e || Object(a
|
|
.ensureNotNull)(f.current).close()
|
|
},
|
|
onOpacityChange: function(t) {
|
|
L(Object(d.generateColor)(w, Object(d.alphaToTransparency)(t), !0))
|
|
},
|
|
selectOpacity: void 0 !== y,
|
|
selectCustom: !0,
|
|
customColors: W,
|
|
onAddColor: function(t) {
|
|
P(t), Object(a.ensureNotNull)(f.current).close()
|
|
},
|
|
onRemoveCustomColor: S
|
|
}));
|
|
|
|
function T() {
|
|
return w ? Object(c.rgbToHexString)(Object(c.parseRgb)(w)) : null
|
|
}
|
|
|
|
function L(t) {
|
|
s.setProperty(e, t, b)
|
|
}
|
|
}
|
|
},
|
|
Lnv9: function(t, e) {
|
|
t.exports =
|
|
'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 28 28" width="28" height="28" fill="currentColor"><rect width="18" height="2" rx="1" x="5" y="14"/><rect width="18" height="1" rx=".5" x="5" y="20"/><rect width="18" height="3" rx="1.5" x="5" y="7"/></svg>'
|
|
},
|
|
O5Oz: function(t, e) {
|
|
t.exports =
|
|
'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 1" width="18" height="1"><rect width="18" height="1" fill="currentColor" rx=".5"/></svg>'
|
|
},
|
|
PwLo: function(t, e, i) {},
|
|
SAe1: function(t, e, i) {
|
|
"use strict";
|
|
i.d(e, "a", (function() {
|
|
return r
|
|
}));
|
|
var o = i("q1tI"),
|
|
n = i("rzV7"),
|
|
s = i.n(n);
|
|
class r extends o.Component {
|
|
constructor(t) {
|
|
super(t), this._handleMediaChange = () => {
|
|
const t = l(this.state.queries, (t, e) => e.matches);
|
|
let e = !1;
|
|
for (const i in t)
|
|
if (t.hasOwnProperty(i) && this.state.matches[i] !== t[i]) {
|
|
e = !0;
|
|
break
|
|
} e && this.setState({
|
|
matches: t
|
|
})
|
|
};
|
|
const {
|
|
rules: e
|
|
} = this.props;
|
|
this.state = a(e)
|
|
}
|
|
shouldComponentUpdate(t, e) {
|
|
return !s()(t, this.props) || (!s()(e.rules, this.state.rules) || !s()(e
|
|
.matches, this.state.matches))
|
|
}
|
|
componentDidMount() {
|
|
this._migrate(null, this.state.queries)
|
|
}
|
|
componentDidUpdate(t, e) {
|
|
s()(t.rules, this.props.rules) || this._migrate(e.queries, this.state.queries)
|
|
}
|
|
componentWillUnmount() {
|
|
this._migrate(this.state.queries, null)
|
|
}
|
|
render() {
|
|
return this.props.children(this.state.matches)
|
|
}
|
|
static getDerivedStateFromProps(t, e) {
|
|
if (s()(t.rules, e.rules)) return null;
|
|
const {
|
|
rules: i
|
|
} = t;
|
|
return a(i)
|
|
}
|
|
_migrate(t, e) {
|
|
null !== t && l(t, (t, e) => {
|
|
e.removeListener(this._handleMediaChange)
|
|
}), null !== e && l(e, (t, e) => {
|
|
e.addListener(this._handleMediaChange)
|
|
})
|
|
}
|
|
}
|
|
|
|
function a(t) {
|
|
const e = l(t, (t, e) => window.matchMedia(e));
|
|
return {
|
|
queries: e,
|
|
matches: l(e, (t, e) => e.matches),
|
|
rules: {
|
|
...t
|
|
}
|
|
}
|
|
}
|
|
|
|
function l(t, e) {
|
|
const i = {};
|
|
for (const o in t) t.hasOwnProperty(o) && (i[o] = e(o, t[o]));
|
|
return i
|
|
}
|
|
},
|
|
UXdH: function(t, e) {
|
|
t.exports =
|
|
'<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28"><path fill="currentColor" d="M4 13h5v1H4v-1zM12 13h5v1h-5v-1zM20 13h5v1h-5v-1z"/></svg>'
|
|
},
|
|
Ve4Q: function(t, e, i) {
|
|
"use strict";
|
|
i.r(e);
|
|
var o = i("q1tI"),
|
|
n = i.n(o),
|
|
s = i("i8i4"),
|
|
r = i.n(s),
|
|
a = i("YFKU"),
|
|
l = i("Kxc7"),
|
|
c = i("hY0g"),
|
|
d = i.n(c),
|
|
h = i("ogJP"),
|
|
u = i("CW80"),
|
|
p = i("mMWL"),
|
|
g = i("j3hX"),
|
|
_ = i("Eyy1"),
|
|
m = i("tc+8"),
|
|
b = i.n(m);
|
|
class v extends b.a {
|
|
constructor(t, e, i) {
|
|
super(), this._listenersMappers = [], this._isProcess = !1, this._baseProperty =
|
|
t, this._undoModel = e, this._undoText = i
|
|
}
|
|
destroy() {
|
|
this._baseProperty.destroy()
|
|
}
|
|
value() {
|
|
return this._baseProperty.value()
|
|
}
|
|
setValue(t) {
|
|
this._isProcess = !0, this._baseProperty.setValue(t, void 0, {
|
|
applyValue: (t, e) => this._undoModel.setProperty(t, e, this
|
|
._undoText)
|
|
}), this._isProcess = !1, this._listenersMappers.forEach(t => {
|
|
t.method.call(t.obj, this)
|
|
})
|
|
}
|
|
subscribe(t, e) {
|
|
const i = i => {
|
|
this._isProcess || e.call(t, this)
|
|
},
|
|
o = {
|
|
obj: t,
|
|
method: e,
|
|
callback: i
|
|
};
|
|
this._listenersMappers.push(o), this._baseProperty.subscribe(t, i)
|
|
}
|
|
unsubscribe(t, e) {
|
|
var i;
|
|
const o = Object(_.ensureDefined)(null === (i = this._listenersMappers.find(i =>
|
|
i.obj === t && i.method === e)) || void 0 === i ? void 0 : i
|
|
.callback);
|
|
this._baseProperty.unsubscribe(t, o)
|
|
}
|
|
unsubscribeAll(t) {
|
|
this._baseProperty.unsubscribeAll(t)
|
|
}
|
|
}
|
|
var w = i("turx"),
|
|
f = i("SAe1"),
|
|
y = i("0ZwQ"),
|
|
C = i("uhCe");
|
|
const x = y.a + "__button";
|
|
|
|
function W(t) {
|
|
const {
|
|
templateButton: e,
|
|
propertyButtons: i,
|
|
commonButtons: o,
|
|
isDrawingFinished: s,
|
|
activeChartWidget: r
|
|
} = t, a = r.hasModel() && r.model().selection().dataSources();
|
|
return a && a.length ? n.a.createElement(f.a, {
|
|
rules: {
|
|
isSmallWidth: C.a.TabletSmall,
|
|
isSmallHeight: "screen and (max-height: 428px)"
|
|
}
|
|
}, ({
|
|
isSmallWidth: t,
|
|
isSmallHeight: e
|
|
}) => n.a.createElement(n.a.Fragment, null, l(), s && n.a.createElement(n.a
|
|
.Fragment, null, Boolean(i.length) && i.map((i, o) => n.a.createElement(i
|
|
.component, {
|
|
...i.props,
|
|
key: `${i.props.title}_${o}`,
|
|
className: x,
|
|
isSmallScreen: t || e
|
|
})), Boolean(o.length) && o.map((i, o) => {
|
|
const s = t || e;
|
|
return s ? i.showForSmallScreen ? n.a.createElement(i.component, {
|
|
...i.props,
|
|
isSmallScreen: s,
|
|
key: `${i.props.title}_${o}`,
|
|
className: x
|
|
}) : null : n.a.createElement(i.component, {
|
|
...i.props,
|
|
key: `${i.props.title}_${o}`,
|
|
className: x
|
|
})
|
|
})))) : l();
|
|
|
|
function l() {
|
|
return null === e ? null : n.a.createElement(e.component, {
|
|
...e.props,
|
|
isDrawingFinished: s,
|
|
className: x
|
|
})
|
|
}
|
|
}
|
|
var P = i("JWMC"),
|
|
S = i("p0W+"),
|
|
T = i("Xxuz");
|
|
|
|
function L(t) {
|
|
const {
|
|
title: e,
|
|
activeChartWidget: i,
|
|
className: o
|
|
} = t;
|
|
return n.a.createElement(S.a, {
|
|
className: o,
|
|
icon: T,
|
|
title: e,
|
|
onClick: function() {
|
|
Object(P.trackEvent)("GUI", "Context action on drawings", "Settings"), i
|
|
.showChartPropertiesForSource(i.model().selection()
|
|
.lineDataSources()[0], void 0, {
|
|
onWidget: i.onWidget()
|
|
})
|
|
},
|
|
"data-name": "settings"
|
|
})
|
|
}
|
|
var E = i("5hRh"),
|
|
B = i("TSYQ"),
|
|
k = i("4rU7"),
|
|
O = i("ucyy");
|
|
|
|
function V(t) {
|
|
const {
|
|
className: e,
|
|
...i
|
|
} = t;
|
|
return n.a.createElement(k.a, {
|
|
className: B(e, O.button),
|
|
tooltipPosition: "horizontal",
|
|
...i
|
|
})
|
|
}
|
|
var I = i("43BO"),
|
|
M = i("Uh5y");
|
|
|
|
function R(t) {
|
|
const {
|
|
activeChartWidget: e,
|
|
className: i
|
|
} = t, o = e.model().selection().lineDataSources()[0].properties().frozen, s = Object(E.a)(
|
|
o), r = s ? {
|
|
title: Object(a.t)("Unlock"),
|
|
icon: I
|
|
} : {
|
|
title: Object(a.t)("Lock"),
|
|
icon: M
|
|
};
|
|
return n.a.createElement(V, {
|
|
className: i,
|
|
isActive: Boolean(s),
|
|
onClick: function() {
|
|
Object(P.trackEvent)("GUI", "Context action on drawings", "Lock"), e
|
|
.toggleLockSelectedObject()
|
|
},
|
|
"data-name": Boolean(s) ? "unlock" : "lock",
|
|
...r
|
|
})
|
|
}
|
|
var N = i("aVjL");
|
|
|
|
function j(t) {
|
|
const {
|
|
title: e,
|
|
activeChartWidget: i,
|
|
className: o
|
|
} = t;
|
|
return n.a.createElement(S.a, {
|
|
className: o,
|
|
icon: N,
|
|
title: e,
|
|
"data-name": "remove",
|
|
onClick: function() {
|
|
Object(P.trackEvent)("GUI", "Context action on drawings", "Remove"), i
|
|
.removeSelectedSources()
|
|
}
|
|
})
|
|
}
|
|
var F = i("Iivm"),
|
|
A = i("8+VR"),
|
|
D = i("/3z9"),
|
|
z = i("lxNp"),
|
|
H = i("82wv"),
|
|
U = i("IAAr"),
|
|
G = i("7KDR"),
|
|
Q = i("ycI/"),
|
|
q = i("5VQP"),
|
|
K = i("HZKX"),
|
|
Y = i("HWhk"),
|
|
Z = i("9dnG"),
|
|
$ = i("dmHa");
|
|
|
|
function X(t) {
|
|
const {
|
|
title: e,
|
|
activeChartWidget: s,
|
|
isSmallScreen: r,
|
|
className: l
|
|
} = t, c = s.model(), d = c.selection().lineDataSources(), [h, u] = Object(o.useState)([]),
|
|
p = Object(o.useRef)(null), g = Object(o.useMemo)(() => new K.ActionsProvider(s), [s]);
|
|
return n.a.createElement(n.a.Fragment, null, n.a.createElement(Q.a, {
|
|
keyCode: 27,
|
|
eventType: "keyup",
|
|
handler: function() {
|
|
Object(_.ensureNotNull)(p.current).close()
|
|
}
|
|
}), n.a.createElement(H.a, {
|
|
className: l,
|
|
ref: p,
|
|
arrow: !1,
|
|
onOpen: r ? void 0 : function() {
|
|
const t = [new G.Action({
|
|
label: Object(a.t)("Visual order"),
|
|
icon: Z,
|
|
subItems: m(),
|
|
name: "visual-order"
|
|
})],
|
|
e = function() {
|
|
const t = [],
|
|
e = D.isMacKeyboard ? " +" : "",
|
|
o = d.filter(t => t.cloneable());
|
|
o.length > 0 && t.push(new G.Action({
|
|
name: "clone",
|
|
icon: i("+KIV"),
|
|
shortcutHint: D.humanReadableModifiers(z
|
|
.Modifiers.Mod) + e + " Drag",
|
|
label: Object(a.t)("Clone"),
|
|
onExecute: () => {
|
|
c.cloneLineTools(o, !1), Object(P
|
|
.trackEvent)("GUI",
|
|
"Context action on drawings",
|
|
"Clone")
|
|
}
|
|
}));
|
|
const n = d.filter(t => t.copiable());
|
|
if (n.length > 0) {
|
|
const i = {
|
|
name: "copy",
|
|
label: Object(a.t)("Copy"),
|
|
shortcutHint: D.humanReadableModifiers(z
|
|
.Modifiers.Mod) + e + " C",
|
|
onExecute: () => {
|
|
s.chartWidgetCollection().clipboard
|
|
.uiRequestCopy(n)
|
|
}
|
|
};
|
|
t.push(new G.Action(i, "Copy"))
|
|
}
|
|
if (! function() {
|
|
if (!(null == s ? void 0 : s.isMultipleLayout()))
|
|
return !1;
|
|
return d.some(t => t.isSynchronizable())
|
|
}()) return t;
|
|
d.filter(t => !!t.linkKey().value()).length ? t.push(new G
|
|
.Action({
|
|
name: "stop-sync",
|
|
label: Object(a.t)("Stop syncing"),
|
|
onExecute: () => {
|
|
c.unlinkLines && c.unlinkLines(d)
|
|
}
|
|
})) : t.push(new G.Action({
|
|
name: "sync",
|
|
label: Object(a.t)("Sync to all charts"),
|
|
onExecute: () => {
|
|
c.copyToOtherCharts(d)
|
|
}
|
|
}));
|
|
return t
|
|
}();
|
|
e.length && t.push(new G.Separator, ...e);
|
|
t.push(new G.Separator, new G.Action({
|
|
label: Object(a.t)("Hide"),
|
|
icon: $,
|
|
onExecute: () => {
|
|
s.hideSelectedObject()
|
|
},
|
|
name: "hide"
|
|
})), u(J(t))
|
|
},
|
|
onClick: r ? function(t) {
|
|
g.contextMenuActionsForSources(d).then(e => {
|
|
window.matchMedia(C.a.TabletSmall).matches ? q
|
|
.ContextMenuManager.createMenu(J(e), {
|
|
mode: "drawer",
|
|
"data-name": "more-menu"
|
|
}).then(e => e.show(t)) : u(J(e))
|
|
})
|
|
} : void 0,
|
|
title: e,
|
|
content: n.a.createElement(F.a, {
|
|
icon: Y
|
|
}),
|
|
"data-name": "more",
|
|
menuDataName: "more-menu"
|
|
}, n.a.createElement(U.a, {
|
|
parentIsOpened: !0,
|
|
items: h
|
|
})));
|
|
|
|
function m() {
|
|
const t = [],
|
|
e = c.availableZOrderOperations(d),
|
|
i = new G.Action({
|
|
name: "bring-to-front",
|
|
label: Object(a.t)("Bring to Front"),
|
|
onExecute: () => {
|
|
c.bringToFront(d)
|
|
},
|
|
disabled: 1 === d.length && !e.bringToFrontEnabled
|
|
}),
|
|
o = new G.Action({
|
|
name: "send-to-back",
|
|
label: Object(a.t)("Send to Back"),
|
|
onExecute: () => {
|
|
c.sendToBack(d)
|
|
},
|
|
disabled: 1 === d.length && !e.sendToBackEnabled
|
|
}),
|
|
n = new G.Action({
|
|
name: "bring-forward",
|
|
label: Object(a.t)("Bring Forward"),
|
|
onExecute: () => {
|
|
c.bringForward(d)
|
|
},
|
|
disabled: 1 === d.length && !e.bringForwardEnabled
|
|
}),
|
|
s = new G.Action({
|
|
name: "send-backward",
|
|
label: Object(a.t)("Send Backward"),
|
|
onExecute: () => {
|
|
c.sendBackward(d)
|
|
},
|
|
disabled: 1 === d.length && !e.sendBackwardEnabled
|
|
});
|
|
return t.push(i, o, n, s), t
|
|
}
|
|
}
|
|
|
|
function J(t) {
|
|
return A.touch && !window.matchMedia("(pointer:fine)").matches ? t.filter(t => "Copy" !== t
|
|
.id) : t
|
|
}
|
|
var tt = i("972a"),
|
|
et = i("bQEj"),
|
|
it = i("UXdH"),
|
|
ot = i("ZSM+");
|
|
|
|
function nt(t) {
|
|
const {
|
|
property: e,
|
|
model: i,
|
|
title: s,
|
|
className: r
|
|
} = t, l = Object(E.a)(e), c = Object(o.useMemo)(() => [new G.Action({
|
|
icon: et,
|
|
label: Object(a.t)("Line"),
|
|
active: tt.b.Solid === l,
|
|
onExecute: () => i.setProperty(e, tt.b.Solid, s)
|
|
}), new G.Action({
|
|
icon: it,
|
|
label: Object(a.t)("Dashed line"),
|
|
active: tt.b.Dashed === l,
|
|
onExecute: () => i.setProperty(e, tt.b.Dashed, s)
|
|
}), new G.Action({
|
|
icon: ot,
|
|
label: Object(a.t)("Dotted line"),
|
|
active: tt.b.Dotted === l,
|
|
onExecute: () => i.setProperty(e, tt.b.Dotted, s)
|
|
})], [i, e, l]);
|
|
return n.a.createElement(H.a, {
|
|
className: r,
|
|
arrow: !1,
|
|
content: n.a.createElement(F.a, {
|
|
icon: st(l)
|
|
}),
|
|
title: s,
|
|
"data-name": t["data-name"],
|
|
menuDataName: t["data-name"] + "-menu"
|
|
}, n.a.createElement(U.a, {
|
|
items: c
|
|
}))
|
|
}
|
|
|
|
function st(t) {
|
|
switch (t) {
|
|
case tt.b.Solid:
|
|
return et;
|
|
case tt.b.Dashed:
|
|
return it;
|
|
case tt.b.Dotted:
|
|
return ot;
|
|
default:
|
|
return ""
|
|
}
|
|
}
|
|
const rt = [10, 11, 12, 14, 16, 20, 24, 28, 32, 40];
|
|
|
|
function at(t) {
|
|
const {
|
|
property: e,
|
|
model: i,
|
|
title: o,
|
|
className: s
|
|
} = t, r = Object(E.a)(e), a = rt.map(t => new G.Action({
|
|
label: t.toString(),
|
|
onExecute: () => i.setProperty(e, t, o),
|
|
active: t === r
|
|
}));
|
|
return n.a.createElement(H.a, {
|
|
arrow: !1,
|
|
content: r,
|
|
className: s,
|
|
title: o,
|
|
"data-name": t["data-name"],
|
|
menuDataName: t["data-name"] + "-menu"
|
|
}, n.a.createElement(U.a, {
|
|
items: a
|
|
}))
|
|
}
|
|
var lt = i("aIyQ"),
|
|
ct = i.n(lt);
|
|
i("m/4m"), i("ADFN");
|
|
class dt extends y.b {
|
|
constructor(t) {
|
|
super(dt._prepareOptions(t)), this._onWidgetStateChangedDelegate = new ct.a,
|
|
this._statedWidgets = [], this._currentPopup = null, this
|
|
._onWindowClickedListener = this._onWindowClicked.bind(this)
|
|
}
|
|
show() {
|
|
super.show(), document.addEventListener("mousedown", this
|
|
._onWindowClickedListener)
|
|
}
|
|
hide(t) {
|
|
super.hide(t), document.removeEventListener("mousedown", this
|
|
._onWindowClickedListener)
|
|
}
|
|
destroy() {
|
|
this._closePopup(), super.destroy()
|
|
}
|
|
addGroupedWidget(t, e = {}) {
|
|
Object(_.assert)(t.states.length > 0 && -1 !== dt._getStateIndexById(t, t
|
|
.currentStateId),
|
|
`Argument is invalid (count: ${t.states.length}, state: ${t.currentStateId})`
|
|
);
|
|
const i = document.createElement("div");
|
|
i.className =
|
|
"tv-grouped-floating-toolbar__widget-wrapper apply-common-tooltip", t
|
|
.widgetAddClass && i.classList.add(t.widgetAddClass), i.setAttribute(
|
|
"title", t.tooltip);
|
|
const o = {
|
|
isEnabled: !0,
|
|
statedWidget: t,
|
|
toolbarWidget: i
|
|
},
|
|
n = this._onWidgetClicked.bind(this, o);
|
|
o.clickListener = n, i.addEventListener("click", n), this._updateWidgetPreview(
|
|
o), this.addWidget(i, e), this._statedWidgets.push(o)
|
|
}
|
|
findGroupedWidget(t) {
|
|
const e = this._statedWidgets.length;
|
|
for (let i = 0; i < e; ++i) {
|
|
if (this._statedWidgets[i].statedWidget.id === t) return i
|
|
}
|
|
return -1
|
|
}
|
|
removeGroupedWidget(t) {
|
|
const e = this._statedWidgets.length;
|
|
for (let i = 0; i < e; ++i) {
|
|
const e = this._statedWidgets[i];
|
|
if (e.statedWidget.id === t) return this._isPopupCreatedForWidget(t) && this
|
|
._closePopup(), void 0 !== e.clickListener && e.toolbarWidget
|
|
.removeEventListener("click", e.clickListener), this.removeWidget(e
|
|
.toolbarWidget), this._statedWidgets.splice(i, 1), void this
|
|
._updatePopupPosition()
|
|
}
|
|
Object(_.assert)(!1, `Unknown groupId(${t})`)
|
|
}
|
|
updateGroupedWidget(t, e) {
|
|
this._closePopup();
|
|
const i = this._ensuredGetWidgetDataForId(t);
|
|
i.statedWidget.currentStateId = e.currentStateId, i.statedWidget.states = e
|
|
.states, this._updateWidgetPreview(i)
|
|
}
|
|
setGroupedWidgetEnabled(t, e) {
|
|
const i = this._ensuredGetWidgetDataForId(t);
|
|
i.isEnabled = e, i.toolbarWidget.classList.toggle("i-disabled", !e)
|
|
}
|
|
setGroupedWidgetState(t, e) {
|
|
const i = this._ensuredGetWidgetDataForId(t);
|
|
Object(_.assert)(-1 !== dt._getStateIndexById(i.statedWidget, e),
|
|
`Unknown stateId (${e})`), i.statedWidget.currentStateId = e, this
|
|
._updateSubWidgetsState(i.statedWidget), this._updateWidgetPreview(i)
|
|
}
|
|
onWidgetStateChanged() {
|
|
return this._onWidgetStateChangedDelegate
|
|
}
|
|
_onVerticalChanged(t, e) {
|
|
this._updatePopupPosition()
|
|
}
|
|
_ensuredGetWidgetDataForId(t) {
|
|
for (const e of this._statedWidgets)
|
|
if (e.statedWidget.id === t) return e;
|
|
throw new Error(`Unknown groupId(${t})`)
|
|
}
|
|
_onWidgetClicked(t, e) {
|
|
const i = this._currentPopup && this._isPopupCreatedForWidget(t.statedWidget
|
|
.id);
|
|
this._closePopup(), !i && t.isEnabled && this._createPopup(t)
|
|
}
|
|
_createPopup(t) {
|
|
const e = {
|
|
createdFor: t.toolbarWidget,
|
|
element: document.createElement("div"),
|
|
stateWidgetId: t.statedWidget.id,
|
|
widgets: []
|
|
};
|
|
e.element.className += "tv-grouped-floating-toolbar__popup js-popup";
|
|
const i = t.statedWidget.states.length;
|
|
t.statedWidget.states.forEach((o, n) => {
|
|
const s = this._createSubWidget(t, o),
|
|
r = this._onSubWidgetClicked.bind(this, t, o.id);
|
|
s.addEventListener("click", r), e.widgets.push({
|
|
clickListener: r,
|
|
stateWidget: o,
|
|
widget: s
|
|
}), s.classList.add(
|
|
"tv-grouped-floating-toolbar__sub-widget--slide-right-" + n
|
|
), s.classList.add(
|
|
"tv-grouped-floating-toolbar__sub-widget--slide-left-" + (
|
|
i - n + 1)), o.readonly || e.element.appendChild(s)
|
|
}), this._currentPopup = e, this._updateSubWidgetsState(t.statedWidget), t
|
|
.toolbarWidget.classList.add("i-dropped"), this._getWidget().appendChild(
|
|
this._currentPopup.element), Promise.resolve().then(() => {
|
|
this._currentPopup && this._currentPopup.element.classList.add(
|
|
"i-opened")
|
|
}), this._updatePopupPosition()
|
|
}
|
|
_closePopup() {
|
|
if (this._statedWidgets.forEach(t => {
|
|
t.toolbarWidget.classList.remove("i-dropped")
|
|
}), !this._currentPopup) return;
|
|
const t = this._currentPopup.widgets,
|
|
e = this._currentPopup.element;
|
|
this._currentPopup = null, t.forEach(t => {
|
|
t.widget.removeEventListener("click", t.clickListener)
|
|
}), e.classList.remove("i-opened"), e.addEventListener("transitionend",
|
|
t => {
|
|
t.target === e && this._getWidget().removeChild(e)
|
|
})
|
|
}
|
|
_updateWidgetPreview(t) {
|
|
const e = dt._getStateIndexById(t.statedWidget, t.statedWidget.currentStateId);
|
|
Object(_.assert)(-1 !== e, "Unknown state id: " + t.statedWidget
|
|
.currentStateId);
|
|
const i = t.statedWidget.states[e].widget.cloneNode(!0);
|
|
t.toolbarWidget.firstChild ? t.toolbarWidget.replaceChild(i, t.toolbarWidget
|
|
.firstChild) : (t.toolbarWidget.appendChild(i), t.toolbarWidget
|
|
.appendChild(dt._createCaret()))
|
|
}
|
|
_updateSubWidgetsState(t) {
|
|
this._currentPopup && this._isPopupCreatedForWidget(t.id) && this._currentPopup
|
|
.widgets.forEach(e => {
|
|
e.widget.classList.toggle(dt._activeSubWidgetClass, e.stateWidget
|
|
.id === t.currentStateId)
|
|
})
|
|
}
|
|
_updatePopupPosition() {
|
|
if (!this._currentPopup) return;
|
|
const t = this._currentPopup.createdFor,
|
|
e = this._getWidget().getBoundingClientRect(),
|
|
i = this._findWrapperForWidget(t);
|
|
if (!i || !this._currentPopup) throw new Error(
|
|
"Toolbar has no wrapper for preview's widget or there is no popup");
|
|
const o = i.getBoundingClientRect(),
|
|
n = this._currentPopup.element.getBoundingClientRect(),
|
|
s = this._currentPopup.element;
|
|
if (this.isVertical()) s.classList.remove(
|
|
"tv-grouped-floating-toolbar__popup--at-top"), s.style.top = o.top - e
|
|
.top + 1 + "px", s.style.left = "", e.left > window.innerWidth - e.right ? s
|
|
.classList.add("tv-grouped-floating-toolbar__popup--at-left") : s.classList
|
|
.remove("tv-grouped-floating-toolbar__popup--at-left");
|
|
else {
|
|
s.classList.remove("tv-grouped-floating-toolbar__popup--at-left");
|
|
let t = 0;
|
|
o.left + n.width > window.innerWidth ? e.left + n.width > window
|
|
.innerWidth && (t = e.width - n.width) : t = o.left - e.left + 1, s
|
|
.style.left = t + "px", e.bottom + n.height > window.innerHeight ? s
|
|
.classList.add("tv-grouped-floating-toolbar__popup--at-top") : (s
|
|
.classList.remove("tv-grouped-floating-toolbar__popup--at-top"), s
|
|
.style.top = "")
|
|
}
|
|
}
|
|
_isPopupCreatedForWidget(t) {
|
|
return Boolean(this._currentPopup && this._currentPopup.stateWidgetId === t)
|
|
}
|
|
_createSubWidget(t, e) {
|
|
const i = document.createElement("div");
|
|
return i.className += "tv-grouped-floating-toolbar__sub-widget", t.statedWidget
|
|
.stateWidgetAddClass && i.classList.add(t.statedWidget.stateWidgetAddClass),
|
|
i.appendChild(e.widget), i
|
|
}
|
|
_onSubWidgetClicked(t, e) {
|
|
this._closePopup(), t.statedWidget.currentStateId !== e && (this
|
|
.setGroupedWidgetState(t.statedWidget.id, e), this
|
|
._onWidgetStateChangedDelegate.fire(t.statedWidget.id, e))
|
|
}
|
|
_onWindowClicked(t) {
|
|
if (this.isVisible() && this._currentPopup && !dt._isEventInElement(t, this
|
|
._currentPopup.element)) {
|
|
for (let e = 0; e < this._statedWidgets.length; ++e)
|
|
if (dt._isEventInElement(t, this._statedWidgets[e].toolbarWidget))
|
|
return;
|
|
this._closePopup()
|
|
}
|
|
}
|
|
static _getStateIndexById(t, e) {
|
|
for (let i = 0; i < t.states.length; ++i)
|
|
if (t.states[i].id === e) return i;
|
|
return -1
|
|
}
|
|
static _createCaret() {
|
|
const t = document.createElement("div");
|
|
return t.className =
|
|
"tv-caret tv-caret--small tv-caret--colored tv-grouped-floating-toolbar__caret",
|
|
t
|
|
}
|
|
static _prepareOptions(t) {
|
|
return t.addClass ? t.addClass += " tv-grouped-floating-toolbar" : t.addClass =
|
|
" tv-grouped-floating-toolbar", t
|
|
}
|
|
static _isEventInElement(t, e) {
|
|
return t.target === e || e.contains(t.target)
|
|
}
|
|
}
|
|
dt._activeSubWidgetClass = "tv-grouped-floating-toolbar__sub-widget--current";
|
|
var ht = i("yMne"),
|
|
ut = i("GxN8");
|
|
i.d(e, "LineToolPropertiesWidgetBase", (function() {
|
|
return pt
|
|
}));
|
|
class pt {
|
|
constructor(t) {
|
|
this._isDrawingFinished = new d.a(!0), this._currentTool = null, this
|
|
._updateVisibilityTimeout = null, this._lineWidthsProperty = null, this
|
|
._lineColorsProperty = null,
|
|
this._currentProperties = null, this._container = null, this
|
|
._toolbarRendered = !1, this._templatesButton = null, this
|
|
._propertyButtons = [], this._commonButtons = [], this._handleSourceEdit = t => {
|
|
p.isDirectionalMovementActive.value() || (t ? this._floatingToolbar.hide(!
|
|
0) : this._toolbarRendered && this._floatingToolbar.show())
|
|
}, this._chartWidgetCollection = t, this._floatingToolbar = new dt({
|
|
defaultPosition: {
|
|
top: ht.b + 15,
|
|
left: window.innerWidth / 2
|
|
},
|
|
positionSettingsKey: "properties_toolbar.position",
|
|
positionStorageType: "device",
|
|
layout: "horizontal",
|
|
"data-name": "drawing-toolbar"
|
|
}), this._container = this._floatingToolbar.getReactWidgetContainer(), p
|
|
.isToolMovingNow.subscribe(this._handleSourceEdit), p.isToolEditingNow
|
|
.subscribe(this._handleSourceEdit)
|
|
}
|
|
activeChartWidget() {
|
|
return this._chartWidgetCollection.activeChartWidget.value()
|
|
}
|
|
selectedSources() {
|
|
return this._chartWidgetCollection.selectedSources.value()
|
|
}
|
|
hide() {
|
|
this._updateVisibilityTimeout && clearTimeout(this._updateVisibilityTimeout), this
|
|
._updateVisibilityTimeout = setTimeout(() => {
|
|
Object(u.unsetNewToolProperties)(), this._floatingToolbar.hide(!0), this
|
|
._isToolbarRendered() && this._unmountToolbar(), this
|
|
._clearProperties(), this._clearCommonButtons()
|
|
}, 0)
|
|
}
|
|
_clearProperties() {
|
|
this._clearPropertyButtons(), this._lineWidthsProperty && (this._lineWidthsProperty
|
|
.destroy(), this._lineWidthsProperty = null), this._lineColorsProperty && (
|
|
this._lineColorsProperty.destroy(), this._lineColorsProperty = null), this
|
|
._currentProperties && (this._currentProperties = null)
|
|
}
|
|
_show() {
|
|
this._updateVisibilityTimeout && clearTimeout(this._updateVisibilityTimeout), this
|
|
._updateVisibilityTimeout = setTimeout(() => {
|
|
this._renderToolbar(), this._floatingToolbar.show(), this
|
|
._floatingToolbar.checkPosition()
|
|
}, 0)
|
|
}
|
|
_addPropertyButton(t) {
|
|
this._propertyButtons.push(t), this._renderToolbar()
|
|
}
|
|
_addCommonButton(t) {
|
|
this._commonButtons.push(t), this._renderToolbar()
|
|
}
|
|
_addTemplatesButton(t) {
|
|
this._templatesButton = t
|
|
}
|
|
_renderToolbar() {
|
|
null !== this._container && this.activeChartWidget() && this.activeChartWidget()
|
|
.hasModel() && (r.a.render(n.a.createElement(W, {
|
|
templateButton: this._templatesButton,
|
|
propertyButtons: this._propertyButtons,
|
|
commonButtons: this._commonButtons,
|
|
isDrawingFinished: this._isDrawingFinished.value(),
|
|
activeChartWidget: this.activeChartWidget()
|
|
}), this._container), this._toolbarRendered = !0)
|
|
}
|
|
_unmountToolbar() {
|
|
null !== this._container && (r.a.unmountComponentAtNode(this._container), this
|
|
._toolbarRendered = !1)
|
|
}
|
|
_clearTemplatesButton() {
|
|
this._templatesButton = null
|
|
}
|
|
_clearPropertyButtons() {
|
|
this._propertyButtons = []
|
|
}
|
|
_clearCommonButtons() {
|
|
this._commonButtons = []
|
|
}
|
|
_isToolbarRendered() {
|
|
return this._toolbarRendered
|
|
}
|
|
_createSettingsButton() {
|
|
if (this.selectedSources().length > 1) return;
|
|
const t = {
|
|
component: L,
|
|
props: {
|
|
title: Object(a.t)("Settings"),
|
|
activeChartWidget: this.activeChartWidget()
|
|
}
|
|
};
|
|
this._addCommonButton(t)
|
|
}
|
|
_createLockButton() {
|
|
const t = {
|
|
component: R,
|
|
props: {
|
|
title: "Lock",
|
|
activeChartWidget: this.activeChartWidget()
|
|
}
|
|
};
|
|
this._addCommonButton(t)
|
|
}
|
|
_createRemoveButton() {
|
|
const t = {
|
|
component: j,
|
|
props: {
|
|
title: Object(a.t)("Remove"),
|
|
activeChartWidget: this.activeChartWidget()
|
|
},
|
|
showForSmallScreen: !0
|
|
};
|
|
this._addCommonButton(t)
|
|
}
|
|
_createDotsButton() {
|
|
this._addCommonButton({
|
|
component: X,
|
|
props: {
|
|
title: Object(a.t)("More"),
|
|
activeChartWidget: this.activeChartWidget()
|
|
},
|
|
showForSmallScreen: !0
|
|
})
|
|
}
|
|
_createAlertButton() {}
|
|
_createSourceActions() {
|
|
this._createLockButton()
|
|
}
|
|
_createLineStyleButton(t) {
|
|
const e = this.selectedSources();
|
|
if (0 === e.length) return !1;
|
|
const i = e[0];
|
|
if (!Object(ut.a)(i)) return !1;
|
|
const o = {
|
|
component: nt,
|
|
props: {
|
|
property: i.properties().linestyle || t,
|
|
title: Object(a.t)("Style"),
|
|
model: this.activeChartWidget().model(),
|
|
"data-name": "style"
|
|
}
|
|
};
|
|
return this._addPropertyButton(o), !0
|
|
}
|
|
_createFontSizeButton(t) {
|
|
const e = this.selectedSources();
|
|
if (0 === e.length) return !1;
|
|
const i = e[0];
|
|
if (!Object(ut.a)(i)) return !1;
|
|
const o = {
|
|
component: at,
|
|
props: {
|
|
property: i.properties().fontsize || t,
|
|
title: Object(a.t)("Font Size"),
|
|
model: this.activeChartWidget().model(),
|
|
"data-name": "font-size"
|
|
}
|
|
};
|
|
return this._addPropertyButton(o), !0
|
|
}
|
|
_createCommonButtons() {
|
|
this._commonButtons.length && this._clearCommonButtons(), l.enabled(
|
|
"property_pages") && this._createSettingsButton(), this
|
|
._createSourceActions(), this._createRemoveButton(), this._createDotsButton()
|
|
}
|
|
_prepareProperties(t) {
|
|
const e = this.selectedSources().filter(e => Object(u.isLineTool)(e) && e
|
|
.properties()[t]);
|
|
if (!(e.filter(e => e.properties()[t].visible()).length < 1)) return e.map(e => e
|
|
.properties()[t]).filter(h.notNull)
|
|
}
|
|
_createProperty(t, e, i, o) {
|
|
if (e) {
|
|
const t = this._prepareProperties(i);
|
|
if (!t) return;
|
|
const e = this.activeChartWidget().model();
|
|
return this._isWidthProperty(t[0]) ? new v(new g.MultipleLineWidthsProperty(t),
|
|
e, o) : new w.b(new g.MultipleLineColorsProperty(t), e, o)
|
|
}
|
|
if (t && t.visible()) return this._isWidthProperty(t) ? new g
|
|
.MultipleLineWidthsProperty([t]) : new w.a(new g.MultipleLineColorsProperty(
|
|
[t]))
|
|
}
|
|
_shouldShowBackgroundProperty(t, e) {
|
|
return !e || !e.fillBackground || !!e.fillBackground.value()
|
|
}
|
|
_isDrawingToolExcludingTweet(t) {
|
|
return Boolean(null == t ? void 0 : t.toLowerCase().includes("linetool")) &&
|
|
"LineToolTweet" !== t
|
|
}
|
|
_isWidthProperty(t) {
|
|
return t instanceof g.LineToolWidthsProperty
|
|
}
|
|
}
|
|
},
|
|
"W0/v": function(t, e) {
|
|
t.exports =
|
|
'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 17 17" width="17" height="17" fill="none"><path stroke="currentColor" d="M1.5 11.5l-.7.7a1 1 0 0 0-.3.71v3.59h3.59a1 1 0 0 0 .7-.3l.71-.7m-4-4l9-9m-9 9l2 2m2 2l9-9m-9 9l-2-2m11-7l1.3-1.3a1 1 0 0 0 0-1.4l-2.6-2.6a1 1 0 0 0-1.4 0l-1.3 1.3m4 4l-4-4m-7 11l9-9"/></svg>'
|
|
},
|
|
X1vi: function(t, e, i) {
|
|
t.exports = {
|
|
wrap: "wrap-2EG6_6QR",
|
|
icon: "icon-2EG6_6QR",
|
|
colorBg: "colorBg-2EG6_6QR",
|
|
color: "color-2EG6_6QR",
|
|
multicolor: "multicolor-2EG6_6QR",
|
|
white: "white-2EG6_6QR"
|
|
}
|
|
},
|
|
Xxuz: function(t, e) {
|
|
t.exports =
|
|
'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 28 28" width="28" height="28" fill="none"><path fill="currentcolor" fill-rule="evenodd" clip-rule="evenodd" d="M13 5.5c0-.28.22-.5.5-.5h1c.28 0 .5.22.5.5V7.05l.4.09c.9.18 1.73.53 2.46 1.02l.34.23.29-.3.81-.8c.2-.2.52-.2.71 0l.7.7.36-.35-.35.35c.2.2.2.51 0 .7l-.82.82-.29.29.23.34c.49.73.84 1.57 1.02 2.46l.08.4H22.5c.28 0 .5.22.5.5v1a.5.5 0 0 1-.5.5H20.95l-.09.4c-.18.9-.53 1.73-1.02 2.46l-.23.34.3.29.8.81c.2.2.2.52 0 .71l-.7.7a.5.5 0 0 1-.7 0l-.82-.8-.29-.3-.34.23c-.73.49-1.57.84-2.46 1.02l-.4.08V22.5a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5V20.95l-.4-.09a6.96 6.96 0 0 1-2.46-1.02l-.34-.23-.29.3-.81.8.35.36-.35-.35a.5.5 0 0 1-.71 0l-.7-.71a.5.5 0 0 1 0-.7l-.36-.36.35.35.82-.81.29-.29-.23-.34a6.96 6.96 0 0 1-1.02-2.46l-.08-.4H5.5a.5.5 0 0 1-.5-.5v-1c0-.28.22-.5.5-.5H7.05l.09-.4c.18-.9.53-1.73 1.02-2.46l.23-.34-.3-.29-.8-.81a.5.5 0 0 1 0-.71l.7-.7c.2-.2.51-.2.7 0l.82.8.29.3.34-.23a6.96 6.96 0 0 1 2.46-1.02l.4-.08V5.5zm.5-1.5c-.83 0-1.5.67-1.5 1.5v.75c-.73.2-1.43.48-2.06.86l-.54-.53a1.5 1.5 0 0 0-2.12 0l-.7.7a1.5 1.5 0 0 0 0 2.12l.53.54A7.95 7.95 0 0 0 6.25 12H5.5c-.83 0-1.5.67-1.5 1.5v1c0 .83.67 1.5 1.5 1.5h.75c.2.73.48 1.43.86 2.06l-.53.54a1.5 1.5 0 0 0 0 2.12l.7.7a1.5 1.5 0 0 0 2.12 0l.54-.53c.63.38 1.33.67 2.06.86v.75c0 .83.67 1.5 1.5 1.5h1c.83 0 1.5-.67 1.5-1.5v-.75a7.95 7.95 0 0 0 2.06-.86l.54.53a1.5 1.5 0 0 0 2.12 0l.7-.7a1.5 1.5 0 0 0 0-2.12l-.53-.54c.38-.63.67-1.33.86-2.06h.75c.83 0 1.5-.67 1.5-1.5v-1c0-.83-.67-1.5-1.5-1.5h-.75a7.95 7.95 0 0 0-.86-2.06l.53-.54a1.5 1.5 0 0 0 0-2.12l-.7-.7a1.5 1.5 0 0 0-2.12 0l-.54.53A7.95 7.95 0 0 0 16 6.25V5.5c0-.83-.67-1.5-1.5-1.5h-1zM12 14a2 2 0 1 1 4 0 2 2 0 0 1-4 0zm2-3a3 3 0 1 0 0 6 3 3 0 0 0 0-6z"/></svg>'
|
|
},
|
|
"ZSM+": function(t, e) {
|
|
t.exports =
|
|
'<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" fill="currentColor"><circle cx="9" cy="14" r="1"/><circle cx="4" cy="14" r="1"/><circle cx="14" cy="14" r="1"/><circle cx="19" cy="14" r="1"/><circle cx="24" cy="14" r="1"/></svg>'
|
|
},
|
|
ZWNO: function(t, e, i) {
|
|
"use strict";
|
|
|
|
function o(t) {
|
|
let e = 0;
|
|
return t.isTop && t.isLeft || (e += 1), t.isTop && t.isRight || (e += 2), t.isBottom && t
|
|
.isLeft || (e += 8), t.isBottom && t.isRight || (e += 4), e
|
|
}
|
|
i.d(e, "a", (function() {
|
|
return o
|
|
}))
|
|
},
|
|
bQEj: function(t, e) {
|
|
t.exports =
|
|
'<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28"><path stroke="currentColor" d="M4 13.5h20"/></svg>'
|
|
},
|
|
dRg2: function(t, e, i) {
|
|
t.exports = {
|
|
item: "item-3Te2Sp8a",
|
|
withIcon: "withIcon-3Te2Sp8a",
|
|
icon: "icon-3Te2Sp8a",
|
|
labelRow: "labelRow-3Te2Sp8a",
|
|
multiWidth: "multiWidth-3Te2Sp8a",
|
|
buttonWrap: "buttonWrap-3Te2Sp8a",
|
|
buttonLabel: "buttonLabel-3Te2Sp8a"
|
|
}
|
|
},
|
|
gmn6: function(t, e, i) {
|
|
"use strict";
|
|
i.r(e), i.d(e, "FavoriteDrawingToolbar", (function() {
|
|
return g
|
|
}));
|
|
i("YFKU");
|
|
var o = i("0ZwQ"),
|
|
n = i("b2d7"),
|
|
s = i("8+VR"),
|
|
r = i("gWrr"),
|
|
a = i("7KDR"),
|
|
l = i("5VQP"),
|
|
c = i("mMWL"),
|
|
d = i("MP+M"),
|
|
h = i("Vdly"),
|
|
u = i("hY0g"),
|
|
p = i.n(u);
|
|
i("4QAy");
|
|
class g extends o.b {
|
|
constructor(t) {
|
|
super({
|
|
allowSortable: !s.mobiletouch,
|
|
dragOnlyInsideToolbar: !0,
|
|
defaultPosition: t,
|
|
positionSettingsKey: "chart.favoriteDrawingsPosition",
|
|
positionStorageType: "device"
|
|
}),
|
|
this._linetoolsWidgets = {}, this._canBeShownValue = new p.a(!1), this
|
|
._attachHandlers(), this._loadVisibilityState(), this._hideAction = this
|
|
._createHideToolbarAction()
|
|
}
|
|
show() {
|
|
this._canBeShownValue.value() && (h.setValue(
|
|
"ChartFavoriteDrawingToolbarWidget.visible", !0), this
|
|
.isVisible() || this._renderAllLinetools(), super.show())
|
|
}
|
|
hide() {
|
|
h.setValue("ChartFavoriteDrawingToolbarWidget.visible", !1), super.hide()
|
|
}
|
|
canBeShown() {
|
|
return this._canBeShownValue.readonly()
|
|
}
|
|
_onFavoriteAdded(t) {
|
|
this._canBeShownValue.setValue(!0), this.addWidget(this._createLinetoolWidget(
|
|
t)), this.show()
|
|
}
|
|
_onFavoriteRemoved(t) {
|
|
this.removeWidget(this._linetoolsWidgets[t]), delete this._linetoolsWidgets[t],
|
|
0 === n.a.favoritesCount() && (this._canBeShownValue.setValue(!1), this
|
|
.hide())
|
|
}
|
|
_onFavoriteMoved() {
|
|
this._renderAllLinetools()
|
|
}
|
|
_onSelectedLinetoolChanged(t) {
|
|
Object.keys(this._linetoolsWidgets).forEach(e => {
|
|
this._linetoolsWidgets[e].classList.toggle("i-active", t === e)
|
|
})
|
|
}
|
|
_createLinetoolWidget(t) {
|
|
const e =
|
|
`<span class="tv-favorited-drawings-toolbar__widget ${t===c.tool.value()?"i-active":""}" title="${d.a[t].localizedName}">${d.a[t].icon}</span>`,
|
|
i = Object(r.b)(e);
|
|
return i.addEventListener("click", e => {
|
|
e.preventDefault(), c.tool.value() !== t && c.tool.setValue(t)
|
|
}), this._linetoolsWidgets[t] = i, i
|
|
}
|
|
_renderAllLinetools() {
|
|
this._linetoolsWidgets = {}, this.removeWidgets(), n.a.favorites().filter(t => d
|
|
.a[t]).forEach(t => {
|
|
this.addWidget(this._createLinetoolWidget(t))
|
|
})
|
|
}
|
|
_attachHandlers() {
|
|
n.a.favoriteAdded.subscribe(this, this._onFavoriteAdded), n.a.favoriteRemoved
|
|
.subscribe(this, this._onFavoriteRemoved), n.a.favoriteMoved.subscribe(this,
|
|
this._onFavoriteMoved), n.a.favoritesSynced.subscribe(null, () => {
|
|
this._loadVisibilityState(), this._renderAllLinetools()
|
|
}), this.onWidgetsReordered().subscribe(this, (t, e) => {
|
|
if (n.a.favoriteMoved.unsubscribe(this, this._onFavoriteMoved), !n.a
|
|
.moveFavorite(n.a.favorite(t), e)) throw new Error(
|
|
"Something went wrong");
|
|
n.a.favoriteMoved.subscribe(this, this._onFavoriteMoved)
|
|
}), this.onContextMenu(t => {
|
|
t.preventDefault(), l.ContextMenuManager.createMenu([this
|
|
._hideAction
|
|
]).then(e => {
|
|
e.show(t)
|
|
})
|
|
}), c.tool.subscribe(this._onSelectedLinetoolChanged.bind(this))
|
|
}
|
|
_createHideToolbarAction() {
|
|
return new a.Action({
|
|
label: window.t("Hide Favorite Drawing Tools Toolbar"),
|
|
onExecute: () => {
|
|
this.hide()
|
|
}
|
|
})
|
|
}
|
|
_loadVisibilityState() {
|
|
const t = n.a.favoritesCount() > 0;
|
|
this._canBeShownValue.setValue(t);
|
|
h.getBool("ChartFavoriteDrawingToolbarWidget.visible", !0) && t ? this.show() :
|
|
this.hide()
|
|
}
|
|
}
|
|
},
|
|
"m/4m": function(t, e, i) {},
|
|
mQbF: function(t, e) {
|
|
t.exports =
|
|
'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 13 15" width="13" height="15" fill="none"><path stroke="currentColor" d="M4 14.5h2.5m2.5 0H6.5m0 0V.5m0 0h-5a1 1 0 0 0-1 1V4m6-3.5h5a1 1 0 0 1 1 1V4"/></svg>'
|
|
},
|
|
myiL: function(t, e, i) {
|
|
"use strict";
|
|
i.r(e), i.d(e, "LineWidthButton", (function() {
|
|
return f
|
|
}));
|
|
var o = i("q1tI"),
|
|
n = i.n(o),
|
|
s = i("TSYQ"),
|
|
r = i("Eyy1"),
|
|
a = i("Iivm"),
|
|
l = i("82wv"),
|
|
c = i("5hRh"),
|
|
d = i("N5tr"),
|
|
h = i("nPPD"),
|
|
u = i("O5Oz"),
|
|
p = i("xnr+"),
|
|
g = i("n3oB"),
|
|
_ = i("2F1E"),
|
|
m = i("Lnv9"),
|
|
b = i("dRg2");
|
|
const v = Object(h.a)(d.a, b),
|
|
w = [{
|
|
value: 1,
|
|
icon: u
|
|
}, {
|
|
value: 2,
|
|
icon: p
|
|
}, {
|
|
value: 3,
|
|
icon: g
|
|
}, {
|
|
value: 4,
|
|
icon: _
|
|
}];
|
|
|
|
function f(t) {
|
|
const {
|
|
multipleProperty: e,
|
|
title: i,
|
|
model: o,
|
|
className: h,
|
|
isSmallScreen: u
|
|
} = t, p = Object(c.a)(Object(r.ensureDefined)(e)), g = "mixed" === p || !p, _ = function(
|
|
t) {
|
|
const e = w.find(e => e.value === t);
|
|
if (!e) return m;
|
|
return e.icon
|
|
}(p);
|
|
return n.a.createElement(l.a, {
|
|
className: h,
|
|
arrow: !1,
|
|
title: i,
|
|
"data-name": t["data-name"],
|
|
menuDataName: t["data-name"] + "-menu",
|
|
content: n.a.createElement("div", null, g ? n.a.createElement("div", {
|
|
className: b.multiWidth
|
|
}, n.a.createElement(a.a, {
|
|
icon: m
|
|
})) : n.a.createElement("div", {
|
|
className: b.buttonWrap
|
|
}, !u && n.a.createElement(a.a, {
|
|
icon: _
|
|
}), n.a.createElement("div", {
|
|
className: s(!u && b.buttonLabel)
|
|
}, p + "px")))
|
|
}, w.map(({
|
|
value: t,
|
|
icon: e
|
|
}) => n.a.createElement(d.b, {
|
|
key: t,
|
|
theme: v,
|
|
label: t + "px",
|
|
icon: e,
|
|
isActive: t === p,
|
|
onClick: f,
|
|
onClickArg: t
|
|
})));
|
|
|
|
function f(t) {
|
|
t && e && (o.beginUndoMacro(i), e.setValue(t, void 0, {
|
|
applyValue: (t, e) => {
|
|
o.setProperty(t, e, i)
|
|
}
|
|
}), o.endUndoMacro())
|
|
}
|
|
}
|
|
},
|
|
n3oB: function(t, e) {
|
|
t.exports =
|
|
'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 3" width="18" height="3"><rect width="18" height="3" fill="currentColor" rx="1.5"/></svg>'
|
|
},
|
|
"p0W+": function(t, e, i) {
|
|
"use strict";
|
|
i.d(e, "a", (function() {
|
|
return a
|
|
}));
|
|
var o = i("q1tI"),
|
|
n = i("TSYQ"),
|
|
s = i("tU7i"),
|
|
r = i("EvtC");
|
|
const a = o.forwardRef((t, e) => {
|
|
const {
|
|
className: i,
|
|
...a
|
|
} = t;
|
|
return o.createElement(s.b, {
|
|
...a,
|
|
ref: e,
|
|
className: n(i, r.button)
|
|
})
|
|
})
|
|
},
|
|
qAO1: function(t, e) {
|
|
t.exports =
|
|
'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8 12" width="8" height="12" fill="currentColor"><rect width="2" height="2" rx="1"/><rect width="2" height="2" rx="1" y="5"/><rect width="2" height="2" rx="1" y="10"/><rect width="2" height="2" rx="1" x="6"/><rect width="2" height="2" rx="1" x="6" y="5"/><rect width="2" height="2" rx="1" x="6" y="10"/></svg>'
|
|
},
|
|
rzV7: function(t, e, i) {
|
|
"use strict";
|
|
var o = Object.prototype.hasOwnProperty;
|
|
|
|
function n(t, e) {
|
|
return t === e ? 0 !== t || 0 !== e || 1 / t == 1 / e : t != t && e != e
|
|
}
|
|
t.exports = function(t, e) {
|
|
if (n(t, e)) return !0;
|
|
if ("object" != typeof t || null === t || "object" != typeof e || null === e) return !1;
|
|
var i = Object.keys(t),
|
|
s = Object.keys(e);
|
|
if (i.length !== s.length) return !1;
|
|
for (var r = 0; r < i.length; r++)
|
|
if (!o.call(e, i[r]) || !n(t[i[r]], e[i[r]])) return !1;
|
|
return !0
|
|
}
|
|
},
|
|
tPkB: function(t, e, i) {
|
|
"use strict";
|
|
var o = i("YFKU").t,
|
|
n = i("mMWL"),
|
|
s = i("Ve4Q").LineToolPropertiesWidgetBase,
|
|
r = i("e92V").isLineDrawnWithPressedButton,
|
|
a = i("CW80").isLineTool;
|
|
const l = i("IhRv").ColorPickerButton,
|
|
c = i("myiL").LineWidthButton;
|
|
i("CW80").setNewToolProperties;
|
|
var d = i("W0/v"),
|
|
h = i("0fuu"),
|
|
u = i("mQbF"),
|
|
p = window.t("Color");
|
|
class g extends s {
|
|
constructor(t) {
|
|
super(t), this._hasAlertWathcedValue = null, this._templatesButton = null, this
|
|
.attachHandlers()
|
|
}
|
|
attachHandlers() {
|
|
n.tool.subscribe(this.onToolChanged.bind(this), {
|
|
callWithLast: !0
|
|
}), n.iconTool.subscribe(this.onIconToolChanged.bind(this)), this
|
|
._chartWidgetCollection.selectedSources.subscribe(this.onSourceChanged.bind(
|
|
this))
|
|
}
|
|
onIconToolChanged() {
|
|
this.onToolChanged(n.tool.value())
|
|
}
|
|
onToolChanged(t, e) {
|
|
this._currentTool = t;
|
|
const i = this.selectedSources();
|
|
this._isDrawingToolExcludingTweet(t) ? (this._isDrawingFinished.setValue(!1), this
|
|
._updateVisibility()) : i && i.length ? (i.length > 1 && this
|
|
._isDrawingFinished.setValue(!0),
|
|
this.onSourceChanged(this.selectedSources())) : this.hide()
|
|
}
|
|
findSourceOnWidget(t) {
|
|
for (var e = 0; e < this.activeChartWidget().model().panes().length; e++)
|
|
for (var i = this.activeChartWidget().model().panes()[e].sourcesByGroup().all(),
|
|
o = 0; o < i.length; o++)
|
|
if (i[o] === t) return i[o]
|
|
}
|
|
onSourceChanged(t) {
|
|
if (this._hasAlertWathcedValue && (this._hasAlertWathcedValue.destroy(), this
|
|
._hasAlertWathcedValue = null), t && t.length && (1 !== t.length || a(t[
|
|
0])))
|
|
if (this._createCommonButtons(), 1 === t.length) {
|
|
var e = t[0];
|
|
e.isAvailableInFloatingWidget() && this.findSourceOnWidget(e) ? (!e
|
|
.userEditEnabled() || !r(e.toolname) && this.activeChartWidget()
|
|
.model().lineBeingCreated() || (this._isDrawingFinished.setValue(!
|
|
0), e.canHasAlert() && (this._hasAlertWathcedValue = e.hasAlert
|
|
.spawn())), this.showPropertiesOf(e.toolname, e
|
|
.properties(), !0), this.showTemplatesOf({
|
|
source: e
|
|
}), this._toolbarVisible = !0, this._updateVisibility()) : this
|
|
.hide()
|
|
} else this._clearProperties(), this._templatesButton && (this
|
|
._clearTemplatesButton(), this._templatesButton = null), this
|
|
._updateVisibility(), this._createWidthsButton(void 0, !0), this
|
|
._createColorsButton(void 0, !0), this._createBackgroundsButton(void 0, !0),
|
|
this._createTextColorsButton(void 0, !0);
|
|
else this.hide()
|
|
}
|
|
_createWidthsButton(t, e) {
|
|
if (this._lineWidthsProperty && (this._lineWidthsProperty.destroy(), this
|
|
._lineWidthsProperty = null), this._lineWidthsProperty = this
|
|
._createProperty(t, e, "linesWidths", "Set Line tool(s) line width"), !this
|
|
._lineWidthsProperty) return !0;
|
|
var i = window.t("Line tool width");
|
|
e && (1 !== this.selectedSources().filter((function(t) {
|
|
return a(t) && t.properties().linesWidths
|
|
})).length && (i = window.t("Line tool widths")));
|
|
return this._addPropertyButton({
|
|
component: c,
|
|
props: {
|
|
title: i,
|
|
multipleProperty: this._lineWidthsProperty,
|
|
model: this.activeChartWidget().model(),
|
|
"data-name": "line-tool-width"
|
|
}
|
|
}), !0
|
|
}
|
|
_createColorsButton(t, e) {
|
|
return this._lineColorsProperty && (this._lineColorsProperty.destroy(), this
|
|
._lineColorsProperty = null), this._lineColorsProperty = this
|
|
._createProperty(t, e, "linesColors", "Set Line tool(s) color"), !this
|
|
._lineColorsProperty || (this._addPropertyButton({
|
|
component: l,
|
|
props: {
|
|
icon: d,
|
|
title: window.t("Line tool colors"),
|
|
property: this._lineColorsProperty,
|
|
model: this.activeChartWidget().model(),
|
|
"data-name": "line-tool-color"
|
|
}
|
|
}), !0)
|
|
}
|
|
_createBackgroundsButton(t, e) {
|
|
return this._backgroundsProperty && (this._backgroundsProperty.destroy(), this
|
|
._backgroundsProperty = null), this._backgroundsProperty = this
|
|
._createProperty(t, e, "backgroundsColors", "Set Line background(s) color"), !
|
|
this._backgroundsProperty || (this._addPropertyButton({
|
|
component: l,
|
|
props: {
|
|
icon: h,
|
|
title: window.t("Line tool backgrounds"),
|
|
property: this._backgroundsProperty,
|
|
model: this.activeChartWidget().model(),
|
|
"data-name": "background-color"
|
|
}
|
|
}), !0)
|
|
}
|
|
_createTextColorsButton(t, e) {
|
|
return this._textColorsProperty && (this._textColorsProperty.destroy(), this
|
|
._textColorsProperty = null), this._textColorsProperty = this
|
|
._createProperty(t, e, "textsColors", "Set Line tool(s) text color"), !this
|
|
._textColorsProperty || (this._addPropertyButton({
|
|
component: l,
|
|
props: {
|
|
icon: u,
|
|
title: window.t("Line tool text colors"),
|
|
property: this._textColorsProperty,
|
|
model: this.activeChartWidget().model(),
|
|
"data-name": "text-color"
|
|
}
|
|
}), !0)
|
|
}
|
|
showTemplatesOf(t) {}
|
|
templatesList() {
|
|
return this._templatesList
|
|
}
|
|
_getPossibleProperty(t) {
|
|
for (var e = [], i = this._defaultToolProperties(), o = 0; o < i.length; o++) {
|
|
var n = i[o];
|
|
n.name in t && e.push(n)
|
|
}
|
|
return e
|
|
}
|
|
showPropertiesOf(t, e, i) {
|
|
this._toolExceptionCases || (this._toolExceptionCases = this
|
|
._createToolExceptionCases());
|
|
var o = this._toolExceptionCases[t] || this._getPossibleProperty(e);
|
|
if (this._clearProperties(), this._propertiesVisible = !1, o.length) {
|
|
for (var n = {}, s = 0; s < o.length; s++) {
|
|
for (var r = o[s], a = e, c = r.name.split("."), d = 0; d < c.length; ++d)
|
|
a = a && a[c[d]];
|
|
var h = r.showIf;
|
|
if ("function" != typeof h || h(a, e)) {
|
|
var u = r.factory;
|
|
if (u && u.call(this, a, i)) continue;
|
|
if (!a) continue;
|
|
if (this._propertiesVisible = !0, "combobox" !== r.inputType) {
|
|
const t = {
|
|
component: l,
|
|
props: {
|
|
icon: r.iconSvgCode,
|
|
title: r.title,
|
|
"data-name": r.dataName,
|
|
property: a,
|
|
model: this.activeChartWidget().model()
|
|
}
|
|
};
|
|
this._addPropertyButton(t);
|
|
continue
|
|
}
|
|
n[r.name] = a
|
|
}
|
|
}
|
|
this._currentProperties = n
|
|
}
|
|
}
|
|
_updateVisibility() {
|
|
this._isDrawingFinished.value() && (this._toolbarVisible || this
|
|
._propertiesVisible) ? this._show() : this.hide()
|
|
}
|
|
refresh() {
|
|
this.onSourceChanged(this.selectedSources())
|
|
}
|
|
_defaultToolProperties() {
|
|
return [{
|
|
name: "linesColors",
|
|
inputType: "colorPicker",
|
|
iconSvgCode: d,
|
|
title: p,
|
|
factory: g.prototype._createColorsButton,
|
|
dataName: "line-tool-color"
|
|
}, {
|
|
name: "backgroundsColors",
|
|
inputType: "colorPicker",
|
|
iconSvgCode: h,
|
|
title: o("Background Color"),
|
|
factory: g.prototype._createBackgroundsButton,
|
|
dataName: "background-color",
|
|
showIf: this._shouldShowBackgroundProperty
|
|
}, {
|
|
name: "textsColors",
|
|
title: o("Text color"),
|
|
inputType: "colorPicker",
|
|
iconSvgCode: u,
|
|
factory: g.prototype._createTextColorsButton,
|
|
dataName: "text-color"
|
|
}, {
|
|
name: "linesWidths",
|
|
inputType: "combobox",
|
|
factory: g.prototype._createWidthsButton
|
|
}, {
|
|
name: "linestyle",
|
|
title: o("Style"),
|
|
inputType: "combobox",
|
|
factory: g.prototype._createLineStyleButton
|
|
}]
|
|
}
|
|
_riskPropertiesExceptionCases() {
|
|
return [{
|
|
name: "textcolor",
|
|
title: o("Text color"),
|
|
inputType: "colorPicker",
|
|
iconSvgCode: u,
|
|
dataName: "text-color"
|
|
}, {
|
|
name: "profitBackground",
|
|
title: o("Profit Background Color"),
|
|
inputType: "colorPicker",
|
|
iconSvgCode: h,
|
|
dataName: "background-color"
|
|
}, {
|
|
name: "stopBackground",
|
|
title: o("Stop Background Color"),
|
|
inputType: "colorPicker",
|
|
iconSvgCode: h,
|
|
dataName: "background-color"
|
|
}]
|
|
}
|
|
_rangeExceptionCases() {
|
|
return [{
|
|
name: "linecolor",
|
|
inputType: "colorPicker",
|
|
iconSvgCode: d,
|
|
title: p,
|
|
dataName: "line-tool-color"
|
|
}, {
|
|
name: "backgroundColor",
|
|
inputType: "colorPicker",
|
|
iconSvgCode: h,
|
|
title: o("Background Color"),
|
|
dataName: "background-color",
|
|
showIf: this._shouldShowBackgroundProperty
|
|
}, {
|
|
name: "linesWidths",
|
|
inputType: "combobox",
|
|
factory: g.prototype._createWidthsButton
|
|
}]
|
|
}
|
|
_brushPropertiesExceptionCase() {
|
|
return [{
|
|
name: "linesColors",
|
|
inputType: "colorPicker",
|
|
iconSvgCode: d,
|
|
title: o("Color"),
|
|
factory: g.prototype._createColorsButton,
|
|
dataName: "line-tool-color"
|
|
}, {
|
|
name: "backgroundsColors",
|
|
inputType: "colorPicker",
|
|
iconSvgCode: h,
|
|
title: o("Background Color"),
|
|
dataName: "background-color",
|
|
factory: g.prototype._createBackgroundsButton
|
|
}, {
|
|
name: "linesWidths",
|
|
inputType: "combobox",
|
|
factory: g.prototype._createWidthsButton
|
|
}]
|
|
}
|
|
_bezierPropertiesExceptionCases() {
|
|
return [{
|
|
name: "linesColors",
|
|
inputType: "colorPicker",
|
|
iconSvgCode: d,
|
|
title: o("Color"),
|
|
factory: g.prototype._createColorsButton,
|
|
dataName: "line-tool-color"
|
|
}, {
|
|
name: "backgroundsColors",
|
|
inputType: "colorPicker",
|
|
iconSvgCode: h,
|
|
dataName: "background-color",
|
|
title: o("Background Color"),
|
|
factory: g.prototype._createBackgroundsButton,
|
|
showIf: this._shouldShowBackgroundProperty
|
|
}, {
|
|
name: "linesWidths",
|
|
inputType: "combobox",
|
|
factory: g.prototype._createWidthsButton
|
|
}, {
|
|
name: "linestyle",
|
|
title: o("Style"),
|
|
inputType: "combobox",
|
|
factory: g.prototype._createLineStyleButton
|
|
}]
|
|
}
|
|
_textPropertiesExceptionCases() {
|
|
return [{
|
|
name: "color",
|
|
title: o("Text color"),
|
|
inputType: "colorPicker",
|
|
iconSvgCode: u,
|
|
dataName: "text-color"
|
|
}, {
|
|
name: "backgroundColor",
|
|
title: o("Background Color"),
|
|
inputType: "colorPicker",
|
|
iconSvgCode: h,
|
|
dataName: "background-color",
|
|
showIf: this._shouldShowBackgroundProperty
|
|
}, {
|
|
name: "fontsize",
|
|
title: o("Font Size"),
|
|
inputType: "combobox",
|
|
factory: g.prototype._createFontSizeButton
|
|
}]
|
|
}
|
|
_notePropertiesExceptionCases() {
|
|
return [{
|
|
name: "markerColor",
|
|
title: o("Marker Color"),
|
|
inputType: "colorPicker",
|
|
iconSvgCode: d,
|
|
dataName: "line-tool-color"
|
|
}, {
|
|
name: "textColor",
|
|
title: o("Text color"),
|
|
inputType: "colorPicker",
|
|
iconSvgCode: u,
|
|
dataName: "text-color"
|
|
}, {
|
|
name: "fontSize",
|
|
title: o("Font Size"),
|
|
inputType: "combobox",
|
|
factory: g.prototype._createFontSizeButton
|
|
}]
|
|
}
|
|
_createToolExceptionCases() {
|
|
return {
|
|
LineToolRegressionTrend: [],
|
|
LineToolBrush: g.prototype._brushPropertiesExceptionCase(),
|
|
LineToolBezierQuadro: g.prototype._bezierPropertiesExceptionCases(),
|
|
LineToolBezierCubic: g.prototype._bezierPropertiesExceptionCases(),
|
|
LineToolText: g.prototype._textPropertiesExceptionCases(),
|
|
LineToolTextAbsolute: g.prototype._textPropertiesExceptionCases(),
|
|
LineToolBalloon: g.prototype._textPropertiesExceptionCases(),
|
|
LineToolCallout: g.prototype._textPropertiesExceptionCases(),
|
|
LineToolPriceLabel: g.prototype._textPropertiesExceptionCases(),
|
|
LineToolDateRange: g.prototype._rangeExceptionCases(),
|
|
LineToolPriceRange: g.prototype._rangeExceptionCases(),
|
|
LineToolDateAndPriceRange: g.prototype._rangeExceptionCases(),
|
|
LineToolNote: g.prototype._notePropertiesExceptionCases(),
|
|
LineToolNoteAbsolute: g.prototype._notePropertiesExceptionCases(),
|
|
LineToolRiskRewardLong: g.prototype._riskPropertiesExceptionCases(),
|
|
LineToolRiskRewardShort: g.prototype._riskPropertiesExceptionCases(),
|
|
LineToolBarsPattern: [{
|
|
name: "color",
|
|
title: p,
|
|
inputType: "colorPicker",
|
|
iconSvgCode: h,
|
|
dataName: "background-color"
|
|
}],
|
|
LineToolProjection: [{
|
|
name: "color1",
|
|
title: o("Background color 1"),
|
|
inputType: "colorPicker",
|
|
iconSvgCode: h,
|
|
dataName: "background-color"
|
|
}, {
|
|
name: "color2",
|
|
title: o("Background color 2"),
|
|
inputType: "colorPicker",
|
|
iconSvgCode: h,
|
|
dataName: "background-color"
|
|
}, {
|
|
name: "linesWidths",
|
|
inputType: "combobox",
|
|
factory: g.prototype._createWidthsButton
|
|
}],
|
|
LineToolSignpost: [{
|
|
name: "fontSize",
|
|
title: o("Font Size"),
|
|
inputType: "combobox"
|
|
}, {
|
|
name: "linesColors",
|
|
inputType: "colorPicker",
|
|
iconSvgCode: h,
|
|
dataName: "background-color",
|
|
title: p,
|
|
factory: g.prototype._createBackgroundsButton,
|
|
showIf: function(t, e) {
|
|
return e && e.showImage.value()
|
|
}
|
|
}]
|
|
}
|
|
}
|
|
}
|
|
t.exports = g
|
|
},
|
|
turx: function(t, e, i) {
|
|
"use strict";
|
|
i.d(e, "b", (function() {
|
|
return a
|
|
})), i.d(e, "a", (function() {
|
|
return l
|
|
}));
|
|
var o = i("Eyy1"),
|
|
n = i("tc+8"),
|
|
s = i.n(n);
|
|
class r extends s.a {
|
|
constructor(t) {
|
|
super(), this._listenersMappers = [], this._isProcess = !1, this._baseProperty =
|
|
t
|
|
}
|
|
destroy() {
|
|
this._baseProperty.destroy()
|
|
}
|
|
value() {
|
|
const t = this._baseProperty.value();
|
|
return "mixed" === t ? "" : t
|
|
}
|
|
visible() {
|
|
return this._baseProperty.visible()
|
|
}
|
|
setValue(t) {
|
|
this._isProcess = !0, this._baseProperty.setValue("" === t ? "mixed" : t,
|
|
void 0, {
|
|
applyValue: this._applyValue.bind(this)
|
|
}), this._isProcess = !1, this._listenersMappers.forEach(t => {
|
|
t.method.call(t.obj, this)
|
|
})
|
|
}
|
|
subscribe(t, e) {
|
|
const i = i => {
|
|
this._isProcess || e.call(t, this)
|
|
},
|
|
o = {
|
|
obj: t,
|
|
method: e,
|
|
callback: i
|
|
};
|
|
this._listenersMappers.push(o), this._baseProperty.subscribe(t, i)
|
|
}
|
|
unsubscribe(t, e) {
|
|
var i;
|
|
const n = Object(o.ensureDefined)(null === (i = this._listenersMappers.find(i =>
|
|
i.obj === t && i.method === e)) || void 0 === i ? void 0 : i
|
|
.callback);
|
|
this._baseProperty.unsubscribe(t, n)
|
|
}
|
|
unsubscribeAll(t) {
|
|
this._baseProperty.unsubscribeAll(t)
|
|
}
|
|
}
|
|
class a extends r {
|
|
constructor(t, e, i) {
|
|
super(t), this._undoModel = e, this._undoText = i
|
|
}
|
|
_applyValue(t, e) {
|
|
this._undoModel.setProperty(t, e, this._undoText)
|
|
}
|
|
}
|
|
class l extends r {
|
|
_applyValue(t, e) {
|
|
t.setValue(e)
|
|
}
|
|
}
|
|
},
|
|
ucyy: function(t, e, i) {
|
|
t.exports = {
|
|
button: "button-1gEXpG61"
|
|
}
|
|
},
|
|
wwkJ: function(t, e, i) {
|
|
"use strict";
|
|
i.d(e, "a", (function() {
|
|
return n
|
|
}));
|
|
var o = i("q1tI");
|
|
const n = i.n(o).a.createContext({
|
|
isGrouped: !1,
|
|
cellState: {
|
|
isTop: !0,
|
|
isRight: !0,
|
|
isBottom: !0,
|
|
isLeft: !0
|
|
}
|
|
})
|
|
},
|
|
"xnr+": function(t, e) {
|
|
t.exports =
|
|
'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 2" width="18" height="2"><rect width="18" height="2" fill="currentColor" rx="1"/></svg>'
|
|
}
|
|
}
|
|
]);
|
|
|