ERP-node/WebContent/smarteditor/js/lib/jindo_component.js

3 lines
68 KiB
JavaScript
Raw Normal View History

2025-08-21 09:41:46 +09:00
jindo.Component=jindo.$Class({_htEventHandler:null,_htOption:null,$init:function(){var t=this.constructor.getInstance();t.push(this),this._htEventHandler={},this._htOption={},this._htOption._htSetter={}},option:function(t,e){switch(typeof t){case"undefined":return this._htOption;case"string":if("undefined"==typeof e)return this._htOption[t];if("htCustomEventHandler"==t){if("undefined"!=typeof this._htOption[t])return this;this.attach(e)}this._htOption[t]=e,"function"==typeof this._htOption._htSetter[t]&&this._htOption._htSetter[t](e);break;case"object":for(var n in t){if("htCustomEventHandler"==n){if("undefined"!=typeof this._htOption[n])continue;this.attach(t[n])}this._htOption[n]=t[n],"function"==typeof this._htOption._htSetter[n]&&this._htOption._htSetter[n](t[n])}}return this},optionSetter:function(t,e){switch(typeof t){case"undefined":return this._htOption._htSetter;case"string":if("undefined"==typeof e)return this._htOption._htSetter[t];this._htOption._htSetter[t]=jindo.$Fn(e,this).bind();break;case"object":for(var n in t)this._htOption._htSetter[n]=jindo.$Fn(t[n],this).bind()}return this},fireEvent:function(t,e){e=e||{};var n=this["on"+t],i=this._htEventHandler[t]||[],s="function"==typeof n,a=i.length>0;if(!s&&!a)return!0;i=i.concat(),e.sType=t,"undefined"==typeof e._aExtend&&(e._aExtend=[],e.stop=function(){e._aExtend.length>0&&(e._aExtend[e._aExtend.length-1].bCanceled=!0)}),e._aExtend.push({sType:t,bCanceled:!1});var o,r,h=[e];for(o=2,r=arguments.length;r>o;o++)h.push(arguments[o]);if(s&&n.apply(this,h),a){var l;for(o=0,l;l=i[o];o++)l.apply(this,h)}return!e._aExtend.pop().bCanceled},attach:function(t,e){if(1==arguments.length)return jindo.$H(arguments[0]).forEach(jindo.$Fn(function(t,e){this.attach(e,t)},this).bind()),this;var n=this._htEventHandler[t];return"undefined"==typeof n&&(n=this._htEventHandler[t]=[]),n.push(e),this},detach:function(t,e){if(1==arguments.length)return jindo.$H(arguments[0]).forEach(jindo.$Fn(function(t,e){this.detach(e,t)},this).bind()),this;var n=this._htEventHandler[t];if(n)for(var i,s=0;i=n[s];s++)if(i===e){n=n.splice(s,1);break}return this},detachAll:function(t){var e=this._htEventHandler;if(arguments.length)return"undefined"==typeof e[t]?this:(delete e[t],this);for(var n in e)delete e[n];return this}}),jindo.Component.factory=function(t,e){var n,i=[];"undefined"==typeof e&&(e={});for(var s,a=0;s=t[a];a++)n=new this(s,e),i[i.length]=n;return i},jindo.Component.getInstance=function(){return"undefined"==typeof this._aInstance&&(this._aInstance=[]),this._aInstance},jindo.UIComponent=jindo.$Class({$init:function(){this._bIsActivating=!1},isActivating:function(){return this._bIsActivating},activate:function(){return this.isActivating()?this:(this._bIsActivating=!0,arguments.length>0?this._onActivate.apply(this,arguments):this._onActivate(),this)},deactivate:function(){return this.isActivating()?(this._bIsActivating=!1,arguments.length>0?this._onDeactivate.apply(this,arguments):this._onDeactivate(),this):this}}).extend(jindo.Component),jindo.RolloverArea=jindo.$Class({$init:function(t,e){this.option({sClassName:"rollover",sClassPrefix:"rollover-",bCheckMouseDown:!0,bActivateOnload:!0,htStatus:{sOver:"over",sDown:"down"}}),this.option(e||{}),this._elArea=jindo.$(t),this._aOveredElements=[],this._aDownedElements=[],this._wfMouseOver=jindo.$Fn(this._onMouseOver,this),this._wfMouseOut=jindo.$Fn(this._onMouseOut,this),this._wfMouseDown=jindo.$Fn(this._onMouseDown,this),this._wfMouseUp=jindo.$Fn(this._onMouseUp,this),this.option("bActivateOnload")&&this.activate()},_addOvered:function(t){this._aOveredElements.push(t)},_removeOvered:function(t){this._aOveredElements.splice(jindo.$A(this._aOveredElements).indexOf(t),1)},_addStatus:function(t,e){jindo.$Element(t).addClass(this.option("sClassPrefix")+e)},_removeStatus:function(t,e){jindo.$Element(t).removeClass(this.option("sClassPrefix")+e)},_isInnerElement:function(t,e){return t===e?!0:jindo.$Element(t).isParentOf(e)},_onActivate:function(){this._wfMouseOver.attach(this._elArea,"mouseover"),this._wfMouseOut.attach(this._elArea,"mouseout"),this.
r=r.toString(16).toUpperCase();for(var h=0;6-r.length;h++)r="0"+r;return"#"+r}return o(e,n)};return null===e&&(s.setStart=function(t){if(t=a(t),t.sUnit!=i)throw new Error("unit eror");e=t.nValue}),s}},jindo.Effect.linear=jindo.Effect(function(t){return t}),jindo.Effect.easeIn=jindo.Effect(function(t){return 1-Math.sqrt(1-t*t)}),jindo.Effect.easeOut=jindo.Effect(function(t){return Math.sqrt((2-t)*t)}),jindo.Effect.bounce=jindo.Effect(function(t){return 1/2.75>t?7.5625*t*t:2/2.75>t?7.5625*(t-=1.5/2.75)*t+.75:2.5/2.75>t?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375}),jindo.Effect._cubicBezier=function(t,e,n,i){return function(s){function a(t){return((u*t+l)*t+h)*t}function o(t){return((d*t+f)*t+c)*t}function r(t,e){for(var n,i,s=0,o=1,r=t,c=0;8>c;c++){if(n=a(r)-t,Math.abs(n)<e)return r;if(i=(3*u*r+2*l)*r+h,Math.abs(i)<1e-6)break;r-=n/i}if(s>r)return s;if(r>o)return o;for(;o>s;){if(n=a(r),Math.abs(n-t)<e)return r;t>n?s=r:o=r,r=.5*(o-s)+s}return r}var h=3*t,l=3*(n-t)-h,u=1-h-l,c=3*e,f=3*(i-e)-c,d=1-c-f;return o(r(s,.001))}},jindo.Effect.cubicBezier=function(t,e,n,i){return jindo.Effect(jindo.Effect._cubicBezier(t,e,n,i))},jindo.Effect.overphase=jindo.Effect.cubicBezier(.25,.75,.8,1.3),jindo.Effect.easeInOut=jindo.Effect.cubicBezier(.75,0,.25,1),jindo.Effect.easeOutIn=jindo.Effect.cubicBezier(.25,.75,.75,.25),jindo.Effect.cubicEase=jindo.Effect.cubicBezier(.25,.1,.25,1),jindo.Effect.cubicEaseIn=jindo.Effect.cubicBezier(.42,0,1,1),jindo.Effect.cubicEaseOut=jindo.Effect.cubicBezier(0,0,.58,1),jindo.Effect.cubicEaseInOut=jindo.Effect.cubicBezier(.42,0,.58,1),jindo.Effect.cubicEaseOutIn=jindo.Effect.cubicBezier(0,.42,1,.58),jindo.Effect.pulse=function(t){return jindo.Effect(function(e){return-Math.cos(e*(t-.5)*2*Math.PI)/2+.5})},jindo.FileUploader=jindo.$Class({_bIsActivating:!1,_aHiddenInput:[],$init:function(t,e){var n={sUrl:"",sCallback:"",htData:{},sFiletype:"*",sMsgNotAllowedExt:"업로드가 허용되지 않는 파일형식입니다",bAutoUpload:!1,bAutoReset:!0,bActivateOnload:!0};this.option(n),this.option(e||{}),this._el=jindo.$(t),this._wel=jindo.$Element(this._el),this._elForm=this._el.form,this._aHiddenInput=[],this.constructor._oCallback={},this._wfChange=jindo.$Fn(this._onFileSelectChange,this),this._sFunctionName=null,this.option("bActivateOnload")&&this.activate()},_appendIframe:function(){var t="tmpFrame_"+this._makeUniqueId();this._welIframe=jindo.$Element(jindo.$('<iframe name="'+t+'" src="">')).css({position:"absolute",width:"1px",height:"1px",left:"-100px",top:"-100px"}),document.body.appendChild(this._welIframe.$value())},_removeIframe:function(){this._welIframe&&this._welIframe.leave()},getBaseElement:function(){return this.getFileSelect()},getFileSelect:function(){return this._el},getFormElement:function(){return this._elForm},upload:function(){this._appendIframe();var t=this.getFormElement(),e=jindo.$Element(t),n=this._welIframe.attr("name"),i=this._sFunctionName=n+"_func",s=this.option("sUrl");e.attr({target:n,action:s}),this._aHiddenInput.push(this._createElement("input",{type:"hidden",name:"callback",value:this.option("sCallback")})),this._aHiddenInput.push(this._createElement("input",{type:"hidden",name:"callback_func",value:i}));for(var a in this.option("htData"))this._aHiddenInput.push(this._createElement("input",{type:"hidden",name:a,value:this.option("htData")[a]}));for(var o=0;o<this._aHiddenInput.length;o++)t.appendChild(this._aHiddenInput[o]);this.constructor._oCallback[i+"_success"]=jindo.$Fn(function(t){this.option("bAutoReset")&&this.reset(),this._revertFormAttr(),this.fireEvent("success",{htResult:t}),this._clear()},this).bind(),this.constructor._oCallback[i+"_error"]=jindo.$Fn(function(t){this.option("bAutoReset")&&this.reset(),this._revertFormAttr(),this.fireEvent("error",{htResult:t}),this._clear()},this).bind(),t.submit()},reset:function(){var t=jindo.$("<form>");this._wel.wrap(t),t.reset(),jindo.$Element(t).replace(this._el);var e=jindo.$Agent().navigator();if(e.ie&&e.version<=10){var n=this.getFormElement();n.type="radio",n.type="file"}return this._clear(),this},_reve
this.fireEvent("drag",e)}else i.bIsDragging=!1},_onMouseUp:function(t){this._stopDragging(!1);var e=this._htDragInfo;e.bHandleDown=!1,this.fireEvent("handleUp",{weEvent:t,elHandle:e.elHandle,elDrag:e.elDrag})},_onDragStart:function(t){this._findDraggableElement(t.element)&&t.stop(jindo.$Event.CANCEL_DEFAULT)},_onSelectStart:function(t){(this.isDragging()||this._findDraggableElement(t.element))&&t.stop(jindo.$Event.CANCEL_DEFAULT)}}).extend(jindo.UIComponent),jindo.DefaultTextValue=jindo.$Class({$init:function(t,e){this.option({sValue:"",bActivateOnload:!0}),this.option(e||{}),this._elBaseTarget=jindo.$(t),this._wfOnFocusAndBlur=jindo.$Fn(this._onFocusAndBlur,this),this.option("bActivateOnload")&&this.activate()},getBaseElement:function(){return this._elBaseTarget},setDefault:function(){return this.getBaseElement().value=this.option("sValue"),this},setDefaultValue:function(t){var e=this.option("sValue");return this.option("sValue",t),this.getBaseElement().value==e&&this.setDefault(),this},getDefaultValue:function(){return this.option("sValue")},paint:function(){return this},_onActivate:function(){var t=this.getBaseElement();""==t.value&&this.setDefault(),this._wfOnFocusAndBlur.attach(t,"focus").attach(t,"blur")},_onDeactivate:function(){var t=this.getBaseElement();this._wfOnFocusAndBlur.detach(t,"focus").detach(t,"blur")},_onFocusAndBlur:function(t){var e=this._elBaseTarget,n=e.value;switch(t.type){case"focus":n==this.getDefaultValue()&&(e.value="",e.select());break;case"blur":""==jindo.$S(n).trim().$value()&&this.setDefault()}}}).extend(jindo.UIComponent),jindo.NumericStepper=jindo.$Class({_bIsOnFocus:!1,$init:function(t,e){this._el=jindo.$(t),this.option({sClassPrefix:"ns-",bActivateOnload:!0,bUseMouseWheel:!1,nStep:1,nDecimalPoint:0,nMin:-(1/0),nMax:1/0,nDefaultValue:0,bInputReadOnly:!0}),this.option(e||{}),this._assignHTMLElements(),this._initEventHandlers(),this.option("bActivateOnload")&&this.activate()},_assignHTMLElements:function(){var t=this.option("sClassPrefix");this._elInput=jindo.$$.getSingle("."+t+"input",this._el),this._elPlusButton=jindo.$$.getSingle("."+t+"plus",this._el),this._elMinusButton=jindo.$$.getSingle("."+t+"minus",this._el)},_initEventHandlers:function(){this._wfPlusClick=jindo.$Fn(this._onPlusClick,this),this._wfMinusClick=jindo.$Fn(this._onMinusClick,this),this._wfWheel=jindo.$Fn(this._onWheel,this),this._wfFocus=jindo.$Fn(this._onFocus,this),this._wfBlur=jindo.$Fn(this._onBlur,this)},reset:function(){this._elInput.value=this.option("nDefaultValue").toFixed(this.option("nDecimalPoint"))},getValue:function(){return parseFloat(this._elInput.value)},setValue:function(t){t=t.toFixed(this.option("nDecimalPoint"));var e=this.option("nMin"),n=this.option("nMax"),i={nValue:t,nMin:e,nMax:n};return t>n||e>t?void this.fireEvent("overLimit",i):void(this.fireEvent("beforeChange",i)&&(this._elInput.value=i.nValue,this.fireEvent("change",i)))},getBaseElement:function(){return this._el},getInputElement:function(){return this._elInput},getPlusElement:function(){return this._elPlusButton},getMinusElement:function(){return this._elMinusButton},isFocused:function(){return this._bIsOnFocus},_onActivate:function(){var t=this.getInputElement();this._wfPlusClick.attach(this.getPlusElement(),"click"),this._wfMinusClick.attach(this.getMinusElement(),"click"),this._wfFocus.attach(t,"focus"),this._wfBlur.attach(t,"blur"),this.option("bUseMouseWheel")&&this._wfWheel.attach(t,"mousewheel"),this._elInput.readOnly=this.option("bInputReadOnly"),this.reset()},_onDeactivate:function(){var t=this.getInputElement();this._wfPlusClick.detach(this.getPlusElement(),"click"),this._wfMinusClick.detach(this.getMinusElement(),"click"),this._wfInputClick.detach(t,"click"),this._wfFocus.detach(t,"focus"),this._wfBlur.detach(t,"blur"),this._wfWheel.detach(t,"mousewheel")},_onMinusClick:function(t){this.setValue(this.getValue()-this.option("nStep"))},_onPlusClick:function(t){this.setValue(this.getValue()+this.option("nStep"))},_onWheel:function(t){this.isFocused()&&(t.stop(jindo.$Event.CANCEL_DEFAULT),t.mouse().delta>0?this._onPlusClick():