12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796 |
- !function(y, X, R) {
- "use strict";
- var E = "ht"
- , L = E + ".widget."
- , p = y[E]
- , Q = p.Color
- , i = p.widget
- , l = Q.widgetBorder
- , G = Q.widgetBackground
- , M = Q.widgetIconBorder
- , w = Q.transparent
- , f = Q.background
- , P = Q.highlight
- , $ = p.Default
- , q = $.def
- , B = $.widgetRowHeight
- , o = $.removeHTML
- , e = $.drawText
- , s = $.getTextSize
- , J = $.isLeftButton
- , j = $.getWindowInfo
- , V = $.getImage
- , S = $.drawCenterImage
- , C = $.preventDefault
- , Y = $.getLogicalPoint
- , Z = $.labelFont
- , W = $.labelColor
- , r = $.labelSelectColor
- , T = $.widgetIndent
- , g = $.startDragging
- , d = $.createElement
- , v = $.getClientPoint
- , N = $.scrollBarInteractiveSize
- , k = $.getInternal()
- , u = (k.createView,
- k.createDiv)
- , h = k.createCanvas
- , c = k.createImage
- , F = k.setCanvas
- , A = k.initContext
- , z = k.translateAndScale
- , O = k.isString
- , m = k.drawBorder
- , I = k.getImageWidth
- , U = k.getImageHeight
- , t = k.fillRect
- , x = k.layout
- , H = k.formatNumber
- , _ = k.addMethod
- , n = k.isH
- , b = $.isTouchable
- , K = Math.round
- , D = "readonly"
- , a = b ? "touchstart" : "mousedown"
- , oe = {
- x: 0,
- y: 0,
- width: 0,
- height: 0
- }
- , vg = function(c) {
- var $ = c.touches[0];
- return $ ? $ : c.changedTouches[0]
- }
- , ap = function(m, G) {
- return m.querySelector(G)
- }
- , jj = function(H, x) {
- var y = $.getLogicalPoint(x, H._canvas || H._view);
- return y.x >= 0 && y.y >= 0 && y.x <= H.getWidth() && y.y <= H.getHeight()
- };
- _($, {
- textFieldFont: Z,
- textFieldColor: W,
- textFieldBorderColor: l,
- textAreaFont: Z,
- textAreaColor: W,
- textAreaBorderColor: l,
- radioButtonLabelFont: Z,
- radioButtonLabelColor: W,
- radioButtonPressBackground: l,
- checkBoxLabelFont: Z,
- checkBoxLabelColor: W,
- checkBoxPressBackground: l,
- buttonLabelFont: Z,
- buttonLabelColor: W,
- buttonLabelSelectColor: r,
- buttonBackground: G,
- buttonBorderColor: l,
- buttonSelectBackground: P,
- sliderBackground: Q.widgetIconBackground,
- sliderLeftBackground: Q.widgetIconHighlight,
- sliderThickness: 3,
- sliderPadding: 4,
- sliderButton: c(14, 14, {
- type: "circle",
- rect: [0, 0, 14, 14],
- borderWidth: 1,
- borderColor: M,
- gradient: "linear.northeast",
- gradientColor: Q.widgetIconGradient,
- background: G
- }),
- comboBoxMaxHeight: -1,
- comboBoxLabelFont: Z,
- comboBoxLabelColor: W,
- comboBoxLabelSelectColor: r,
- comboBoxShadowColor: w,
- comboBoxBorderColor: l,
- comboBoxBackground: f,
- comboBoxSelectBackground: P,
- comboBoxDropDownIcon: c(12, 16, {
- type: "shape",
- points: [1, 5, 6, 11, 11, 5],
- borderWidth: 2,
- borderColor: M
- }),
- imageBorderColor: R,
- imageBackground: R,
- formPaneLabelColor: W,
- formPaneLabelFont: Z,
- formPaneLabelAlign: "left",
- formPaneLabelVAlign: "middle",
- formPaneHPadding: 8,
- formPaneVPadding: 8,
- formPaneLabelHPadding: 2,
- formPaneLabelVPadding: 0,
- formPaneHGap: 6,
- formPaneVGap: 6
- }, !0);
- var rk = function(W, J) {
- var U = this;
- (U._view = k.createView(null, U)).appendChild(U._element = d(W, J)),
- U.setHeight(B),
- U.setWidth(80),
- U.iv()
- };
- q(rk, X, {
- ms_v: 1,
- ms_fire: 1,
- ms_tip: 1,
- ms_ac: ["toolTip"],
- onPropertyChanged: function() {
- this.iv()
- },
- getToolTip: function() {
- return this._toolTip || this.getText()
- },
- getElement: function() {
- return this._element
- },
- getText: function() {
- return this._element.value
- },
- setText: function(l) {
- this._element.value = l
- },
- getValue: function() {
- return this.getText()
- },
- setValue: function(S) {
- this.setText(S)
- },
- getColor: function() {
- return this._element.style.color
- },
- setColor: function(g) {
- this._element.style.color = g
- },
- getBackground: function() {
- return this._element.style.background
- },
- setBackground: function(g) {
- this._element.style.background = g
- },
- getBorder: function() {
- return this._element.style.border
- },
- setBorder: function(o) {
- this._element.style.border = o
- },
- getFont: function() {
- return this._element.style.font
- },
- setFont: function(A) {
- this._element.style.font = A
- },
- isEditable: function() {
- return this._element.hasAttribute(D)
- },
- setEditable: function(l) {
- var g = this._element;
- l ? g.removeAttribute(D) : g.setAttribute(D, !0)
- },
- validateImpl: function() {
- var y = this;
- x(y._element, 0, 0, y.getWidth(), y.getHeight())
- },
- setFocus: function() {
- return $.setFocus(this._element),
- this.fireViewEvent("focus"),
- !0
- }
- }),
- i.TextField = function() {
- i.TextField.superClass.constructor.call(this, "input", $.textFieldBorderColor),
- this.setColor($.textFieldLabelColor),
- this.setFont($.textFieldLabelFont)
- }
- ,
- q(L + "TextField", rk, {
- getType: function() {
- return this._element.getAttribute("type")
- },
- setType: function(x) {
- var U = this._element
- , J = $.numberListener;
- U.setAttribute("type", x),
- U.removeEventListener("keydown", J, !1),
- "number" === x && U.addEventListener("keydown", J, !1)
- }
- }),
- i.TextArea = function() {
- i.TextArea.superClass.constructor.call(this, "textarea", $.textAreaBorderColor),
- this.setColor($.textAreaLabelColor),
- this.setFont($.textAreaLabelFont)
- }
- ,
- q(L + "TextArea", rk, {}),
- i.Button = function() {
- var F = this
- , A = F._view = k.createView(null, F);
- F.setHeight(B),
- F.setWidth(80),
- F._canvas = h(A),
- new Iq(F),
- F.iv()
- }
- ,
- q(L + "Button", X, {
- ms_v: 1,
- ms_fire: 1,
- ms_tip: 1,
- ms_ac: ["groupId", "label", "icon", "iconColor", "orientation", "toolTip", "labelFont", "labelColor", "labelSelectColor", "borderColor", "background", "selectBackground", "togglable", "selected", "pressed", "clickable"],
- _clickable: !0,
- _togglable: !1,
- _selected: !1,
- _pressed: !1,
- _orientation: "h",
- _labelFont: $.buttonLabelFont,
- _labelColor: $.buttonLabelColor,
- _labelSelectColor: $.buttonLabelSelectColor,
- _borderColor: $.buttonBorderColor,
- _background: $.buttonBackground,
- _selectBackground: $.buttonSelectBackground,
- onClicked: function() {},
- onSelectedChanged: function() {},
- onValueChanged: function() {},
- onPropertyChanged: function(h) {
- var X = this
- , L = X._view.parentNode;
- X.iv(),
- "selected" === h.property && (null != X.getGroupId() && L && L.handleGroupSelectedChanged && L.handleGroupSelectedChanged(X),
- X.onSelectedChanged(),
- X.onValueChanged(h.oldValue, h.newValue))
- },
- getToolTip: function() {
- return this._toolTip || this._label
- },
- validateImpl: function() {
- var o = this
- , K = o._canvas
- , l = o.getWidth()
- , b = o.getHeight()
- , c = o._pressed || o._selected
- , h = c ? o._selectBackground : o._background;
- F(K, l, b);
- var v = A(K);
- z(v, 0, 0, 1),
- v.clearRect(0, 0, l, b),
- h && t(v, 0, 0, l, b, h),
- m(v, o._borderColor, 0, 0, l, b);
- var R = o._iconColor
- , i = V(o._icon, R)
- , T = I(i)
- , O = U(i)
- , q = o._label
- , E = o.getLabelFont()
- , W = c ? o._labelSelectColor : o._labelColor
- , M = null == q ? oe : s(E, q)
- , g = M.width
- , u = M.height;
- n(o) ? (T && S(v, i, l / 2 - (T + g) / 2 + T / 2, b / 2, o, o, R),
- g && e(v, q, E, W, l / 2 - (T + g) / 2 + T, 0, g, b, "center")) : (T && S(v, i, l / 2, b / 2 - (O + u) / 2 + O / 2, o, o, R),
- g && e(v, q, E, W, l / 2 - g / 2, b / 2 - (O + u) / 2 + O, g, u, "center")),
- v.restore()
- }
- });
- var Iq = function(X) {
- this.button = X,
- this.addListeners()
- };
- q(Iq, X, {
- ms_listener: 1,
- getView: function() {
- return this.button._view
- },
- handle_mousedown: function(w) {
- J(w) && this.handle_touchstart(w)
- },
- handleWindowMouseMove: function(s) {
- this.handleWindowTouchMove(s)
- },
- handleWindowMouseUp: function(d) {
- this.handleWindowTouchEnd(d)
- },
- handle_touchstart: function(o) {
- C(o),
- this.button.isClickable() && (g(this, o),
- this.button.setPressed(!0))
- },
- handleWindowTouchMove: function() {},
- handleWindowTouchEnd: function(E) {
- var p = this
- , Z = p.button;
- Z.setPressed(!1),
- jj(Z, E) && (Z.isTogglable() && (null != Z.getGroupId() ? Z.setSelected(!0) : Z.setSelected(!Z.isSelected())),
- Z.onClicked(E))
- }
- });
- var up = function() {
- var K = this
- , s = K._view = k.createView(null, K);
- K.setHeight(B),
- K.setWidth(80),
- K._canvas = h(s),
- new Oj(K),
- K.iv()
- };
- q(up, X, {
- ms_v: 1,
- ms_fire: 1,
- ms_tip: 1,
- ms_ac: ["label", "labelFont", "labelColor", "toolTip", "icon", "iconColor", "selected", "pressed", "pressBackground", "padding"],
- _padding: 0,
- _selected: !1,
- _pressed: !1,
- onClicked: function() {},
- onSelectedChanged: function() {},
- onValueChanged: function() {},
- getValue: function() {
- return this.isSelected()
- },
- setValue: function(H) {
- this.setSelected(H)
- },
- onPropertyChanged: function(e) {
- var V = this;
- V.iv(),
- "selected" === e.property && (V.onSelectedChanged(),
- V.onValueChanged(e.oldvalue, e.newValue))
- },
- getToolTip: function() {
- return this._toolTip || this._label
- },
- validateImpl: function() {
- var x = this
- , K = x._canvas
- , Q = x.getWidth()
- , B = x.getHeight()
- , k = x.getCheckIcon;
- F(K, Q, B);
- var Z = A(K);
- z(Z, 0, 0, 1),
- Z.clearRect(0, 0, Q, B);
- var s = x._padding
- , b = x._iconColor
- , $ = V(k ? x.getCheckIcon() : x.getRadioIcon())
- , X = I($)
- , v = U($);
- x._pressed && (Z.fillStyle = x._pressBackground,
- Z.beginPath(),
- k ? Z.rect(s, B / 2 - v / 2, X, v) : Z.arc(s + X / 2, B / 2, Math.min(X, v) / 2, 0, 2 * Math.PI, !0),
- Z.fill()),
- S(Z, $, s + X / 2, B / 2, x, x),
- s += X + 1,
- $ = V(x.getIcon(), b),
- X = I($),
- S(Z, $, s + X / 2, B / 2, x, x, b),
- s += X,
- e(Z, x._label, x._labelFont, x._labelColor, s, 0, 0, B),
- Z.restore()
- }
- });
- var Oj = function(h) {
- this.c = h,
- this.addListeners()
- };
- q(Oj, X, {
- ms_listener: 1,
- getView: function() {
- return this.c._view
- },
- handle_mousedown: function(q) {
- J(q) && this.handle_touchstart(q)
- },
- handleWindowMouseMove: function(Q) {
- this.handleWindowTouchMove(Q)
- },
- handleWindowMouseUp: function(a) {
- this.handleWindowTouchEnd(a)
- },
- handle_touchstart: function(M) {
- C(M),
- g(this, M),
- this.c.setPressed(!0)
- },
- handleWindowTouchMove: function() {},
- handleWindowTouchEnd: function(C) {
- var u = this
- , K = u.c;
- K.setPressed(!1),
- jj(K, C) && (K.handleClick(C),
- K.onClicked(C))
- }
- }),
- i.CheckBox = function() {
- i.CheckBox.superClass.constructor.call(this)
- }
- ,
- q(L + "CheckBox", up, {
- _labelFont: $.checkBoxLabelFont,
- _labelColor: $.checkBoxLabelColor,
- _pressBackground: $.checkBoxPressBackground,
- getCheckIcon: function() {
- return this._selected ? "check" : "uncheck"
- },
- handleClick: function() {
- this.setSelected(!this.isSelected())
- }
- }),
- i.RadioButton = function() {
- i.RadioButton.superClass.constructor.call(this)
- }
- ,
- q(L + "RadioButton", up, {
- ms_ac: ["groupId"],
- _pressBackground: $.radioButtonPressBackground,
- _labelFont: $.radioButtonLabelFont,
- _labelColor: $.radioButtonLabelColor,
- getRadioIcon: function() {
- return this._selected ? "radioOn" : "radioOff"
- },
- onPropertyChanged: function(s) {
- var H = this
- , V = H._view.parentNode;
- H.iv(),
- null != H.getGroupId() && "selected" === s.property && (V && V.handleGroupSelectedChanged && V.handleGroupSelectedChanged(H),
- H.onSelectedChanged(),
- H.onValueChanged(s.oldValue, s.newValue))
- },
- handleClick: function() {
- this.setSelected(!0)
- }
- }),
- i.Slider = function() {
- var g = this
- , c = g._view = k.createView(null, g);
- g.setHeight(B),
- g.setWidth(80),
- g._canvas = h(c),
- new Mk(g),
- g.iv(),
- g.enableToolTip()
- }
- ,
- q(L + "Slider", X, {
- ms_v: 1,
- ms_fire: 1,
- ms_tip: 1,
- ms_ac: ["value", "min", "max", "step", "button", "toolTip", "instant", "thickness", "padding", "background", "leftBackground"],
- _min: 0,
- _max: 100,
- _value: 50,
- _step: R,
- _instant: !0,
- _button: $.sliderButton,
- _thickness: $.sliderThickness,
- _padding: $.sliderPadding,
- _background: $.sliderBackground,
- _leftBackground: $.sliderLeftBackground,
- onPropertyChanged: function(M) {
- var z = this
- , n = M.property;
- ("min" === n || "max" === n || "step" === n) && z.setValue(z._value),
- z.iv()
- },
- adjustValue: function(M) {
- null == M && (M = 0);
- var X = this
- , J = X._min
- , e = X._max
- , V = X._step;
- return J > M && (M = J),
- M > e && (M = e),
- V > 0 && (M = Math.floor((M - J) / V) * V + J),
- M
- },
- getToolTip: function() {
- return this._toolTip || H(this._value)
- },
- getValue: function() {
- return this._value
- },
- setValue: function(s) {
- var T = this
- , H = T._value;
- s = T.adjustValue(s),
- H !== s && (T._value = s,
- T.fp("value", H, s),
- T.onValueChanged(H, s))
- },
- onValueChanged: function() {},
- onEndValueChanged: function() {},
- drawBackground: function(p, C, v, U, W) {
- t(p, C, v, U, W, this.getBackground())
- },
- drawLeftBackground: function(T, h, m, n, H) {
- var S = this.getLeftBackground();
- S && t(T, h, m, n, H, S)
- },
- drawButton: function(N, c, E, z, I) {
- S(N, V(this._button), c + z / 2, E + I / 2, this, this)
- },
- getButtonWidth: function() {
- var s = V(this._button);
- return s ? s.width : 0
- },
- validateImpl: function() {
- var X = this
- , P = X._canvas
- , d = X._min
- , L = X._max
- , K = X._value
- , W = X._padding
- , o = X._thickness
- , q = X.getWidth()
- , Z = X.getHeight()
- , x = X.getButtonWidth()
- , v = (Z - o) / 2
- , h = x / 2 + (K - d) / (L - d) * (q - 2 * W - x);
- F(P, q, Z);
- var J = A(P);
- z(J, 0, 0, 1),
- J.clearRect(0, 0, q, Z),
- X.drawBackground(J, W, v, q - 2 * W, o),
- X.drawLeftBackground(J, W, v, h, o),
- X.drawButton(J, W + h - x / 2, 0, x, Z),
- J.restore()
- }
- });
- var Mk = function(f) {
- this.slider = f,
- this.addListeners()
- };
- q(Mk, X, {
- ms_listener: 1,
- getView: function() {
- return this.slider._view
- },
- handle_mousedown: function(K) {
- J(K) && this.handle_touchstart(K)
- },
- handleWindowMouseMove: function(B) {
- this.handleWindowTouchMove(B)
- },
- handleWindowMouseUp: function(E) {
- this.handleWindowTouchEnd(E)
- },
- setValue: function(c) {
- var C = this.slider
- , p = C.getPadding() + C.getButtonWidth() / 2
- , A = C.getMin();
- C.setValue(A + (Y(c, C._canvas).x - p) / (C.getWidth() - 2 * p) * (C.getMax() - A))
- },
- handle_touchstart: function(P) {
- var L = this;
- C(P),
- L.setValue(P),
- g(L, P),
- $.showToolTip(P, L.slider.getToolTip(P))
- },
- handleWindowTouchMove: function(w) {
- this.setValue(w),
- $.showToolTip(w, this.slider.getToolTip(w))
- },
- handleWindowTouchEnd: function(q) {
- this.setValue(q),
- this.slider.onEndValueChanged(),
- $.hideToolTip()
- }
- }),
- i.ComboBox = function() {
- var Y = this
- , _ = Y._view = k.createView(null, Y)
- , N = Y._listView = new i.ListView
- , e = Y._canvas = h(_)
- , t = N._view
- , c = N.sm();
- Y.setHeight(B),
- Y.setWidth(80),
- c.setSelectionMode("single"),
- N.drawRow = function(L, C, c, p, i, V, n) {
- Y.drawRow(L, C, c, p, i, V, n)
- }
- ,
- _.style.display = "inline-block",
- k.setBorder(_, $.comboBoxBorderColor),
- t.style.boxShadow = "0px 0px 10px " + $.comboBoxShadowColor,
- null != $.baseZIndex && (t.style.zIndex = parseInt($.baseZIndex) + 1 + ""),
- t.addEventListener("mousemove", function(C) {
- c.ss(N.getDataAt(C))
- }, !1),
- t.addEventListener("keydown", function(r) {
- if (k.isEnter(r)) {
- var H = c.ld();
- H && (Y.setValue(H.value),
- Y.close())
- }
- k.isEsc(r) && Y.close()
- }, !1),
- _.addEventListener("keydown", function(U) {
- (k.isDown(U) || k.isUp(U)) && Y.open()
- }, !1),
- N.onDataClicked = function(C) {
- Y.setValue(C.value),
- Y.close()
- }
- ,
- _.addEventListener(a, function(w) {
- if (J(w)) {
- var O = w.target;
- (O === e || O === _) && (C(w),
- Y.toggle())
- }
- }, !1),
- Y._handleWindowClick = function(R) {
- if (J(R)) {
- var X = R.target;
- X === Y._input || t.contains(X) || X === _ || Y.close()
- }
- }
- ,
- Y.iv()
- }
- ,
- $.def(L + "ComboBox", X, {
- ms_v: 1,
- ms_fire: 1,
- ms_tip: 1,
- ms_ac: ["dropDownIcon", "dropDownWidth", "toolTip", "strict", "indent", "background", "labelFont", "labelColor", "labelSelectColor", "maxHeight", "selectBackground", "value", "values", "labels", "icons", "editable"],
- _strict: !0,
- _editable: !1,
- _maxHeight: $.comboBoxMaxHeight,
- _labelFont: $.comboBoxLabelFont,
- _labelColor: $.comboBoxLabelColor,
- _labelSelectColor: $.comboBoxLabelSelectColor,
- _background: $.comboBoxBackground,
- _dropDownWidth: R,
- _dropDownIcon: $.comboBoxDropDownIcon,
- _selectBackground: $.comboBoxSelectBackground,
- _indent: T,
- getListView: function() {
- return this._listView
- },
- onPropertyChanged: function(G) {
- this.iv(),
- "value" === G.property && this.onValueChanged(G.oldValue, G.newValue)
- },
- onValueChanged: function() {},
- getToolTip: function() {
- return this._toolTip || this.toLabel(this._value)
- },
- getLabelColor: function(U, i) {
- return i ? this._labelSelectColor : this._labelColor
- },
- isEqual: function(V, s) {
- return this._strict ? V === s : V == s
- },
- toLabel: function(v) {
- var t = this
- , U = t._values
- , k = t._labels;
- if (k && U && k.length === U.length)
- for (var $ = 0; $ < U.length; $++)
- if (t.isEqual(U[$], v))
- return k[$];
- return null == v ? "" : v + ""
- },
- toIcon: function(Q) {
- var S = this
- , v = S._values
- , W = S._icons;
- if (W && v && W.length === v.length)
- for (var Y = 0; Y < v.length; Y++)
- if (S.isEqual(v[Y], Q))
- return W[Y];
- return null
- },
- drawValue: function(D, p, $, T, M, K, j) {
- var d = this
- , z = d._indent
- , r = d.toLabel(p)
- , P = V(d.toIcon(p));
- P && (S(D, P, T + z / 2, M + j / 2),
- T += z),
- r && e(D, r, d.getLabelFont(p, $), d.getLabelColor(p, $), T, M, 0, j)
- },
- drawRow: function(e, J, H, v, W, V, O) {
- var X = this
- , y = J.value
- , Z = X._indent;
- H && t(e, v, W, V, O, X._selectBackground),
- X.drawValue(e, y, H, v, W, V - Z, O)
- },
- validateImpl: function() {
- var c = this
- , _ = c._canvas
- , m = c._indent
- , M = c.getWidth()
- , o = c.getHeight()
- , G = M - m
- , d = c._background || ""
- , ld = c._dropDownBackground || d;
- c._view.style.background = d,
- c._listView._view.style.background = ld,
- F(_, M, o);
- var X = A(_);
- z(X, 0, 0, 1),
- X.clearRect(0, 0, M, o),
- S(X, V(c._dropDownIcon), G + m / 2, o / 2, c, c),
- X.beginPath(),
- X.rect(0, 0, G, o),
- X.clip(),
- c.drawValue(X, c._value, !1, 0, 0, G, o),
- X.restore()
- },
- isOpened: function() {
- return !!this._listView._view.parentNode
- },
- open: function() {
- var G = this
- , S = G._listView
- , Q = S.dm()
- , h = G._values || []
- , r = h.length;
- if (!G.isOpened()) {
- Q.clear();
- for (var A = 0; r > A; A++) {
- var u = new p.Data
- , R = h[A];
- u.setName(G.toLabel(R)),
- u.value = R,
- Q.add(u),
- G.isEqual(R, G._value) && Q.sm().ss(u)
- }
- var o = j()
- , W = o.left
- , V = o.top
- , n = o.height
- , F = G._view.getBoundingClientRect()
- , J = F.left + W
- , g = F.top + V
- , m = F.height
- , f = G.getIndent()
- , K = G.getWidth()
- , w = G.getHeight()
- , E = J + 1
- , s = g + m
- , M = G.getDropDownWidth() || K
- , e = r * w;
- if (G._maxHeight > 0 && (e = Math.min(e, G._maxHeight)),
- S.setRowHeight(w),
- s + e > V + n && (g - V > V + n - g - m ? (e = Math.min(e, g - V),
- s = g - e) : e = V + n - s),
- G._editable) {
- var L = G._input = $.createElement("input", G.getSelectBackground(), G.getLabelFont(), G.toLabel(G._value));
- document.body.appendChild(L),
- x(L, J, g + 1, K - f, w),
- L.addEventListener("keydown", function(W) {
- k.isEnter(W) ? G.setInputValue(L) : k.isEsc(W) && G.close()
- }, !1),
- G.onInputCreated(L)
- }
- document.body.appendChild(S.getView()),
- x(S, E, s, M, e),
- S.setFocus(),
- p.Default.callLater(function() {
- y.addEventListener(a, G._handleWindowClick, !1)
- }),
- G.onOpened && G.onOpened(),
- k.closePopup(G)
- }
- },
- onInputCreated: function() {},
- setInputValue: function(M) {
- var c = this
- , p = c._labels
- , u = c._values
- , j = M.value;
- if (p)
- for (var P = 0; P < p.length; P++)
- j === p[P] && (j = u[P]);
- "string" == typeof j && u && u.length && "number" == typeof u[0] && (j = parseFloat(j)),
- c.setValue(j),
- c.close()
- },
- close: function() {
- var w = this;
- w.isOpened() && (o(w._listView._view),
- w._input && (o(w._input),
- delete w._input),
- y.removeEventListener(a, w._handleWindowClick, !1),
- w.onClosed && w.onClosed(),
- $.popup === w && delete $.popup),
- w.setFocus()
- },
- toggle: function() {
- var H = this;
- H.isOpened() ? H.close() : H.open()
- }
- }),
- i.BaseDropDownTemplate = function(L) {
- this._master = L
- }
- ,
- $.def(L + "BaseDropDownTemplate", X, {
- ms_ac: ["master"],
- getView: function() {},
- onOpened: function() {},
- onClosed: function() {},
- getValue: function() {},
- getWidth: function() {},
- getHeight: function() {}
- }),
- i.MultiComboBox = function() {
- var f = this
- , l = f._view = k.createView(null, f)
- , N = f._canvas = h(l);
- f.setHeight(B),
- f.setWidth(80),
- l.style.display = "inline-block",
- k.setBorder(l, $.comboBoxBorderColor),
- l.addEventListener("keydown", function(w) {
- (k.isDown(w) || k.isUp(w)) && f.open()
- }, !1),
- l.addEventListener(a, function(u) {
- if (J(u)) {
- var o = u.target;
- (o === N || o === l) && (C(u),
- f.toggle())
- }
- }, !1),
- f._handleWindowClick = function(H) {
- if (J(H)) {
- var I = H.target
- , G = f._dropDownComponentInstanceView;
- I === f._input || I === l || G && G.contains(I) || f.close()
- }
- }
- ,
- f.iv()
- }
- ,
- $.def(L + "MultiComboBox", X, {
- ms_v: 1,
- ms_fire: 1,
- ms_tip: 1,
- ms_ac: ["dropDownIcon", "toolTip", "background", "labelFont", "labelColor", "value", "editable", "indent", "dropDownComponent"],
- _editable: !1,
- _background: $.comboBoxBackground,
- _dropDownIcon: $.comboBoxDropDownIcon,
- _indent: T,
- _labelFont: $.comboBoxLabelFont,
- _labelColor: $.comboBoxLabelColor,
- onPropertyChanged: function(E) {
- var p = this;
- p.iv(),
- "value" === E.property && p.onValueChanged(E.oldValue, E.newValue)
- },
- onValueChanged: function() {},
- getDropDownComponentInstance: function() {
- return this._dropDownComponentInstance
- },
- getToolTip: function() {
- return this._toolTip
- },
- validateImpl: function() {
- var u = this
- , c = u._canvas
- , t = u._indent
- , g = u.getWidth()
- , E = u.getHeight()
- , Q = g - t
- , G = u._background || "";
- u._view.style.background = G,
- F(c, g, E);
- var v = A(c);
- z(v, 0, 0, 1),
- v.clearRect(0, 0, g, E),
- S(v, V(u._dropDownIcon), Q + t / 2, E / 2, u, u),
- v.beginPath(),
- v.rect(0, 0, Q, E),
- v.clip(),
- this.drawValue(v, 0, 0, Q, E),
- u._input && u._input.value !== u._value && (u._input.value = null == u._value ? "" : u._value),
- v.restore()
- },
- drawValue: function(J, i, I, M, m) {
- e(J, this._value, this.getLabelFont(), this.getLabelColor(), i + 1, I, 0, m)
- },
- isOpened: function() {
- var w = this
- , j = w._dropDownComponentInstanceView;
- return !!j
- },
- open: function() {
- var _ = this;
- if (!_.isOpened()) {
- var N = $.getClass(_._dropDownComponent)
- , u = _._dropDownComponentInstance = new N(_)
- , M = _._dropDownComponentInstanceView = u.getView()
- , F = j()
- , d = F.left
- , n = F.top
- , T = F.width
- , G = F.height
- , W = _._view.getBoundingClientRect()
- , m = W.left + d
- , O = W.top + n
- , i = (W.width,
- W.height)
- , g = _.getIndent()
- , Q = _.getWidth()
- , o = _.getHeight()
- , R = m
- , s = O + i
- , D = u.getWidth() || Q
- , v = u.getHeight();
- if (s + v > n + G && O - n > n + G - O - i && (s = O - v),
- R + D > d + T && (R -= R + D - d - T),
- _._editable) {
- var b = _._input = $.createElement("input", $.comboBoxSelectBackground, _.getLabelFont(), _._value);
- document.body.appendChild(b),
- x(b, m, O + 1, Q - g, o),
- b.addEventListener("keydown", function(E) {
- k.isEnter(E) ? (_.setValue(b.value),
- _.close(!0)) : k.isEsc(E) && _.close(!0)
- }, !1),
- _.onInputCreated(b)
- }
- M.style.boxShadow = "0px 0px 10px " + $.toolTipShadowColor,
- M.style.position = "absolute",
- null != $.baseZIndex && (M.style.zIndex = parseInt($.baseZIndex) + 1 + ""),
- document.body.appendChild(M),
- M.focus(),
- x(u, R, s, D, v),
- u.onOpened && u.onOpened(_._value),
- y.addEventListener(a, _._handleWindowClick, !1),
- _.onOpened && _.onOpened(),
- k.closePopup(_)
- }
- },
- onInputCreated: function() {},
- close: function(I) {
- var v = this;
- if (v.isOpened()) {
- I || v.setValue(v._dropDownComponentInstance.getValue());
- var L = v._dropDownComponentInstance
- , e = v._dropDownComponentInstanceView;
- L.onClosed && L.onClosed(),
- o(e),
- delete v._dropDownComponentInstanceView,
- delete v._dropDownComponentInstance,
- v._input && (o(v._input),
- delete v._input),
- y.removeEventListener(a, v._handleWindowClick, !1),
- v.onClosed && v.onClosed(),
- $.popup === v && delete $.popup
- }
- v.setFocus()
- },
- toggle: function() {
- var J = this;
- J.isOpened() ? J.close() : J.open()
- }
- }),
- i.Image = function() {
- var w = this
- , c = w._view = k.createView(null, w);
- c.onmousedown = C,
- w.setHeight(B),
- w.setWidth(80),
- w._canvas = h(c),
- new bp(w),
- w.iv()
- }
- ,
- q(L + "Image", X, {
- ms_v: 1,
- ms_fire: 1,
- ms_tip: 1,
- ms_ac: ["icon", "iconColor", "stretch", "toolTip", "borderColor", "background"],
- _borderColor: $.imageBorderColor,
- _background: $.imageBackground,
- _stretch: "centerUniform",
- onClicked: function() {},
- onPropertyChanged: function() {
- this.iv()
- },
- validateImpl: function() {
- var a = this
- , I = a._canvas
- , X = a.getWidth()
- , D = a.getHeight()
- , R = a._iconColor
- , u = V(a._icon, R)
- , J = a._background;
- F(I, X, D);
- var W = A(I);
- z(W, 0, 0, 1),
- W.clearRect(0, 0, X, D),
- J && t(W, 0, 0, X, D, J),
- this.drawImage(W, u, 0, 0, X, D, R),
- m(W, a._borderColor, 0, 0, X, D),
- W.restore()
- },
- drawImage: function(U, A, z, B, Z, R, m) {
- A && $.drawStretchImage(U, A, this._stretch, z, B, Z, R, null, this, m)
- }
- });
- var bp = function(I) {
- this.image = I,
- this.addListeners()
- };
- q(bp, X, {
- ms_listener: 1,
- getView: function() {
- return this.image._view
- },
- handle_mousedown: function(l) {
- J(l) && this.handle_touchstart(l)
- },
- handleWindowMouseMove: function(G) {
- this.handleWindowTouchMove(G)
- },
- handleWindowMouseUp: function(s) {
- this.handleWindowTouchEnd(s)
- },
- handle_touchstart: function(f) {
- C(f),
- g(this, f)
- },
- handleWindowTouchMove: function() {},
- handleWindowTouchEnd: function(p) {
- var N = this
- , Y = N.image;
- jj(Y, p) && Y.onClicked(p)
- }
- });
- var Sn = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAACXBIWXMAAAsTAAALEwEAmpwYAAABNmlDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjarY6xSsNQFEDPi6LiUCsEcXB4kygotupgxqQtRRCs1SHJ1qShSmkSXl7VfoSjWwcXd7/AyVFwUPwC/0Bx6uAQIYODCJ7p3MPlcsGo2HWnYZRhEGvVbjrS9Xw5+8QMUwDQCbPUbrUOAOIkjvjB5ysC4HnTrjsN/sZ8mCoNTIDtbpSFICpA/0KnGsQYMIN+qkHcAaY6addAPAClXu4vQCnI/Q0oKdfzQXwAZs/1fDDmADPIfQUwdXSpAWpJOlJnvVMtq5ZlSbubBJE8HmU6GmRyPw4TlSaqo6MukP8HwGK+2G46cq1qWXvr/DOu58vc3o8QgFh6LFpBOFTn3yqMnd/n4sZ4GQ5vYXpStN0ruNmAheuirVahvAX34y/Axk/96FpPYgAAACBjSFJNAAB6JQAAgIMAAPn/AACA6AAAUggAARVYAAA6lwAAF2/XWh+QAAA2MUlEQVR42uxddYwsafW9jbu7u7sTHIIGDRYsSLAgQYIECbBBggQJEixIsABL0KBBFgm++C6wLMsuLCyysMh7u/vmvan6/fGbntT75sq597tfdfVMTfIyb6qrq3t6+px7zrn3+3rR931PRD39/5f23TrWA7d5jiG3tfzXVZzjOY4ci5yz6p+j52S9rpFzWvzzvretYwjetGOHfV90XTcTwMgEMCDdKRAAZRPA4PdrRgDAa4i89uI/7TzutvIYU1i3jw1vk44Nv5bHtrC6/f/Nzc2eiKjruv7QoUM9EdHy+4EDB/ozzzyzJyL63//+1xMR/eMf/+iJiI455pieiOiII46YCWAmgJkA9jQBbF1kTxKA8WbogOcyGQvQ9/0oEr8S3CECVB5T+t0JOCcC5h0/MwAujx0Gcu625dcQ4Mufl8eG/9/c3OwPHTq0TQAHDx7sNzY2toFPRHTGGWf0+/bt64mITjvttJ6I6C9/+UtPRHTsscf2RERHHnnkTAAzAcwEsKcJYEsyrDUBKEAmmmgIaLypUyyAATSXBfASzNZjm7+HAExI6nOvoQLozgNoTsaXYOe+M//fQQAS2JfnL8G+ubl5GOiXgD906FB/6NCh/uDBgz0R0cbGRr8E/lL279+/v19K/3/+8589EdEpp5zSExEdd9xxPRHRUUcdNRPATAAzAexpAti6yKQJoPiDjRUK1gRLGRaAFDC7JXzEIoAEAgF56+/YeYNR7jgD4A6Q8R0I9ijQWVnPhXoc2IeksAT+EPRL2b8kgIMHD24TwDDwO+OMM7YJ4D//+U9PRPSvf/2rJyL661//2hMRnXDCCT0R0dFHHz0TwEwAMwHsaQLYCg8mQQBc62SVbUCgZaQBncBwK2wBPABVQjyqIQDNykikA4CdO4+kv8nwcRRQdxGgW8Dnji0BrbXwSgIoQ77hv6HsX4Z+ZfC3JIDTTz+9JyLat29f/9///vewEPBvf/tbT0R00kknbYeBiy3vMDoBFGBf2RyAAvKqLoBwXVgBgEk5RVN6SxE4byck3xAqdYf6deFcjgBIOgclAAv0HAmU4B+CfJjqD8Feev6SAIZVf0gAGxsbhxHAsvIvCWD//v07CGA5B3DyySf3RETHH3/8TAAzAcwEsKcJYEs6NCcAA/DNCQCcACNvBuAAOmIBzES+AcDJe3/OuiDgHrxear6hSHqVADRPX5xDUeAjX6Wn58A/7O8P0/6yz1/6/iEBLJP/IQEsv+/bt2+7C7AkgLIbcOKJJ84EMBPATAB7mgC27tCMAJg/+CiTgAmzAR1wPTTtJ0fghyT2kk0gFLCWZTACPArKe5EABaCTJPU1AhBkfqck94dJdgn03PFS8g/BLwV9XOA3nOcvgW8RwJlnnrkjBBzOASy7AUsCWIaBJ598cr/YukM6AQxeTKTaVxOAAFCqUAyeQSAC7+sehFF+vyxPT2BF74zhG2TQRgP7YedJIOa8vkQABWi7qL8nQwYMSaD0+xIBDBfySIn/EvwlASz9/1ABaASwzAKW7cBlFnDKKafMBDATwEwAe5oA9u/f34IAOOmfTgAMKDLtAtQF8FgDBezktQCAR+9rJD+weKbzgFsBcOfo2XcCyMvjxAC8A8Fuevyyn89Jf40AuBFfiQCGsn+JrYMHD/YHDhzY7gIMLcBwEGi5GKjsBgytwGLrpCwCoGJyL50AsqYC0XXhxv086/57JynAakTy+MbATemzzfsbP/dAmAcpAG2YRzgH9fdVwJcqfkkIXNBXgr9cy48QwBLwQxUgEcDpp5++TQBLJfDvf/97hxJYbN2YQQA1gZ9JAAapZACeAiDunI8BLYfdAgV5JggFRUDo+QYBkEUAQMBHgrTvkEpvSHyEALqyikcSfqnaD8lgON47HO0dkoDW81/+/+DBg9vHNjY2DrMAw6W/3Cjw6aef3m+peyrDwCURnHrqqTMBzAQwE8CeJoAtf1BLAOSY44cJoCCUUduBYAgI5QfAhhZuC6D18Z2Ap4jkZ1p1LAFE5L4S6nWatDdkf6e19TQ2sFp9mvTnlvcOCWBoATgCGFoAbvlvSQDDMHBJAGUWMLQCiy1WCBGAkPRXE4BjTDitIwCu6CNgIQ9EHoFFNFQR4pGUCRihHinJPBTwAeFe5xjP7TQFwO2rt/xv13Wdp+Jrq/g40GvDPqUK4BTAcIefof8vx39L/y8pgDPOOKMfLgzilMBpp502E8BMADMB7GkC2JIDUQtAxnp9NwGAOUJaW9BYDEQVUp/QxN/KDsAx2z4AcHYOQEjsO2MnnQ7o26OtPY4UiOsCDOU96bvydFG/PyQDRP5z037cWn9p7Hdzc3Mb/JIFKG1AaQE4AuCswGKrNxghAKnXHyIA59xAX9MaNABHnv0AhOzDu6UVOkOvrb6DB3PACq6O7Ar3J40ANEKw2n0l0IeFp6zuXIuv20KqJ/njKn4526+BnwP98Jg298+1AbVBoJIIhgRQZgFDJbDY6gmujACUiUHvIFAN8Mkr44194z33tToD5JyzJ6dkJ5AQyoU8kLwfAtWyAMD3zurpS/39rkzyKib8pN18pGEfKQAsLYAWAh46dGiHBRjOAQztwJIAhkNBw+/DCcHF1lQQTAAMYMMEAIDf6hDUAJ8CQz7k3KTSzAyELa3NoRvOo1uTeca4bYcM9QgKgEB/Xz5niQA6YZutDkn4uRYfRwAaGXDg5yq/tthH2uKLIwEuA4goAI4ANCUwE8BMADMB7GUCOPXUU70WwBr3hQjA0eOnROAT+Xv5pJ0jPIZrU0uyt7k21wtoHl4byy1DQGvprdbjLy0ZRxrIgM/Q0zPHd8z5D/w9C+zhOeguPlbgZ438cgt+pIU/5RLgYQjIdQG4HYGGNmBpC8o9AjgrsNhaGTQqATiTfq1D0AL4ntu9qwHZdqNQbcnKCQKTegTO6ZM1xCNdT1qko6T4UAbApf1DZRCd60dm/L1tPykDGJLAEOwlGXAKYJgBcAQwVAESAXBKYPH3v/8dIoBCrsMbgoCBHzoKnNIRQMJAAMSkLNvthOdv7ggEjvmSUtG9KT4ZoR+sACx5z230oZECI+c7AeSdFOhxIeASlJ7kHyUArvXHyX9uDmC49JcjgNICDENBjgC48eDh93379vWLrd1BEAVAYPVGlwp7CICc1ZqieYAxtkseSW9UbXE5LMnbX8NzAECbDvL0WgsPHN9V/X4p6yNpP9MG5IZ4OmRZr+b5OSKQ/g09fkkA5e4/ZReA2xOgHAuWCGBoBbjx4FIJzAQwE8BMAHuZALY+LWQMAnAN+4AdAjgYREhHSPgJHaZR1tZL3t5M38GEvmaUl1BC0Pr+noEeLfArp/aEDIAUeS+BvEO37/as+NMIoBwF5mYBhkNAZRZQjgKXHYFhBlCuECyHgrjv+/fv7xdbO4S2JoDQJiGI7w+An8g31GNtwkHA5hyk+PSOeY0sMIdCPmSQZ/hclZSfpLagFvoJO/N2UluPaeftCPu2wNhZm3hqXcDyk3zQ1F8bACrHfTklYE0ClmQgEYA1FagpgcXWZ4arwDd6/y0IgBzAbgF8ArbEstp9hFoAZScdstbaAxWcEEJAb+eur4z5dgjYy4ouzPaTlPYvbYSR8Hdar1/bzlsL/6T2H9cGLNf/W4uBlmAvQ8Al+LnlwdxMALdOYJsA/vznP/eByu8hAOTDPYmcHwbaAPzISj8CvDqR/hl25Ozfcy061/r8FoAvF/Ewt5sWQBjuIWn/vjLtl8Z8rQygbPFx1d4a9+X2/Surv7YACF0LMMwENAXAbRKiLRRafl9sfUzQVAiAHF6dorZAez5CCEiGN0d8PSkWgJwBn7hPPxrqgYAnadUeZzkifp9byGMN/KBDPkUfv4t6fyT84zb+4Db+LBcDDfcD1AiAywM4AtCygOGU4DYB/OlPf2pFAJ7EX0v6yajCMDlYz4WT8cDUXg/6etYCKPKelIDPSv1Jq+CRCl++HuAATweEe6IF0IDuXdvf/f+XutxXG/m1PuWnlPza1t/SYiBtFJjLA8q5AIkANCswE8BMADMB7GUC+OMf/7hqAiBj3p4agJ8cSb/2GB1ABlpSz12DLH8vLa31LNbhCMGzlBcA+477cD1/oYdvAr2cA/Au70W3946k/1zwF10MVNoAjgDKluCQCDQCOPPMM/vFSSed1IIAPJ7eGvShRPDDYaDQBTArOpIBWEoD8O9I2y9CCCS07KztuUjYsJNVDZIqKIlCGvhhAjwzBNzc3OyYXMDsACAkwO36uySBLAIolYClADgC4IhgceKJJzYhAHDoBwE3jQR+Amb0kVRfSu09FkBbukvKYh7StuNySv7emgOwugDcqj5tjp+Y/fsKMHeSvLdCwCUBoOGfteHH8tol+KUhIIkAyjBQIoBSCUgKACGAIREs/vCHP6j7/Qk9edJSfwOU5FjkY9mDHvDpLmLg9vVDJD54jmUBpBYf2xo02nraqC5Zi3kckp/IuTe/RBJWvz/6tQU0dhLQkv2W70fmALQcoFwZWE4HclOB0mhwSQBDEhAJ4IQTTlgZAQDDPqY98ILfmwUI4NMyAAI27OwNgKtDPsbqPIooAFTyS+cL4O+0DT2s7bwEC0CcZeB6+8hKP236T/uI7+U5ZfAXIQBpb4BSAXA2gNsrQFohWG4hduDAgX7x+9//Pp0AgKk/Avr11ihwDfhNYghkAKR4eMgCAIEeaWvtEUvAKQAr5VckPymZgLaDz44pPmnkV7IAXI9fW+67fBxE9ktKQLIEXPpfzgGU8wDSZODQAgzVAacApM1CUAVw4MCBfnH88cdnEYBn7NcaDoJUBJDSeyS/CmJE0ittPJcFQEhBaQOStQOvJOFrJD8BH8wphHidNduvzfxbGcAAsJ0k+1Hvr9kBiQTKKs99LsDQ/0sWgAsEue3CNALgpgUXv/vd78YkAMnTE+GfBai2DA0Zj4LfXA2Y+bNGLFy1J/0jtBFPT9pkH5rySwQhhICELPPN8v3MOG+Hen8O6JIaQOYArFFgiwRKyc+tE+AUwNAycC3CAwcO9IvjjjsujQDAlYLVBOABv3QbSApiq1Dp4Us7+LgsgBUCGltycRLfrOgWwC1wI2v3pbFfYY+/kgU6YQPPLrLTj7XbjzYCLJEAB3iu6i/PHY4CczbAWiFYkkO5bRinAA4jgN/+9rdjEQAyG2CSgzYsFFAF5Ez2SWjPkRHimRZAauFx1ZeMTTURgBP4MVxa6GdZAI40ymEhrgsgbfAh9fuV4yYJWCv/SqCXSoBrA5YgL/cCkHIBrhvgJQBNAbAE8Jvf/CaDACTP7iEAMsZ1CQRlLfjJ2OzDI+VR/45UeykEhAEe8fQaQShLfYmMT+yJyn7aud13r80AlBkANwhkDf9o3h8J/7gdgbghIG2nYE9HAFUAGxsb/eLXv/71GASAhHoawN0g9xw3knxCOgXaKK9mGXrsQzWRyi8NAkFtPkQBGF0B5P/cuv3OI/Wlpb5S1R8M7HTcUmAN7Ijvl1qAyG5AUmeA2x0oQgCWAtjY2OgXxx57bAoBCJ4aIQDSQKbcpqoCJ/jhJF8BNClr85H9AAic0+cqPiGpv9DmI6TtZ435agl/uZintADF9QmR+lwbUFrjXy4Gsj7nTwoBEd/v3RKsDAK14SCODLiWoKQAypxgY2OjXxxzzDGalycj8U8lgIg1qCEFZFhImPVXVwx6pT5Q4XdkB8p6fDdBIADnwEz6J/eaE30Z6f+QMEpgW95f6/1LAaClBLgtwdAVgdZ0oJcASgXAEsCvfvWr3qj8asvPSO25Ck7kC/8IAGILRSAl/NEMgKQ98YxuAUn77VmA1lL8qAIwdvYhQ/J30nBPWdHLzoC1sk+bAVhaAKn1Z5EAYgesOQCOBLgwUJsNsDYM4ZYMl+sCSiJY/PKXvxyFACyFoIV/Rr++lSLoGGlvZQCkLN6RrtlZVqEEq7fiI5IeUQAlcLmMQFMJmtznbIFD6qsZwHIOQFv7L7UDUe8v2YES5FxLMIMANAWgKYHFL37xi1URgNbeM2+rJQXrmNCykzoF8H0D4V70mAhgrwIoW3Pefj8q/w1rQNLIL0cMZa9/GAJKg0C1JGBtCIIMBWURABcMsgTw85//vBUBSAGeRQCIZehRUoiAXwEnafP21n1BuW9ZgCYVH1nYwygAMwTMsABoBsCl/Jzk1/r/mveX8oAyAOTmAKxdgrnVgOVHhnHLhTULwO0lUA4LLX72s59VE4Di3QlM9jWQUxT86LkCIUjyXvX9EmCNxJ+cY71wxbcGe5g2H6sIrNCP+T8SAnLXVS2A0AYMZwBeEkCXAy+PS1Wf2zCUmw1ACcD6HAFOARw8eLBf/PSnP40SgOXRIwQAKQalImeoBKvFJ1Z0w+tD0t2a/BNmBdSKD1R31zmKAiBN6kvnIPKfI4bhkA8n/4uq3WmAzyKB8kNBJe+PEkBpA6QxYe4ciAB+8pOfrIwAHCBvAnRDDXBbdYkZAODpCZH7WsAHVHhXxfcoAmNhD3F7Apa2YOjVqdjTP2IBhtfVpP8wA5BSfy7xt45p4R/XApTUgZcAuJWCXBYgWYDDCODoo49uQQCkLOwxQV5BAK5jFiEIIHZ5fQ+QPdXb09MP+H3PvH848BOIBEr7NQsg7Adgtv6iJCBtCiIRgDYfwJFACXKEALjVgywB/PjHP25KAOBkHyVU/1RCALoEkDJwSH8o0OMqtpHqmz97FAB3u7HdF0kr/xzz/ywxSNt8ax0Ba/6fk/6o95esQGkDuAlBZDpQWyocJoAf/ehHUyUAAroC0LGIGlB29RElvdEdIG2k1yPvM1RAjRKwqjwxG3gg1Z6Uz/orx3k5y6ApgdoQ0EsC2iCQhwBqFIBkAYbHFz/84Q/HIoCILVD3BwBbh1FCkD7cw5TvUrYgrerjEn5DOXCqQGoLWim/WeGFkK/TWn7ImK9AEvA+/5K/55TAcFtwj/TXSEAiAGtVYGkRkOlAjgC429wE8IMf/CBMAMLtVn+fHNVfXUfgALuLEIwq7skAKDDQQ4C8N7ODrLQf/D8J+/VxNsO91U8RKpK3BbgkCe8QUGkREBVQ5gHWTABKAFxLkFMAQ1KQLMBhBPD973/fSwDW8l8PASAyn6LARu5ndRUcOQHc2/cm/MD3HXZE2rEH8fxKVwGu+N6ev0UMnFpAMgDPJiAS4D0k4CUAaTiIWxTE5QDc4iBuclAkgO9973tNCEACuEMVqLsDSysLteTeSRCdIyewwj5SZvphRWCFesbobzj1N9p+pE35ccA2ugImKTAgZ9cCWBkAWvWtWQBrDkDbHozbOFQbD+YUQHmbRQBDZbD47ne/OzUCkEDtArvl3y2CUGR8NOyDvD0Ibtd3bbafk+ekfES3p+KXpMAFfqj8L0EMhoNmBqB1AqJWoAQ3FwpKW4ZrBKApgOFtLgL4zne+k0UAkMS3sgUBoC5gg+cgZOBSCRG5j1R8ZYMR1Oez1/SEfAHw77iGtczX0+7TiEHb9UfaCIQjBmtBkKUEhr1+qTOAkIEUCErqALUAhw4d6hff/va3WxMAUtFJ2ywkG+zWNSIqAcwGTLnPVXwkA/BYAoBAIMnvSf2Lpb+EzAFYn/bDVXdrxR+zkhDOANAuANfus1qDHNiH9x9Wee1zBd0E8K1vfWs0AtBIQQJlBNxgn9/6uRMAbIaFyn1NsAOgF+/nSPulUJCy5D4y5CPdjwMr2gXgOgBbIDMzANQOZKkACezaXEAJfEkBSF2CHQTwzW9+M50AgBafp9JTA3AjP3fGDICmEqxsQMwFwGouenwE4EC7T7QI0pQfAm5plLfsDGheX+r3a/J/OCughXycMvBUfe5nZBDIagtqtkBTANycwA4COOqoo0IEoCzkcRFA0CqghFD1M6ISgFSf0Hl+qQVnzQpYAOem9DRJb1X/Us6T8AEfEoAlErC8vtTv57oAHvkvSX1U+nsIQNsrUDtmKYAwAXzjG9/oDeBb03+k+Hmo0hvApjHAbvT5iQOqMMVHtHPPfms60AX2SCZQhnxaus91CZDlvsKWYBaAOwTo0rLf8hrWp/5qfh8ZArJIAWkDchUfVQEc4LU1AxxhDG9ffP3rX58kAaCzAkk/k7Igx60ShEEgCMiIBbDOQTMAowsgen+NICSVgFqAsqJrZIHKf2sOwLICSCvQagNqk4AeFZBOAF/72tdGIYCg/zf3HQQn/dzkIIEYsQho4IfaCEa+WwuEzD6/FvZ5U3/OEjj6++V1d/h1Tf4jU4DLayIhoKcViPxctvq8OUB5njQUVNqDUuqXt20TwFe/+tVVEoC4aAghALSaV5KFSCJoX98a+kEUgZH4Q5kAmgFYikGa8iP+M/5I2vlHsgBcB0BrEXKrAcuf0eQftQIeAuCsgTYJGFEA0qIhkwC+8pWvpBEAA3JzAMgI+pqBH034kTagNQykVG3EFpjncM/P8PyQBdBCP6vnbw3+KOeQtMNPtAPgzQA8SgDJArS1ARwBSOPBHOCt80wC+PKXvzwlArCqfybArXM77Tw07beIBSEFxDp4Aa8FgFaFB7sA7nM8g0CoBUAyALT9F+kKlDKf6wxIE4HckJCHALiJwR0E8KUvfamGACyZHxoZBo65AO+cBZDmANC+vhQgQtUesAVIq4+Aa7gtALKwByUNNO3npL63DVjmCh47gPh/5DZN+mukUB5DOgQuAvjiF7/YnACkVN+zVBioxjAZKLKdkOrOVW+rqjvS/JoMAAa8NgRkDfpohICeY1kADsTCKDELbjQHsOR9DSFY3QDpmLQ+wAoNpQxA6gJsbm72iy984QtTIQAp6afa6o8C3vLwXqlvZAYiKZQJvpILuAHPgdlo/UGEABCG2wJofl87bg0DaZVf8/+RQJCr9lqHQMsDvAoAIoDPf/7zqyAA2OujE4EBwKthoiTjI+Gfs9qbLUCUEIy2oKYm1LX8UsLPXMNc4osSBUoCZW7ArQWwpgFrQc8RAKcMrOlAzhakE8DnPvc5FwEwtxHZHxWOhobiHgOgn4cBrrT4kDYgZBUiYEeqO9mbd5gS36r4VsKPZgCIJUASf+1cLfzTdv1BQ0EtBEQCQHSlIPez1SasJoDPfvazCAGQktpbBIBUewuchFZ7DbDWbQjoAElfBX5krBcFPO38rD4t9Rfn/qU+vjLXb6mIkNxvTQLaYJAEeu02qQOg2QBrWlDqBGiZgdQG3Nzc7Bef+cxnUghAGfSpkv/Biu8GPDIH4CAIdo2A0vKDq721+MdK9RWf3kvLea05AMliIICXcgEh0OskgFskoM0BSJ2BiArQhoG45B9VBdKSYanaW+pgmwA+/elPr5IAzKS/RuJXdA6IC+esdN5b2aVjUk9fkf9aBqCGeBKgtfX9AnBVwAOrASkSAHLEILUBtcqvrRFAB4BKcuC8PtINQABvWQCYAD71qU9FCUACb5gAgIVCZHl6J8hDKb9WeZUpQDcheJUDF9JlSH7JvxuEYI0Cp5EA0gHwyP9MFSCFfdqMgPdnbxZwGAF88pOfnCoBIFOCIYlvKQkj3LPAK60RkBQDl3izbUArJ/AM8hgZAmmf5GsMBhG6PLiszBqZcBuFeEkADf60ToBH+lvdAGkgyPtzFQF84hOfSCEA0B6gYLcIIAvwhPp41NN75T+iKhAbYN1HquDSMc0yIOsAaqq91R1ggKouBvJYgAwSGDwmRADIeLB0ewlslBS2CeDII48cnQACXr8G8CEyMMBNWs9fqNaqlPf4eaSCa9eIhoCagkDAjdgEJOyT1gJI1d9LAN6hIFT+W14fUQXpBPDxj398txMA/H/Q3yO3d+h90DagYBMIVQDKaj9CR321jEADsjIZCCsCyS7UWAAPCSCg51QD19fXyEFaDCTdLoFd2kdgBwF87GMfa0oAyGgvEPZF5b87AHT4f1UloIThlfuoxHcqBBOsZKz1jygCtKprtkDJEapJoAR1CwXgDQbTCeCjH/3oqgnAAnhqxY8QgEQszmQfkvscGJWVgGZbD/X0jtV/JuizLAD3aT/aDMDw76MNA0WDP2voRyIEZA6gxgJYYOeIYpsAPvKRj1QTgGNuQOwMOOV/OuAd4HbdXlHtYb8PAN7MBDTPX0sIFklIQOfOy7IAFgl4QsDyeE0OYAWD6QTw4Q9/OEMBSFuEhQmAex7Bil+TDViEgXQK3G1A7xyAlehbmUBU0kfmABAFIHn9DAvgAX6t/C8JB8kBLFugKQMJ7CoBfOhDH5oSAXjbhtDtSMWPWgDQPiByvpcAbVR8M8SzEn6gNQj3/bPOKcHn6QJELECkLYiQgdUG9HYGIgTAKYVtAvjgBz/oIgCwgpMCADM/MAjAI/mj3QC1ukvThlzFdqb96voAS5JrJOKxCAAZWIRjZgDeToBV6TXvP7xvRgiIjAtHBoGQzgBiIVwE8IEPfGA0AkDlvjMkdEn+YDfAZRGEUWSznYck/GDFhz2/BHAt9UcUgTYKrJ1TAh3pAqCrAT0tQMTne7oAHnVg+XxtnYGbAN7//vdDBFBUb2jcFyELcMkvZVT8LPB7qrOVDWgKApkDqJH8VoXXUn6LELhzpD39EKsgEQN3f8nPR32/RAhWRwBtAyKgtkLD0t9r3YPDCOB973ufRgAkyHeJAMixNgBp99EIFT8aAGphH5ruk8ffWxIfCQI9cwARSxDJALykwHUNpJ2A0CDQsgLeGQFEBXhyAWkmQCMAjRS2CeC9733v1AgAagNGgj3LaiiJfZU9AG4zfwZzgkjolwJ6zt9HSUCT8qjMZ8DZocCPVH6NDFCgo8GgpQhcBPCe97xnLAKAg0EjT6gBtes+EbWAZAOIgrDICCGKBgoAHgJC24DacA8a+Ennah2ADOCjZOAlACT4SyOAd7/73TUEQEDF1gJBKxeA5gESyQGt4GQRRI3cBxSBWfm1Pr9GAMjt1vNABn8ybAHSBdBUglcRWIM/SBfAsgdS68+jCDRS2EEA73rXu5oQgCfwA4FKTskfAT1p6bwU9oEdgCq1oFVzi1g8qb9V9aNS3lIAFtClqUEtHNTOiSoCdEioZg7AIoooAXCKYPHOd75z8gSQWNVd54FkYc0QuAJD8GerC9BUASA/Z5ACA6jOU/2j4R9ynmcMWBsi8hAAaglcBPCOd7xjZQQA5AQehZBODppCAGcBTMIoz9XAu2oFAIaGbpJA/L9nBgDpAGiZgQZyz0QgB1YrH9AWAyH3cRPA29/+9moCAGYA4FzAGB12AbuGHJBrOio6GhiGFIFlDzIUQJbsl6S9Vf29rUCODFDgW4GfJwdABoA8gaGWCZTghgjgbW97WxYBaOEeQgBu+R8AeFUYaIWN6H0tC1GCEanwqDpwEACaC8BgR2wCV80R8HPHpSEgr+z3dgRQGxAlAG3Bj5sA3vrWt0IEAE4J9o7zvQSQBmxnBoAsBqKIAkDzAvR+no5BMAT0KIw+4uuRxUBWDqBN+EWAj4aAlg0ob/d0BlACsGzBDgJ4y1ve0oIA4LUAyBxAQ8lPaGIP3I62Dc3zWyqCWgWQXfERj1+TA0RagN6w0OvzvcSAjPaGCeDNb35zEwJIsgXmz7W3IQEgB1QORFpo5+gOqLMEEjmhQWFGLx8hpYi019J+73EkB6iV/1oWYLUDvXLfqw5gAnjTm97UmgDMxN+q6p5BIQvYzvuHLECWAsgghAwCQKt5+TtZQR7yf8nvIx7fYwFqLQHi86M5QFMCeOMb3xglAETmo5OB6pSfEcK5q78y2GPOACAWwasArNYhGihGb0MB7VEIHrAjuYA08FNrAbSugOX7kXO8t0cIQBsW0iYBu67rF294wxtGIQADsN51AlV5AEIoEbvgrfaadPcoAo8l8PT1EQVQQwLWdb3VH1UBHuBbvt9SA1Yb0GMVmhDA61//+skSQFT+A5XbJBQD9DVdADLSenEDEEsRIIBW2oJhBTAG2LUcQTruVQFopZeGhSRyQEErEUFTAnjd615XTQBGcu8CPJIxOCq7xw5ArT9AlsP5AKIAED9vtAWRFiFlZQLRc6R0Hxn0QS2AFhBGqj+aDUSCQUklICPCGuB3EMBrX/vaTAKIen54DqCysquEELUAwPivSwGAawHM0V5vhUfkvIdQkKqOhICekLAW+AgpeMJALQfwBnqWIggRwGte85pJEYBjDiAjBIyC3lXlrSAPHejRAKtZAqSiezMBjy1AicUa+tE6C1p7D80DsgBv5QCTIoBXv/rVTQjAOfQD5QCeKu9sD3o9PgW7AJ5lwuTJCSwFgrQFUfmOXB+t4oAVMecAkCDQA3RPu7DW/1tqoQb0EAG86lWvGoMAIFKIhITe9p5TDZjXQecAAgrAmwFAkt5QEWR1ChwZAjSgg1zLAno0APQC25sJWP4/ag1SCeCVr3zlqgjA9P81U4JZwWGWBUABD2YC7k6C1hVACAFpA6LARlp7Uthn2QVk0q9l9UcJQLt9VAJ4xSteMQoB1Mr/JAKAicK6DjhIlBICIpYAmfTzAjjSBkQeA5n591b6rDZgLeCt2X50EEg7L5UAXv7yl6cTQEIA2LQLgBBFZIjISQAhW4AAXpv0qyGEmgDQe0wK+1BbgFyvBugelYAEhJZqaEYARxxxhEkAFbK/KQE0Ar27VejNBoIpP0VUg8MyhFt2y8e3QOu5pnUtTwjYkgTQQR7PbegsQAoBvOxlL7O2+5oMAWQDviYDSLAALlXgBXyk7ZdJCJnV3hrbzcoA9iQBvPSlL7U+/stz29qRQE3r0CPhazoBFnjRCh0BtLdrgI76OrsJbgLRZgDGVAHoiK8nALTyAc9ti5e85CW7kgBaZACRNqB0TccUIKoK3JI9s8JnZAA1XYAs+d+CADy3jU4AL37xiydLAN4FRRPIANzWIFMBtA79FFWTShLazD/39/Z0ARDwoud5z0HBjnYAJEvgIoAXvehFkyEAYw5grKpPY1iAMRRAtsRvnQEgjx3x/9xjeIBe4/295OAhACkfcBHAC1/4wikpgCZdAI+SCGQA3pFfK82PLBYSz6us8OFqr2UA0cAPqfJZAWCmHfCQg6cFmEIAL3jBC1ZFAJDHDxJAdQiY2AakCJg9FR2wCeE24JgWQQJrVhsw43gWASDyfRQCeP7znz8GAUSmA60hIxeAvWBHyMSz7gBQBa4WHwKujAruaU16Jv1QcrGqu5UZaOFiSxWQ1QbUWoApBPC85z2vCQEg5IDahGAbMKQcWlkAjw1wnCMCyXvNqOevIBRTAdSQghUARkO/mjZghAAY3EEbgKIB4eK5z33upAigog0YBjrQCSDUv3usgWfoBwUXME1oWpFMie8J8RBl4SUHbxuwZRcAVQejEsBznvOcTAKgimrvnQNokgmgHhyZ7vP6+iRVUNUViAI8iyAkwEYUg6QCWlV9L0nUBIFpBPDsZz+7GuRO6R6dA8iS/XBegPTaK6yBFgBC8wYVoaF4/yxL4AnnPAoAlfw1bUCvtNeugwaA1n08oHYRwLOe9azJEkANqL32wRPQBZJ+FewWUUQqulMtNK34NQoA+B3VQSD09ighoPefLAE885nPHIUAoqFfNqiz2oUev95SFTjBZXr81gCX7oMGe1FpX1P1W3l+T8uvGQE84xnPiBKA2fcPEIAFZFe7r5I43ITiyQEig0A1xIGQSkQBeFp8VlW3ruVN/1vZAG8LMavSIyRh3W8HATz96U9PJwCP3EdAG630tbdFCMR7O2I9UPVRayFqKjxCUjX+3ns+EhR6QR+xAch9ka6ARw24COBpT3vaqggg1BqsWDzUZGbAygG80h21AZ7FQBG7UuPfo77eqwAiFkADNjIIVHM+mu6PSgBPfepTW1iA8CiwJd29QA5YAjV5j+QGrc+LpvgtFUHG91pV4LEAXu+Pnu8hBaQtmE4AT3nKU+CgD/X6qNz3EEAUyFGFoFUIgCQgzx4Ft1f2RwBrVVmAvEIkIaX2VrW3/l7SNWttACLvI9OBKEkgeYBKAE9+8pNTCAAJ7oKtwWaVvsbje8BpXSOgDFSAZ1VoMJcwq2skO0BTeW5DkUhA2JIQao97KrqbAJ70pCeNQQBVnYGa9QS1aiFyTg1ZBOV/9f2m8t2q6N62XSTtryEHL9AjIE8lgCc+8YmTIwAvSbQgiNpzkGplWY0sUE+VFCSwe1QBch+kE5AFem8LL6PKW3mASgBPeMITJk8AY6mAmsGh4LyAS8q3BHWD66m7/XjAjgDOE+plAxzp90+WAB7/+Mc3IYBAoJdqAyIEgVTnyAwAWKVcQIkoiWxw1/7sIY4oQSA5QQTgnvt4A0LteDoBPO5xj6shABXk4GCPtzNQFe6hZIKQhvacssDurcxoRyAD4C0UgTfs81gA6/2iEYi3tedpCXoIA70NJoDHPvaxYxFAWOJ7gd1AEUCVxev/nQB2DSUlANZ9bU9aHyAw8gwC1YA+UvE1VeslAM0KpBPAYx7zmKkRAGIDqqo8ShaB9Qhitc2szJGcwUMGmRU/8jiolK+1AICCVO0CYhMQ4lgpATz60Y+2pv1U4FYEfu7zgp0B83YnuCHVkK0MvMDKygVqCCTL60fDPi9JoKCPLvypbflZtgEhjx0E8KhHPaopASCB3wjtQVfGYFVxtIKjdqKmo5AFSM9zQEK07OdZYwG852UoAg/gUf/fhAAe+chHjkYAnmAwqgKQP6LDFkDneRVEVsX3kEkrwmh5jre6o6BGgFkL+sggD0oMqQTwiEc8wkUAXmmP+v1auzCmYkAJxvtmz5T/LUK4lqD39vi9o7q1FT/aOWihDKLtP5YAHv7wh0+GAFC7EPHyUfUQURnewaMEW+FuPdZI8QhBLN94kftFB3miGUCG5I/Iem/FTyGAhz3sYdUEgILae67XBnhVQCD8g0BdSRpmMNjaayO5g0ea15CGJzT0ALkG0DU9/iwCsM6FCeChD31oCwJokgNkADxDQURajDVTiRlzBTUE0koReCt6TZVvCXhPWp8V+CF5AEQAD3nIQ1ZNAK4ZgWCY18xC1N4nmjV4r9tCIbSS7pHXzwJmBgFEp/4iLb0MAuBUQXnu4sEPfvAkCKB2n4EGKgA+N7OqV2YHTQgiI8hrcQz1/xkZQGYOkJH4pxHAgx70oF1NADUkEG0zZgI5IwMAws10S9DiWG2V9xCFR8qvNQE88IEPnIoFGEUFZFiIaIiVUW3JGJNeRQaQ/RgRoCNyO6viZ4N/pQTwgAc8IIUAlPvDrBftJGTZAm+y7OlKZGcG2cST5cVbADpT1qPArAV8q7Tfk/hDBHD/+9+/KQFUtAdhFRBRDhXbklWHjLWLljIAClTwUYAcBb8n6bcyBMd7o7oLMDkCuN/97hcigGxZX2kDqrMB5+KiKnnuqdqtwTTGtTOu7+kc1CiF1gk/AtSa890EcN/73ndlBOC1AcGKHrEFYRLw7IBUU40zAZ9FCJm5AbKkNgr+7BDQM5HnHeBpTgD3uc99xiQAdy6AVvcxbEHgvqF8IfIYHkC3vt3z+yELaYKvi1viR+S+RyVkhIPpBHDve98bIYBoJ8BVkTNbhLWDRoGPMauW9VGSsFTDKggBSeIzCASR+GhOgEr8qNz3rt5Dge3x/zsI4F73ulcaAUTDPUT2ZGQDyaog5PlrAshWnjvTt7eo5J5MYFXV3ivdA4UPquhuArjnPe+5CgJwdwSSRoenYg1GIYSWFX0MwNfK+Oyq3XKwp0bqVxHAPe5xj0kQwIpUQCggXBEhuGzLKhXAqnx7dpqfYRHG8PpVBHD3u9+9OQE0sgFZLcPUFuJYhODNKLIfc2qAjwRznvdFS68f6Q6kEcDd7na3MAFkdgMiNiBqCzJUwVRswiptxdjAbunnayb5xpD/npDQRQB3vetdJ0MALVVAgLX76DUy9zHwVryxwFYbvGX9jpH0v6baj1H9RyWAu9zlLukEEE05UauRuBsR/IbJyBxqWpZjA641IY0Z3qHkUasco5t0ROV/CgHc+c53XhkBrMIa1LxZWlqFzKAyMzAb+zEiQdsqwJ8l9Wtm/VMI4E53uhNEABkBYZY1yCaB1m3ElkAci4TWxa+3CvIytuyeJAHc8Y533PMEkPmGo8B8QsYgy1QJIruitwD/Kqv9ygngDne4g+vCtesFHMdWSgJjdBHGqsarUAAVdieFGFZZ7cfw+d75f+k+i9vf/va7hgDGtAbRrkJrqzAFgGc/7pTBv/YEcLvb3W6qBNBKBTTLB6L5QfTNngGYsa7XiuyiNgN9r9Rah1YyP40Abnvb245OANHq3ZIUKG+SMCx3V2UdVinlPffLbNll7MvXus03CgHc5ja3aUoACSrA7eWTmLrZm621dRjbZqyblM8Af0WhSQn50gjg1re+dRYBNFEBLUPCVXcTWgGwdTfC65Ub2qiVePpolc+S+Rnp/zYB3OpWt5oUAdRkBFFbUWsZWlajVu3KVVy3Jdiz1tdnvF9ay/xUArjlLW/ZnAAaMl/aCHJryzAV4Ix1bstrrUrSt6j+mfI/RAC3uMUteifIXQFdYxuQpgxahIm1xNMKrNk/tw7jssGeuXYluh13TZX3Lv9VCeDmN795JgG4KnNDe5A2mdi6zTglcE6ZZFYN/hrpn/U+91Z3iABudrObjUIAXlbLVgGtmX/MMHH+eVxJ38Lnj5HwQwRw05vedJIEsEdIYCaCkar6lMA/KQK4yU1uMlkCaPXHo0ZjxmOphXUF8lgr6loTQss+/ugEcOMb37gFAaQFgqtUB1E5N2InorlKWRWwMwdvWoM/K+CLpvtVBHCjG91o8gSQUPEnaRFavvGnWOFXfc6YQI9U+JUQwA1veMMQAURtQPaLMyUS2A3A2Q2Pva5VPrO/DxPADW5wg9EJIPsFmnqA2DI/GDOwXGVOshvAH71PUwK4/vWv34oArHOaBoKtSGAVb9Z1AOMUQF3bU2+pPlsEfykEcL3rXW9VBNA8KMw47iGwqVa7dQZwdvbTclBnbOmfQgDXve5114oAVvXHqlEIuwFMU73+2BW+BchXSgDXuc51mniLvUIC2cSwqmNTfm4ZPn43gj8Dn4trX/vaa0kAU7IJtUHiOgBwBnk8wJs0AVzrWtdaNQFMQgmsIGBMzRFqn//UiGlqQd2YlX9UArjmNa/ZnADAc0ZrG7Z+IzWyFVWKolUYOlWvvmog17T1EjFlE8A1rnGNagIYQwWMzcJjq4ExuxUtCKJluj7F9lxL8CfiySaAq1/96qMQwLqRwJQCyKmDaMzfY6y/2ZTBn0oAV7va1XYFAbQKY9bBRszXHg/4tfedHAFc9apXHY0AEuVNkz/QKtXAlAC4KiCva9Uf0/enE8BVrnKVFAJYl9Cw5g+57lZi3Y6PeZ9Vgz8bPzABXPnKVx6dAKZAAmMHQ2OFU+sE4ikEdhngHhP86QRwpStdaZ0JYGUkMJVgaa/cZ7dX9pURwBWveMV+zAdseN7k1MCUPOoUBlymFMito6RvgcPFFa5whZURwNRygym+GdcBiOsk2TPeR6vy800I4PKXv3w6AazyBchQC6t8A+4GEK7ba+c5Z1V+vhUGF5e73OVWSgArUgLNbcM6EsU6AnssOZ/93mupqmcCmAlgJoCZADACuOxlL9uEAFp7nKnYgYznMlWimTIBZv1dpp7it8be4jKXucxkCGCV/mkmi90D6rG9/KqDvCoCuPSlL91P4YlMKUQZo+041pt91bePdY11COemBn4iosWlLnWpyRHAqjOEBudNpvKt0+NMudc+FQ9fTQCXvOQlmxPA1EhglQw/FmFM8Zwp++2pVfKx8La4xCUuMQoB1Fyj9Qs+9SoyJkin+njrWMXHer/PBDATwEwAMwHECODiF794P9UnN+U/2Cql5VTBN/XXZAY+QwAXu9jFRieAsV+k1vdZ9Zt0HSrouoF+bO++KlwtLnrRi66EAGqvNdU/6Krtx7rJ5SlW46km9k0I4CIXuchaMdY6KYmpKI+p2KHd8rpP4f2bdZ2ZAGYCmAlgLxPAhS984ZUSwBReyKmGklOUyLvhd56CbJ8KfhYXutCFJkEAWddcJ0Wxm7KMdam8UwDulLCzuOAFL9hP6RfZDfZiFffdrcS1m6r1FPGyuMAFLtDvxl9sN6mLdbE4uwmwU3vvtbruTAAzAcwEsJcJ4PznP/9kCWCKocluIpXdcP+p+vJ1wcTifOc7X78uv/CsNtbXu85VeZqPMxPATAAzAexlAjjvec/br9svP8bjTbXNOUVwrwM41+29MtbjLc5znvP06/6CjPW461Q11sHTrmsV3k3v78W5z33uXfli7QZbsu7Va7cAcTe/h2cCmAlgJoC9TADnOte5+t38Ak7huey2N+puBt5ee68uznnOc+7pF3lKz2uvvOH34us81ec1E8BMADMB7GUCOMc5zjH/Mdb0uU7l+cyvy/o+15kA5jf6/LrsZQI4+9nP3s8vyt79Hebnubd/h8XZzna2fn4R599z/n325u85E8D8e86/z14mgLOe9az9/MfYu1/za7S3X6OZAOY39/wa7WUCOMtZzjK/AeY3wvx32qNfMwHMb6z577SXCWCxWMwv1gyW+WsmgPlrJoD5a88RABHNb4D5a/7ao1//NwC1EoQ8cflAagAAAABJRU5ErkJggg=="
- , Up = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAEACAIAAABdw+MhAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAALBJREFUeNrs2sEJgDAQRNGJBPuvV5R4FAuYnF4aeGRv+9mx0n0zOQEAAAAAAAAAAAAAAABsAsbK0/3Bk6MLXO1WAQAAAAAAAAAAAAAAAOBLCUn3bGCWWwgAAAAAAAAAAAAAAACA36Z/rzKw7vKIcgEAAAAAAAAAAAAAAADYBIzyzUBmuYUAAAAAAAAAAAAAAAAA2AmM8s1AZrmFAAAAAAAAAAAAAAAAAPht+uWU8AowAGyEi9doBGciAAAAAElFTkSuQmCC"
- , Pf = "data:image/png;base64,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"
- , Qp = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAIAAAACUFjqAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAA6SURBVChTY/iPCk6DwRkYoKv0sWPHjiIBBohyCADKQVXBAIr0kSNHoMIwwAC1BAyApkGFYYAS6f//AVzgDAPz1XkAAAAAAElFTkSuQmCC"
- , $q = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAYAAADEUlfTAAAACXBIWXMAAAsTAAALEwEAmpwYAAABNmlDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjarY6xSsNQFEDPi6LiUCsEcXB4kygotupgxqQtRRCs1SHJ1qShSmkSXl7VfoSjWwcXd7/AyVFwUPwC/0Bx6uAQIYODCJ7p3MPlcsGo2HWnYZRhEGvVbjrS9Xw5+8QMUwDQCbPUbrUOAOIkjvjB5ysC4HnTrjsN/sZ8mCoNTIDtbpSFICpA/0KnGsQYMIN+qkHcAaY6addAPAClXu4vQCnI/Q0oKdfzQXwAZs/1fDDmADPIfQUwdXSpAWpJOlJnvVMtq5ZlSbubBJE8HmU6GmRyPw4TlSaqo6MukP8HwGK+2G46cq1qWXvr/DOu58vc3o8QgFh6LFpBOFTn3yqMnd/n4sZ4GQ5vYXpStN0ruNmAheuirVahvAX34y/Axk/96FpPYgAAACBjSFJNAAB6JQAAgIMAAPn/AACA6AAAUggAARVYAAA6lwAAF2/XWh+QAAAANUlEQVR42myNsQ0AMAzC8P9Hu0sjpU3YkLFADWBmIInqQsgDAar8kCY6zDtYzfUzte5ROQMAeFAiAMRBE+oAAAAASUVORK5CYII=";
- i.ColorPicker = function() {
- var v = this;
- i.ColorPicker.superClass.constructor.call(v),
- v.setEditable(!0),
- v.setDropDownComponent(i.ColorPickerTemp)
- }
- ,
- q(L + "ColorPicker", i.MultiComboBox, {
- ms_ac: ["instant", "clearButtonVisible"],
- _clearButtonVisible: !0,
- setValue: function(M) {
- var m = this;
- if (M !== R) {
- var v = m._value;
- m._value = M,
- m.fp("value", v, M)
- }
- },
- drawValue: function($, r, S, K, W) {
- this._value && ($.beginPath(),
- $.rect(r + 2, S + 2, 20, W - 4),
- $.fillStyle = this._value,
- $.fill()),
- e($, this._value, this.getLabelFont(), this.getLabelColor(), r + 23, S, 0, W)
- }
- }),
- i.ColorPickerTemp = function(J) {
- var y = this
- , _ = "px"
- , x = y._view = k.createView(null, y)
- , P = y.$10o = document.createElement("div")
- , t = y.$11o = u()
- , a = y.$12o = u()
- , z = P.style;
- y._h = 360,
- y._s = 100,
- y._v = 100,
- x.className = "colorPickerPopup",
- x.style.position = "absolute",
- x.style.background = "white",
- i.ColorPickerTemp.superClass.constructor.call(y, J);
- var g = '<div style="border: 1px solid rgba(0, 0, 0, 0); position: absolute; width: 40px; height: 20px; top: 5px; left: 5px; bottom: 5px; background: url(' + Qp + ') repeat;"></div> <div class= "preview" style="border: 1px solid black; position: absolute; width: 40px; height: 20px; top: 5px; left: 5px; bottom: 5px;"></div> <div style="margin-left: 50px; font: ' + $.labelFont + '; line-height: 30px;" > R:<input class="color_R" style="width: 28px;" type="' + (b ? "number" : "text") + '"> G:<input class="color_G" style="width: 28px" type="' + (b ? "number" : "text") + '"> B:<input class="color_B" style="width: 28px" type="' + (b ? "number" : "text") + '"> A:<input class="color_A" style="width: 28px" value="1" type="' + (b ? "number" : "text") + '"> </div>'
- , s = '<div> <div class="satval" style="position: absolute;cursor:crosshair;margin-left:5px;top: 6px;border:1px solid black;width:128px;height:128px;background-image: url(' + Sn + ');background-color: red;background-size:contain;"> <div class="satval_pointer" style="position:absolute;left: 124px; top: -3px;width: 7px; height: 7px;background-image: url(' + $q + ')"></div> </div> <div class="hue_picker" style="position:absolute;width: 46px; height: 140px;left: 152px;top:0;"> <div class="hue_image" style="border: 1px solid black;position:absolute;left:7px;top:6px;width:30px; height:128px; background: url(' + Up + ');background-size:contain;"></div> <div class="hue_pointer" style="position:absolute;top:1px;left:0;width:46px; height:12px; background: url(' + Pf + ')"></div> </div> <div style="position: absolute; left: 210px;top:6px;"> <input type="button" value="✓" class="color_ok"><br><br> <input type="button" value="✕" class="color_clear"> </div> </div>';
- z.font = $.labelFont,
- z.height = 30 + _,
- z.lineHeight = 30 + _,
- z.position = "relative",
- z.whiteSpace = "nowrap",
- P.innerHTML = g,
- a.innerHTML = s,
- x.appendChild(P),
- x.appendChild(a),
- x.addEventListener("click", function(Z) {
- var x = Z.target
- , z = x.className;
- "color_ok" === z ? (y.$13o = y.$9o(),
- J.close()) : "color_clear" === z ? (y.$13o = null,
- J.close()) : ["color_R", "color_G", "color_B", "color_A"].indexOf(z) >= 0 && x.select()
- });
- var v = function(p) {
- var X, c = p.target, z = c.className, b = !1;
- ["color_R", "color_G", "color_B"].indexOf(z) >= 0 ? (X = parseInt(c.value),
- c.value = X >= 0 && 255 >= X ? parseInt(c.value) : 0,
- b = !0) : "color_A" === z && (X = parseFloat(c.value),
- c.value = X >= 0 && 1 >= X ? parseFloat(c.value) : 0,
- b = !0),
- b && (t.style.backgroundColor = y.$9o())
- };
- x.addEventListener("keydown", function(F) {
- var O = F.target
- , n = O.className;
- ["color_R", "color_G", "color_B", "color_A", "color_ok", "color_clear"].indexOf(n) >= 0 && 13 == F.keyCode && (v(F),
- y.$13o = y.$9o(),
- J.close())
- }),
- new ml(y),
- x.addEventListener("change", v);
- var q = ap(x, ".color_clear");
- J._clearButtonVisible || (q.style.display = "none"),
- p.Default.onElementCreated && (p.Default.onElementCreated(x.querySelector("input.color_R")),
- p.Default.onElementCreated(x.querySelector("input.color_G")),
- p.Default.onElementCreated(x.querySelector("input.color_B")),
- p.Default.onElementCreated(x.querySelector("input.color_A")),
- p.Default.onElementCreated(x.querySelector(".color_ok")),
- p.Default.onElementCreated(x.querySelector(".color_clear")))
- }
- ,
- q(i.ColorPickerTemp, i.BaseDropDownTemplate, {
- $6o: function() {
- var R = this
- , D = R._view
- , t = R._master
- , M = R._h
- , N = R._s
- , n = R._v
- , p = R.$2o(M / 360, N / 100, n / 100)
- , T = p.r
- , g = p.g
- , W = p.b;
- D.querySelector("input.color_R").value = K(255 * T),
- D.querySelector("input.color_G").value = K(255 * g),
- D.querySelector("input.color_B").value = K(255 * W);
- var z = R.$9o();
- D.querySelector(".preview").style.backgroundColor = z;
- var J = R.$2o(M / 360, 1, 1);
- D.querySelector(".satval").style.backgroundColor = R.$4o(J.r, J.g, J.b, !0),
- t._instant && t.setValue(z)
- },
- $5o: function(I, c, b) {
- var r, t, Q = Math.max(Math.max(I, c), b), B = Math.min(Math.min(I, c), b), m = Q;
- if (B == Q)
- r = 0,
- t = 0;
- else {
- var X = Q - B;
- t = X / Q,
- r = I == Q ? (c - b) / X : c == Q ? 2 + (b - I) / X : 4 + (I - c) / X,
- r /= 6,
- 0 > r && (r += 1),
- r > 1 && (r -= 1)
- }
- return {
- h: r,
- s: t,
- v: m
- }
- },
- $4o: function(q, M, E, Q) {
- return q = K(255 * q),
- M = K(255 * M),
- E = K(255 * E),
- Q == R && (Q = !0),
- q = q.toString(16),
- 1 == q.length && (q = "0" + q),
- M = M.toString(16),
- 1 == M.length && (M = "0" + M),
- E = E.toString(16),
- 1 == E.length && (E = "0" + E),
- ((Q ? "#" : "") + q + M + E).toUpperCase()
- },
- $3o: function(v, n, e) {
- e == R && (e = null),
- "#" == v.substr(0, 1) && (v = v.substr(1));
- var Y, M, O;
- if (3 == v.length)
- Y = v.substr(0, 1),
- Y += Y,
- M = v.substr(1, 1),
- M += M,
- O = v.substr(2, 1),
- O += O;
- else {
- if (6 != v.length)
- return e;
- Y = v.substr(0, 2),
- M = v.substr(2, 2),
- O = v.substr(4, 2)
- }
- return Y = parseInt(Y, 16),
- M = parseInt(M, 16),
- O = parseInt(O, 16),
- isNaN(Y) || isNaN(M) || isNaN(O) ? e : n ? {
- r: Y,
- g: M,
- b: O
- } : {
- r: Y / 255,
- g: M / 255,
- b: O / 255
- }
- },
- $2o: function(S, c, i) {
- var o, a, f;
- if (0 == i)
- o = 0,
- a = 0,
- f = 0;
- else {
- var V = Math.floor(6 * S)
- , s = 6 * S - V
- , R = i * (1 - c)
- , $ = i * (1 - c * s)
- , u = i * (1 - c * (1 - s));
- switch (V) {
- case 1:
- o = $,
- a = i,
- f = R;
- break;
- case 2:
- o = R,
- a = i,
- f = u;
- break;
- case 3:
- o = R,
- a = $,
- f = i;
- break;
- case 4:
- o = u,
- a = R,
- f = i;
- break;
- case 5:
- o = i,
- a = R,
- f = $;
- break;
- case 6:
- case 0:
- o = i,
- a = u,
- f = R
- }
- }
- return {
- r: o,
- g: a,
- b: f
- }
- },
- $9o: function() {
- var C = this._view
- , m = ap(C, "input.color_R").value
- , e = ap(C, "input.color_G").value
- , _ = ap(C, "input.color_B").value
- , w = ap(C, "input.color_A").value || 1;
- return "" === m || "" === e || "" === _ || "" === w ? R : 1 == w ? "rgb(" + m + "," + e + "," + _ + ")" : "rgba(" + m + "," + e + "," + _ + "," + w + ")"
- },
- getView: function() {
- return this._view
- },
- onOpened: function(Y) {
- if (Y) {
- var i, $ = this, G = $._view;
- if ($.$11o.style.backgroundColor = Y,
- 0 === Y.indexOf("#") ? (Y = Y.substr(1, 6),
- i = $.$3o(Y, !0),
- i = [i.r, i.g, i.b]) : 0 === Y.indexOf("rgb") && (Y = Y.substring(Y.indexOf("(") + 1, Y.indexOf(")")),
- i = Y.split(",")),
- i) {
- var z = 4 === i.length ? i[3] : 1
- , r = $.$5o(i[0] / 255, i[1] / 255, i[2] / 255)
- , I = ap(G, ".satval_pointer");
- ap(G, "input.color_R").value = i[0],
- ap(G, "input.color_G").value = i[1],
- ap(G, "input.color_B").value = i[2],
- ap(G, "input.color_A").value = z,
- $._h = K(360 * r.h),
- $._s = K(100 * r.s),
- $._v = K(100 * r.v),
- I.style.left = 127 * r.s - 3 + "px",
- I.style.top = 127 - 127 * r.v - 3 + "px",
- ap(G, ".hue_pointer").style.top = 128 - 127 * r.h + "px",
- $.$6o()
- }
- }
- },
- onClosed: function() {},
- getValue: function() {
- return this.$13o
- },
- getHeight: function() {
- return 170
- },
- getWidth: function() {
- return 252
- }
- });
- var ml = function(f) {
- this.$8o = f,
- this.setUp()
- };
- q(ml, X, {
- ms_listener: 1,
- getView: function() {
- return this.$8o._view
- },
- setUp: function() {
- this.addListeners()
- },
- tearDown: function() {
- this.removeListeners(),
- this.clear()
- },
- clear: function() {
- delete this.$7o
- },
- handle_touchstart: function(t) {
- var H = this
- , E = t.target
- , R = H.$8o
- , B = H.getView()
- , P = ap(B, ".hue_picker")
- , A = ap(B, ".satval");
- P.contains(E) ? (H.$7o = 1,
- H.$1o(t, 1)) : A.contains(E) && (H.$7o = 2,
- H.$1o(t, 2)),
- H.$7o && $.isDoubleClick(t) && (R.$13o = R.$9o(),
- R._master.close())
- },
- $1o: function(u, p) {
- $.preventDefault(u);
- var V, y, Y, M = this, L = M.$8o, l = M.getView(), R = ap(l, ".hue_picker"), J = ap(l, ".satval");
- if (u = b ? vg(u) : u,
- 1 === p) {
- V = R.getBoundingClientRect(),
- Y = u.clientY - V.top,
- Y -= 7,
- 0 > Y && (Y = 0),
- Y > 127 && (Y = 127),
- ap(l, ".hue_pointer").style.top = Y + 1 + "px";
- var T = Y;
- T = K(360 - T * (360 / 127)),
- L._h = T,
- L.$6o()
- } else if (2 === p) {
- V = J.getBoundingClientRect(),
- y = u.clientX - V.left - 1,
- Y = u.clientY - V.top - 1,
- 0 > y && (y = 0),
- y > 127 && (y = 127),
- 0 > Y && (Y = 0),
- Y > 127 && (Y = 127),
- L._s = K(100 * y / 127),
- L._v = K(100 - 100 * Y / 127);
- var H = ap(l, ".satval_pointer");
- H.style.left = y - 3 + "px",
- H.style.top = Y - 3 + "px",
- L.$6o()
- }
- },
- handle_mousedown: function(n) {
- this.handle_touchstart(n)
- },
- handle_mouseup: function(h) {
- this.handle_touchend(h)
- },
- handle_touchend: function(P) {
- var f = this;
- f.clear(P)
- },
- handle_mousemove: function(q) {
- this.handle_touchmove(q)
- },
- handle_touchmove: function() {
- var W = this;
- W.$7o && $.startDragging(W)
- },
- handleWindowMouseUp: function(p) {
- this.handleWindowTouchEnd(p)
- },
- handleWindowTouchEnd: function(H) {
- var m = this;
- m.clear(H)
- },
- handleWindowMouseMove: function(p) {
- this.handleWindowTouchMove(p)
- },
- handleWindowTouchMove: function(L) {
- var X = this
- , f = X.$7o;
- f && X.$1o(L, f)
- }
- }),
- i.FormPane = function(m) {
- var g = this
- , A = g._view = k.createView(1, g);
- m || (g._canvas = h(A)),
- A.appendChild(g._79O = u()),
- g._rows = [],
- g._itemMap = {},
- g.iv(),
- A.handleGroupSelectedChanged = function(w) {
- if (w.isSelected()) {
- var k = w.getGroupId();
- null != k && g._rows.forEach(function(L) {
- var P = L.items;
- P && P.forEach(function(H) {
- if (H) {
- var G = H.element;
- G && G !== w && G.setSelected && G.getGroupId && G.getGroupId() === k && G.setSelected(!1)
- }
- })
- })
- }
- }
- ,
- new yg(g)
- }
- ,
- q(L + "FormPane", X, {
- ms_v: 1,
- ms_fire: 1,
- ms_txy: 1,
- ms_lp: 1,
- ms_vs: 1,
- ms_hs: 1,
- ms_value: 1,
- ms_ac: ["labelColor", "labelFont", "labelAlign", "labelVAlign", "vPadding", "hPadding", "labelHPadding", "labelVPadding", "hGap", "vGap", "rows", "rowHeight", "scrollBarColor", "scrollBarSize", "autoHideScrollBar"],
- _29I: oe,
- _91I: 0,
- _59I: 0,
- _labelColor: $.formPaneLabelColor,
- _labelFont: $.formPaneLabelFont,
- _labelAlign: $.formPaneLabelAlign,
- _labelVAlign: $.formPaneLabelVAlign,
- _hPadding: $.formPaneHPadding,
- _vPadding: $.formPaneVPadding,
- _labelHPadding: $.formPaneLabelHPadding,
- _labelVPadding: $.formPaneLabelVPadding,
- _hGap: $.formPaneHGap,
- _vGap: $.formPaneVGap,
- _rowHeight: $.widgetRowHeight,
- _scrollBarColor: $.scrollBarColor,
- _scrollBarSize: $.scrollBarSize,
- _autoHideScrollBar: $.autoHideScrollBar,
- onPropertyChanged: function(e) {
- var P = this
- , f = e.property;
- P.iv(),
- "translateX" === f ? P._42o() : "translateY" === f && P._43o()
- },
- adjustTranslateX: function(t) {
- var h = this.getWidth() - this._91I;
- return h > t && (t = h),
- t > 0 ? 0 : Math.round(t)
- },
- adjustTranslateY: function(L) {
- var B = this.getHeight() - this._59I;
- return B > L && (L = B),
- L > 0 ? 0 : Math.round(L)
- },
- setPadding: function(a) {
- this.setVPadding(a),
- this.setHPadding(a)
- },
- getLabelFont: function(k) {
- return k && k.font ? k.font : this._labelFont
- },
- getLabelColor: function(J) {
- return J && J.color ? J.color : this._labelColor
- },
- getLabelAlign: function(V) {
- return V && V.align ? V.align : this._labelAlign
- },
- getLabelVAlign: function(g) {
- return g && g.vAlign ? g.vAlign : this._labelVAlign
- },
- getRowBorderColor: function(Q) {
- return Q ? Q.borderColor : null
- },
- getRowBackground: function(J) {
- return J ? J.background : null
- },
- getItemBorderColor: function(j) {
- return j ? j.borderColor : null
- },
- getItemBackground: function(R) {
- return R ? R.background : null
- },
- getItemById: function(O) {
- return this._itemMap[O]
- },
- getViewById: function(k) {
- var D = this.getItemById(k);
- return D ? D.element : null
- },
- getItemView: function(b) {
- if (b) {
- var T = b.element;
- if (T) {
- if (T.tagName)
- return T;
- if (T.getView)
- return T.getView()
- }
- }
- return null
- },
- updateItemElement: function(D, y) {
- var s = this
- , Y = s.getItemById(D);
- if (Y) {
- var l = s.getItemView(Y);
- l && s._view.removeChild(l),
- Y.element = y,
- l = s.getItemView(Y),
- l && (l.style.position = "absolute",
- s._view.insertBefore(l, s._79O)),
- s.iv()
- }
- },
- addRow: function(Q, I, u, D) {
- var y = this
- , g = y._view;
- if (Q) {
- for (var E = 0; E < Q.length; E++) {
- var M = Q[E];
- M && ((M.tagName || M.getView) && (Q[E] = {
- element: M
- }),
- k.initItemElement(M),
- null != M.id && (y._itemMap[M.id] = M))
- }
- Q.forEach(function(R) {
- var I = y.getItemView(R);
- I && (I.style.position = "absolute",
- g.insertBefore(I, y._79O))
- })
- }
- var q = D || {};
- return q.items = Q,
- q.widths = I,
- q.height = u,
- null == q.index ? y._rows.push(q) : y._rows.splice(q.index, 0, q),
- y.iv(),
- q
- },
- removeRows: function(f) {
- if (f) {
- var E = this
- , W = [];
- f.forEach(function(P) {
- P.items && P.items.forEach(function(B) {
- var Q = E.getItemView(B);
- Q && E._view.removeChild(Q),
- B && null != B.id && delete E._itemMap[B.id]
- })
- }),
- E._rows.forEach(function(y) {
- f.indexOf(y) < 0 && W.push(y)
- }),
- E._rows = W,
- E.iv()
- }
- },
- removeRow: function(K) {
- var D = this
- , B = D._rows.splice(K, 1)[0].items;
- B && B.forEach(function(e) {
- var C = D.getItemView(e);
- C && D._view.removeChild(C),
- e && null != e.id && delete D._itemMap[e.id]
- }),
- D.iv()
- },
- clear: function() {
- for (var c = this, k = c._view; k.firstChild; )
- k.removeChild(k.firstChild);
- c._canvas && k.appendChild(c._canvas),
- k.appendChild(c._79O),
- c._rows = [],
- c._itemMap = {},
- c.iv()
- },
- validateImpl: function() {
- var M, f, $, p, W, a, r = this, v = r._canvas, J = r._rowHeight, _ = r.getWidth(), G = r.getHeight(), P = r._hPadding, h = r._vPadding, e = r._vGap, V = r.ty(), T = r.tx(), E = _ - 2 * P, C = G - 2 * h, n = r._rows, k = n.length, L = 0, N = C - (k - 1) * e;
- for (r._29I = {
- x: -T,
- y: -V,
- width: _,
- height: G
- },
- v && (F(v, _, G),
- a = A(v),
- z(a, 0, 0, 1),
- a.clearRect(0, 0, _, G)),
- $ = 0; k > $; $++)
- p = n[$],
- W = p.height,
- null == W ? N -= J : O(W) ? (M = W.split("+"),
- f = parseFloat(M[0]),
- f > 1 ? N -= f : L += f,
- f = parseFloat(M[1]),
- f > 1 ? N -= f : L += f) : W > 1 ? N -= W : L += W;
- 0 > N ? (r._59I = G - N,
- N = 0) : r._59I = G;
- var w = h + V
- , U = _;
- for ($ = 0; k > $; $++) {
- p = n[$],
- W = p.height,
- null == W ? W = J : O(W) ? (M = W.split("+"),
- f = parseFloat(M[0]),
- W = f > 1 ? f : f / L * N,
- f = parseFloat(M[1]),
- W += f > 1 ? f : f / L * N) : 1 >= W && (W = W / L * N);
- var u = P + T;
- if (a) {
- var j = r.getRowBorderColor(p)
- , c = r.getRowBackground(p);
- c && t(a, u, w, E, W, c),
- j && m(a, j, u, w, E, W)
- }
- var D = r.validateRow(a, _, p.items, p.widths, u, w, E, W);
- D > U && (U = D),
- w += W + e
- }
- a && a.restore(),
- r._91I = U,
- r._92I(),
- r._93I(),
- r.tx(r.tx()),
- r.ty(r.ty())
- },
- validateRow: function(x, v, N, J, r, o, z, u) {
- if (!N)
- return 0;
- var E, j, c, C, Q, q = this, _ = v, i = q._hGap, $ = N.length, b = 0, F = z - ($ - 1) * i;
- for (c = 0; $ > c; c++)
- C = J[c],
- O(C) ? (E = C.split("+"),
- j = parseFloat(E[0]),
- j > 1 ? F -= j : b += j,
- j = parseFloat(E[1]),
- j > 1 ? F -= j : b += j) : C > 1 ? F -= C : b += C;
- for (0 > F && (_ -= F,
- F = 0),
- c = 0; $ > c; c++) {
- if (Q = N[c],
- C = J[c],
- O(C) ? (E = C.split("+"),
- j = parseFloat(E[0]),
- C = j > 1 ? j : j / b * F,
- j = parseFloat(E[1]),
- C += j > 1 ? j : j / b * F) : 1 >= C && (C = C / b * F),
- Q) {
- if (x) {
- var X = q.getItemBorderColor(Q)
- , e = q.getItemBackground(Q);
- e && t(x, r, o, C, u, e),
- X && m(x, X, r, o, C, u)
- }
- q.validateItem(x, Q, r, o, C, u)
- }
- r += C + i
- }
- return _
- },
- validateItem: function(n, D, p, r, S, T) {
- var l, I = this, h = D.element;
- h && !O(h) ? x(h, p, r, S, T) : n && (O(D) ? l = D : O(D.element) && (l = D.element),
- l && (n.save(),
- n.beginPath(),
- n.rect(p, r, S, T),
- n.clip(),
- e(n, l, I.getLabelFont(D), I.getLabelColor(D), p + I._labelHPadding, r - I._labelVPadding, S - 2 * I._labelHPadding, T - 2 * I._labelVPadding, I.getLabelAlign(D), I.getLabelVAlign(D)),
- n.restore()))
- }
- });
- var yg = function(S) {
- this.f = S,
- this.addListeners()
- };
- q(yg, X, {
- ms_listener: 1,
- getView: function() {
- return this.f._view
- },
- handle_mousedown: function(q) {
- J(q) && this.handle_touchstart(q)
- },
- handleWindowMouseMove: function(h) {
- this.handleWindowTouchMove(h)
- },
- handleWindowMouseUp: function(G) {
- this.handleWindowTouchEnd(G)
- },
- handle_touchstart: function(w) {
- var M, e = this, o = e.f, p = w.target;
- e.isV(w) ? M = "v" : e.isH(w) ? M = "h" : (p === e.getView() || o._79O.contains(p)) && (M = "p"),
- (e.s = M) && (e.cp = v(w),
- e.tx = o.tx(),
- e.ty = o.ty(),
- C(w),
- g(e, w))
- },
- handle_mousemove: function(t) {
- var m = this
- , e = m.f;
- m.isV(t) && e._43o(),
- m.isH(t) && e._42o()
- },
- handleWindowTouchMove: function($) {
- var H = this
- , F = H.f
- , y = H.s
- , q = H.tx
- , K = H.ty
- , c = H.cp
- , D = v($)
- , t = F._29I;
- "p" === y ? F.setTranslate(q + D.x - c.x, K + D.y - c.y) : "v" === y ? F.ty(K + (c.y - D.y) * F._59I / t.height) : "h" === y && F.tx(q + (c.x - D.x) * F._91I / t.width)
- },
- handleWindowTouchEnd: function() {},
- handle_mousewheel: function(I) {
- this.h(I, I.wheelDelta / 40, I.wheelDelta !== I.wheelDeltaX)
- },
- handle_DOMMouseScroll: function(n) {
- this.h(n, -n.detail, 1)
- },
- h: function(S, H, O) {
- var v = this.f;
- C(S),
- k.closePopup(),
- O && v._41o() ? v.translate(0, 10 * H) : v._40o() && v.translate(10 * H, 0)
- },
- isV: function(k) {
- var M = this.f
- , d = M._29I;
- return M._41o() && d.x + d.width - M.lp(k).x < N
- },
- isH: function(n) {
- var q = this.f
- , O = q._29I;
- return q._40o() && O.y + O.height - q.lp(n).y < N
- }
- })
- }("undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : this, Object);
|