12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102101031010410105101061010710108101091011010111101121011310114101151011610117101181011910120101211012210123101241012510126101271012810129101301013110132101331013410135101361013710138101391014010141101421014310144101451014610147101481014910150101511015210153101541015510156101571015810159101601016110162101631016410165101661016710168101691017010171101721017310174101751017610177101781017910180101811018210183101841018510186101871018810189101901019110192101931019410195101961019710198101991020010201102021020310204102051020610207102081020910210102111021210213102141021510216102171021810219102201022110222102231022410225102261022710228102291023010231102321023310234102351023610237102381023910240102411024210243102441024510246102471024810249102501025110252102531025410255102561025710258102591026010261102621026310264102651026610267102681026910270102711027210273102741027510276102771027810279102801028110282102831028410285102861028710288102891029010291102921029310294102951029610297102981029910300103011030210303103041030510306103071030810309103101031110312103131031410315103161031710318103191032010321103221032310324103251032610327103281032910330103311033210333103341033510336103371033810339103401034110342103431034410345103461034710348103491035010351103521035310354103551035610357103581035910360103611036210363103641036510366103671036810369103701037110372103731037410375103761037710378103791038010381103821038310384103851038610387103881038910390103911039210393103941039510396103971039810399104001040110402104031040410405104061040710408104091041010411104121041310414104151041610417104181041910420104211042210423104241042510426104271042810429104301043110432104331043410435104361043710438104391044010441104421044310444104451044610447104481044910450104511045210453104541045510456104571045810459104601046110462104631046410465104661046710468104691047010471104721047310474104751047610477104781047910480104811048210483104841048510486104871048810489104901049110492104931049410495104961049710498104991050010501105021050310504105051050610507105081050910510105111051210513105141051510516105171051810519105201052110522105231052410525105261052710528105291053010531105321053310534105351053610537105381053910540105411054210543105441054510546105471054810549105501055110552105531055410555105561055710558105591056010561105621056310564105651056610567105681056910570105711057210573105741057510576105771057810579105801058110582105831058410585105861058710588105891059010591105921059310594105951059610597105981059910600106011060210603106041060510606106071060810609106101061110612106131061410615106161061710618106191062010621106221062310624106251062610627106281062910630106311063210633106341063510636106371063810639106401064110642106431064410645106461064710648106491065010651106521065310654106551065610657106581065910660106611066210663106641066510666106671066810669106701067110672106731067410675106761067710678106791068010681106821068310684106851068610687106881068910690106911069210693106941069510696106971069810699107001070110702107031070410705107061070710708107091071010711107121071310714107151071610717107181071910720107211072210723107241072510726107271072810729107301073110732107331073410735107361073710738107391074010741107421074310744107451074610747107481074910750107511075210753107541075510756107571075810759107601076110762107631076410765107661076710768107691077010771107721077310774107751077610777107781077910780107811078210783107841078510786107871078810789107901079110792107931079410795107961079710798107991080010801108021080310804108051080610807108081080910810108111081210813108141081510816108171081810819108201082110822108231082410825108261082710828108291083010831108321083310834108351083610837108381083910840108411084210843108441084510846108471084810849108501085110852108531085410855108561085710858108591086010861108621086310864108651086610867108681086910870108711087210873108741087510876108771087810879108801088110882108831088410885108861088710888108891089010891108921089310894108951089610897108981089910900109011090210903109041090510906109071090810909109101091110912109131091410915109161091710918109191092010921109221092310924109251092610927109281092910930109311093210933109341093510936109371093810939109401094110942109431094410945109461094710948109491095010951109521095310954109551095610957109581095910960109611096210963109641096510966109671096810969109701097110972109731097410975109761097710978109791098010981109821098310984109851098610987109881098910990109911099210993109941099510996109971099810999110001100111002110031100411005110061100711008110091101011011110121101311014110151101611017110181101911020110211102211023110241102511026110271102811029110301103111032110331103411035110361103711038110391104011041110421104311044110451104611047110481104911050110511105211053110541105511056110571105811059110601106111062110631106411065110661106711068110691107011071110721107311074110751107611077110781107911080110811108211083110841108511086110871108811089110901109111092110931109411095110961109711098110991110011101111021110311104111051110611107111081110911110111111111211113111141111511116111171111811119111201112111122111231112411125111261112711128111291113011131111321113311134111351113611137111381113911140111411114211143111441114511146111471114811149111501115111152111531115411155111561115711158111591116011161111621116311164111651116611167111681116911170111711117211173111741117511176111771117811179111801118111182111831118411185111861118711188111891119011191111921119311194111951119611197111981119911200112011120211203112041120511206112071120811209112101121111212112131121411215112161121711218112191122011221112221122311224112251122611227112281122911230112311123211233112341123511236112371123811239112401124111242112431124411245112461124711248112491125011251112521125311254112551125611257112581125911260112611126211263112641126511266112671126811269112701127111272112731127411275112761127711278112791128011281112821128311284112851128611287112881128911290112911129211293112941129511296112971129811299113001130111302113031130411305113061130711308113091131011311113121131311314113151131611317113181131911320113211132211323113241132511326113271132811329113301133111332113331133411335113361133711338113391134011341113421134311344113451134611347113481134911350113511135211353113541135511356113571135811359113601136111362113631136411365113661136711368113691137011371113721137311374113751137611377113781137911380113811138211383113841138511386113871138811389113901139111392113931139411395113961139711398113991140011401114021140311404114051140611407114081140911410114111141211413114141141511416114171141811419114201142111422114231142411425114261142711428114291143011431114321143311434114351143611437114381143911440114411144211443114441144511446114471144811449114501145111452114531145411455114561145711458114591146011461114621146311464114651146611467114681146911470114711147211473114741147511476114771147811479114801148111482114831148411485114861148711488114891149011491114921149311494114951149611497114981149911500115011150211503115041150511506115071150811509115101151111512115131151411515115161151711518115191152011521115221152311524115251152611527115281152911530115311153211533115341153511536115371153811539115401154111542115431154411545115461154711548115491155011551115521155311554115551155611557115581155911560115611156211563115641156511566115671156811569115701157111572115731157411575115761157711578115791158011581115821158311584115851158611587115881158911590115911159211593115941159511596115971159811599116001160111602116031160411605116061160711608116091161011611116121161311614116151161611617116181161911620116211162211623116241162511626116271162811629116301163111632116331163411635116361163711638116391164011641116421164311644116451164611647116481164911650116511165211653116541165511656116571165811659116601166111662116631166411665116661166711668116691167011671116721167311674116751167611677116781167911680116811168211683116841168511686116871168811689116901169111692116931169411695116961169711698116991170011701117021170311704117051170611707117081170911710117111171211713117141171511716117171171811719117201172111722117231172411725117261172711728117291173011731117321173311734117351173611737117381173911740117411174211743117441174511746117471174811749117501175111752117531175411755117561175711758117591176011761117621176311764117651176611767117681176911770117711177211773117741177511776117771177811779117801178111782117831178411785117861178711788117891179011791117921179311794117951179611797117981179911800118011180211803118041180511806118071180811809118101181111812118131181411815118161181711818118191182011821118221182311824118251182611827118281182911830118311183211833118341183511836118371183811839118401184111842118431184411845118461184711848118491185011851118521185311854118551185611857118581185911860118611186211863118641186511866118671186811869118701187111872118731187411875118761187711878118791188011881118821188311884118851188611887118881188911890118911189211893118941189511896118971189811899119001190111902119031190411905119061190711908119091191011911119121191311914119151191611917119181191911920119211192211923119241192511926119271192811929119301193111932119331193411935119361193711938119391194011941119421194311944119451194611947119481194911950119511195211953119541195511956119571195811959119601196111962119631196411965119661196711968119691197011971119721197311974119751197611977119781197911980119811198211983119841198511986119871198811989119901199111992119931199411995119961199711998119991200012001120021200312004120051200612007120081200912010120111201212013120141201512016120171201812019120201202112022120231202412025120261202712028120291203012031120321203312034120351203612037120381203912040120411204212043120441204512046120471204812049120501205112052120531205412055120561205712058120591206012061120621206312064120651206612067120681206912070120711207212073120741207512076120771207812079120801208112082120831208412085120861208712088120891209012091120921209312094120951209612097120981209912100121011210212103121041210512106121071210812109121101211112112121131211412115121161211712118121191212012121121221212312124121251212612127121281212912130121311213212133121341213512136121371213812139121401214112142121431214412145121461214712148121491215012151121521215312154121551215612157121581215912160121611216212163121641216512166121671216812169121701217112172121731217412175121761217712178121791218012181121821218312184121851218612187121881218912190121911219212193121941219512196121971219812199122001220112202122031220412205122061220712208122091221012211122121221312214122151221612217122181221912220122211222212223122241222512226122271222812229122301223112232122331223412235122361223712238122391224012241122421224312244122451224612247122481224912250122511225212253122541225512256122571225812259122601226112262122631226412265122661226712268122691227012271122721227312274122751227612277122781227912280122811228212283122841228512286122871228812289122901229112292122931229412295122961229712298122991230012301123021230312304123051230612307123081230912310123111231212313123141231512316123171231812319123201232112322123231232412325123261232712328123291233012331123321233312334123351233612337123381233912340123411234212343123441234512346123471234812349123501235112352123531235412355123561235712358123591236012361123621236312364123651236612367123681236912370123711237212373123741237512376123771237812379123801238112382123831238412385123861238712388123891239012391123921239312394123951239612397123981239912400124011240212403124041240512406124071240812409124101241112412124131241412415124161241712418124191242012421124221242312424124251242612427124281242912430124311243212433124341243512436124371243812439124401244112442124431244412445124461244712448124491245012451124521245312454124551245612457124581245912460124611246212463124641246512466124671246812469124701247112472124731247412475124761247712478124791248012481124821248312484124851248612487124881248912490124911249212493124941249512496124971249812499125001250112502125031250412505125061250712508125091251012511125121251312514125151251612517125181251912520125211252212523125241252512526125271252812529125301253112532125331253412535125361253712538125391254012541125421254312544125451254612547125481254912550125511255212553125541255512556125571255812559125601256112562125631256412565125661256712568125691257012571125721257312574125751257612577125781257912580125811258212583125841258512586125871258812589125901259112592125931259412595125961259712598125991260012601126021260312604126051260612607126081260912610126111261212613126141261512616126171261812619126201262112622126231262412625126261262712628126291263012631126321263312634126351263612637126381263912640126411264212643126441264512646126471264812649126501265112652126531265412655126561265712658126591266012661126621266312664126651266612667126681266912670126711267212673126741267512676126771267812679126801268112682126831268412685126861268712688126891269012691126921269312694126951269612697126981269912700127011270212703127041270512706127071270812709127101271112712127131271412715127161271712718127191272012721127221272312724127251272612727127281272912730127311273212733127341273512736127371273812739127401274112742127431274412745127461274712748127491275012751127521275312754127551275612757127581275912760127611276212763127641276512766127671276812769127701277112772127731277412775127761277712778127791278012781127821278312784127851278612787127881278912790127911279212793127941279512796127971279812799128001280112802128031280412805128061280712808128091281012811128121281312814128151281612817128181281912820128211282212823128241282512826128271282812829128301283112832128331283412835128361283712838128391284012841128421284312844128451284612847128481284912850128511285212853128541285512856128571285812859128601286112862128631286412865128661286712868128691287012871128721287312874128751287612877128781287912880128811288212883128841288512886128871288812889128901289112892128931289412895128961289712898128991290012901129021290312904129051290612907129081290912910129111291212913129141291512916129171291812919129201292112922129231292412925129261292712928129291293012931129321293312934129351293612937129381293912940129411294212943129441294512946129471294812949129501295112952129531295412955129561295712958129591296012961129621296312964129651296612967129681296912970129711297212973129741297512976129771297812979129801298112982129831298412985129861298712988129891299012991129921299312994129951299612997129981299913000130011300213003130041300513006130071300813009130101301113012130131301413015130161301713018130191302013021130221302313024130251302613027130281302913030130311303213033130341303513036130371303813039130401304113042130431304413045130461304713048130491305013051130521305313054130551305613057130581305913060130611306213063130641306513066130671306813069130701307113072130731307413075130761307713078130791308013081130821308313084130851308613087130881308913090130911309213093130941309513096130971309813099131001310113102131031310413105131061310713108131091311013111131121311313114131151311613117131181311913120131211312213123131241312513126131271312813129131301313113132131331313413135131361313713138131391314013141131421314313144131451314613147131481314913150131511315213153131541315513156131571315813159131601316113162131631316413165131661316713168131691317013171131721317313174131751317613177131781317913180131811318213183131841318513186131871318813189131901319113192131931319413195131961319713198131991320013201132021320313204132051320613207132081320913210132111321213213132141321513216132171321813219132201322113222132231322413225132261322713228132291323013231132321323313234132351323613237132381323913240132411324213243132441324513246132471324813249132501325113252132531325413255132561325713258132591326013261132621326313264132651326613267132681326913270132711327213273132741327513276132771327813279132801328113282132831328413285132861328713288132891329013291132921329313294132951329613297132981329913300133011330213303133041330513306133071330813309133101331113312133131331413315133161331713318133191332013321133221332313324133251332613327133281332913330133311333213333133341333513336133371333813339133401334113342133431334413345133461334713348133491335013351133521335313354133551335613357133581335913360133611336213363133641336513366133671336813369133701337113372133731337413375133761337713378133791338013381133821338313384133851338613387133881338913390133911339213393133941339513396133971339813399134001340113402134031340413405134061340713408134091341013411134121341313414134151341613417134181341913420134211342213423134241342513426134271342813429134301343113432134331343413435134361343713438134391344013441134421344313444134451344613447134481344913450134511345213453134541345513456134571345813459134601346113462134631346413465134661346713468134691347013471134721347313474134751347613477134781347913480134811348213483134841348513486134871348813489134901349113492134931349413495134961349713498134991350013501135021350313504135051350613507135081350913510135111351213513135141351513516135171351813519135201352113522135231352413525135261352713528135291353013531135321353313534135351353613537135381353913540135411354213543135441354513546135471354813549135501355113552135531355413555135561355713558135591356013561135621356313564135651356613567135681356913570135711357213573135741357513576135771357813579135801358113582135831358413585135861358713588135891359013591135921359313594135951359613597135981359913600136011360213603136041360513606136071360813609136101361113612136131361413615136161361713618136191362013621136221362313624136251362613627136281362913630136311363213633136341363513636136371363813639136401364113642136431364413645136461364713648136491365013651136521365313654136551365613657136581365913660136611366213663136641366513666136671366813669136701367113672136731367413675136761367713678136791368013681136821368313684136851368613687136881368913690136911369213693136941369513696136971369813699137001370113702137031370413705137061370713708137091371013711137121371313714137151371613717137181371913720137211372213723137241372513726137271372813729137301373113732137331373413735137361373713738137391374013741137421374313744137451374613747137481374913750137511375213753137541375513756137571375813759137601376113762137631376413765137661376713768137691377013771137721377313774137751377613777137781377913780137811378213783137841378513786137871378813789137901379113792137931379413795137961379713798137991380013801138021380313804138051380613807138081380913810138111381213813138141381513816138171381813819138201382113822138231382413825138261382713828138291383013831138321383313834138351383613837138381383913840138411384213843138441384513846138471384813849138501385113852138531385413855138561385713858138591386013861138621386313864138651386613867138681386913870138711387213873138741387513876138771387813879138801388113882138831388413885138861388713888138891389013891138921389313894138951389613897138981389913900139011390213903139041390513906139071390813909139101391113912139131391413915139161391713918139191392013921139221392313924139251392613927139281392913930139311393213933139341393513936139371393813939139401394113942139431394413945139461394713948139491395013951139521395313954139551395613957139581395913960139611396213963139641396513966139671396813969139701397113972139731397413975139761397713978139791398013981139821398313984139851398613987139881398913990139911399213993139941399513996139971399813999140001400114002140031400414005140061400714008140091401014011140121401314014140151401614017140181401914020140211402214023140241402514026140271402814029140301403114032140331403414035140361403714038140391404014041140421404314044140451404614047140481404914050140511405214053140541405514056140571405814059140601406114062140631406414065140661406714068140691407014071140721407314074140751407614077140781407914080140811408214083140841408514086140871408814089140901409114092140931409414095140961409714098140991410014101141021410314104141051410614107141081410914110141111411214113141141411514116141171411814119141201412114122141231412414125141261412714128141291413014131141321413314134141351413614137141381413914140141411414214143141441414514146141471414814149141501415114152141531415414155141561415714158141591416014161141621416314164141651416614167141681416914170141711417214173141741417514176141771417814179141801418114182141831418414185141861418714188141891419014191141921419314194141951419614197141981419914200142011420214203142041420514206142071420814209142101421114212142131421414215142161421714218142191422014221142221422314224142251422614227142281422914230142311423214233142341423514236142371423814239142401424114242142431424414245142461424714248142491425014251142521425314254142551425614257142581425914260142611426214263142641426514266142671426814269142701427114272142731427414275142761427714278142791428014281142821428314284142851428614287142881428914290142911429214293142941429514296142971429814299143001430114302143031430414305143061430714308143091431014311143121431314314143151431614317143181431914320143211432214323143241432514326143271432814329143301433114332143331433414335143361433714338143391434014341143421434314344143451434614347143481434914350143511435214353143541435514356143571435814359143601436114362143631436414365143661436714368143691437014371143721437314374143751437614377143781437914380143811438214383143841438514386143871438814389143901439114392143931439414395143961439714398143991440014401144021440314404144051440614407144081440914410144111441214413144141441514416144171441814419144201442114422144231442414425144261442714428144291443014431144321443314434144351443614437144381443914440144411444214443144441444514446144471444814449144501445114452144531445414455144561445714458144591446014461144621446314464144651446614467144681446914470144711447214473144741447514476144771447814479144801448114482144831448414485144861448714488144891449014491144921449314494144951449614497144981449914500145011450214503145041450514506145071450814509145101451114512145131451414515145161451714518145191452014521145221452314524145251452614527145281452914530145311453214533145341453514536145371453814539145401454114542145431454414545145461454714548145491455014551145521455314554145551455614557145581455914560145611456214563145641456514566145671456814569145701457114572145731457414575145761457714578145791458014581145821458314584145851458614587145881458914590145911459214593145941459514596145971459814599146001460114602146031460414605146061460714608146091461014611146121461314614146151461614617146181461914620146211462214623146241462514626146271462814629146301463114632146331463414635146361463714638146391464014641146421464314644146451464614647146481464914650146511465214653146541465514656146571465814659146601466114662146631466414665146661466714668146691467014671146721467314674146751467614677146781467914680146811468214683146841468514686146871468814689146901469114692146931469414695146961469714698146991470014701147021470314704147051470614707147081470914710147111471214713147141471514716147171471814719147201472114722147231472414725147261472714728147291473014731147321473314734147351473614737147381473914740147411474214743147441474514746147471474814749147501475114752147531475414755147561475714758147591476014761147621476314764147651476614767147681476914770147711477214773147741477514776147771477814779147801478114782147831478414785147861478714788147891479014791147921479314794147951479614797147981479914800148011480214803148041480514806148071480814809148101481114812148131481414815148161481714818148191482014821148221482314824148251482614827148281482914830148311483214833148341483514836148371483814839148401484114842148431484414845148461484714848148491485014851148521485314854148551485614857148581485914860148611486214863148641486514866148671486814869148701487114872148731487414875148761487714878148791488014881148821488314884148851488614887148881488914890148911489214893148941489514896148971489814899149001490114902149031490414905149061490714908149091491014911149121491314914149151491614917149181491914920149211492214923149241492514926149271492814929149301493114932149331493414935149361493714938149391494014941149421494314944149451494614947149481494914950149511495214953149541495514956149571495814959149601496114962149631496414965149661496714968149691497014971149721497314974149751497614977149781497914980149811498214983149841498514986149871498814989149901499114992149931499414995149961499714998149991500015001150021500315004150051500615007150081500915010150111501215013150141501515016150171501815019150201502115022150231502415025150261502715028150291503015031150321503315034150351503615037150381503915040150411504215043150441504515046150471504815049150501505115052150531505415055150561505715058150591506015061150621506315064150651506615067150681506915070150711507215073150741507515076150771507815079150801508115082150831508415085150861508715088150891509015091150921509315094150951509615097150981509915100151011510215103151041510515106151071510815109151101511115112151131511415115151161511715118151191512015121151221512315124151251512615127151281512915130151311513215133151341513515136151371513815139151401514115142151431514415145151461514715148151491515015151151521515315154151551515615157151581515915160151611516215163151641516515166151671516815169151701517115172151731517415175151761517715178151791518015181151821518315184151851518615187151881518915190151911519215193151941519515196151971519815199152001520115202152031520415205152061520715208152091521015211152121521315214152151521615217152181521915220152211522215223152241522515226152271522815229152301523115232152331523415235152361523715238152391524015241152421524315244152451524615247152481524915250152511525215253152541525515256152571525815259152601526115262152631526415265152661526715268152691527015271152721527315274152751527615277152781527915280152811528215283152841528515286152871528815289152901529115292152931529415295152961529715298152991530015301153021530315304153051530615307153081530915310153111531215313153141531515316153171531815319153201532115322153231532415325153261532715328153291533015331153321533315334153351533615337153381533915340153411534215343153441534515346153471534815349153501535115352153531535415355153561535715358153591536015361153621536315364153651536615367153681536915370153711537215373153741537515376153771537815379153801538115382153831538415385153861538715388153891539015391153921539315394153951539615397153981539915400154011540215403154041540515406154071540815409154101541115412154131541415415154161541715418154191542015421154221542315424154251542615427154281542915430154311543215433154341543515436154371543815439154401544115442154431544415445154461544715448154491545015451154521545315454154551545615457154581545915460154611546215463154641546515466154671546815469154701547115472154731547415475154761547715478154791548015481154821548315484154851548615487154881548915490154911549215493154941549515496154971549815499155001550115502155031550415505155061550715508155091551015511155121551315514155151551615517155181551915520155211552215523155241552515526155271552815529155301553115532155331553415535155361553715538155391554015541155421554315544155451554615547155481554915550155511555215553155541555515556155571555815559155601556115562155631556415565155661556715568155691557015571155721557315574155751557615577155781557915580155811558215583155841558515586155871558815589155901559115592155931559415595155961559715598155991560015601156021560315604156051560615607156081560915610156111561215613156141561515616156171561815619156201562115622156231562415625156261562715628156291563015631156321563315634156351563615637156381563915640156411564215643156441564515646156471564815649156501565115652156531565415655156561565715658156591566015661156621566315664156651566615667156681566915670156711567215673156741567515676156771567815679156801568115682156831568415685156861568715688156891569015691156921569315694156951569615697156981569915700157011570215703157041570515706157071570815709157101571115712157131571415715157161571715718157191572015721157221572315724157251572615727157281572915730157311573215733157341573515736157371573815739157401574115742157431574415745157461574715748157491575015751157521575315754157551575615757157581575915760157611576215763157641576515766157671576815769157701577115772157731577415775157761577715778157791578015781157821578315784157851578615787157881578915790157911579215793157941579515796157971579815799158001580115802158031580415805158061580715808158091581015811158121581315814158151581615817158181581915820158211582215823158241582515826158271582815829158301583115832158331583415835158361583715838158391584015841158421584315844158451584615847158481584915850158511585215853158541585515856158571585815859158601586115862158631586415865158661586715868158691587015871158721587315874158751587615877158781587915880158811588215883158841588515886158871588815889158901589115892158931589415895158961589715898158991590015901159021590315904159051590615907159081590915910159111591215913159141591515916159171591815919159201592115922159231592415925159261592715928159291593015931159321593315934159351593615937159381593915940159411594215943159441594515946159471594815949159501595115952159531595415955159561595715958159591596015961159621596315964159651596615967159681596915970159711597215973159741597515976159771597815979159801598115982159831598415985159861598715988159891599015991159921599315994159951599615997159981599916000160011600216003160041600516006160071600816009160101601116012160131601416015160161601716018160191602016021160221602316024160251602616027160281602916030160311603216033160341603516036160371603816039160401604116042160431604416045160461604716048160491605016051160521605316054160551605616057160581605916060160611606216063160641606516066160671606816069160701607116072160731607416075160761607716078160791608016081160821608316084160851608616087160881608916090160911609216093160941609516096160971609816099161001610116102161031610416105161061610716108161091611016111161121611316114161151611616117161181611916120161211612216123161241612516126161271612816129161301613116132161331613416135161361613716138161391614016141161421614316144161451614616147161481614916150161511615216153161541615516156161571615816159161601616116162161631616416165161661616716168161691617016171161721617316174161751617616177161781617916180161811618216183161841618516186161871618816189161901619116192161931619416195161961619716198161991620016201162021620316204162051620616207162081620916210162111621216213162141621516216162171621816219162201622116222162231622416225162261622716228162291623016231162321623316234162351623616237162381623916240162411624216243162441624516246162471624816249162501625116252162531625416255162561625716258162591626016261162621626316264162651626616267162681626916270162711627216273162741627516276162771627816279162801628116282162831628416285162861628716288162891629016291162921629316294162951629616297162981629916300163011630216303163041630516306163071630816309163101631116312163131631416315163161631716318163191632016321163221632316324163251632616327163281632916330163311633216333163341633516336163371633816339163401634116342163431634416345163461634716348163491635016351163521635316354163551635616357163581635916360163611636216363163641636516366163671636816369163701637116372163731637416375163761637716378163791638016381163821638316384163851638616387163881638916390163911639216393163941639516396163971639816399164001640116402164031640416405164061640716408164091641016411164121641316414164151641616417164181641916420164211642216423164241642516426164271642816429164301643116432164331643416435164361643716438164391644016441164421644316444164451644616447164481644916450164511645216453164541645516456164571645816459164601646116462164631646416465164661646716468164691647016471164721647316474164751647616477164781647916480164811648216483164841648516486164871648816489164901649116492164931649416495164961649716498164991650016501165021650316504165051650616507165081650916510165111651216513165141651516516165171651816519165201652116522165231652416525165261652716528165291653016531165321653316534165351653616537165381653916540165411654216543165441654516546165471654816549165501655116552165531655416555165561655716558165591656016561165621656316564165651656616567165681656916570165711657216573165741657516576165771657816579165801658116582165831658416585165861658716588165891659016591165921659316594165951659616597165981659916600166011660216603166041660516606166071660816609166101661116612166131661416615166161661716618166191662016621166221662316624166251662616627166281662916630166311663216633166341663516636166371663816639166401664116642166431664416645166461664716648166491665016651166521665316654166551665616657166581665916660166611666216663166641666516666166671666816669166701667116672166731667416675166761667716678166791668016681166821668316684166851668616687166881668916690166911669216693166941669516696166971669816699167001670116702167031670416705167061670716708167091671016711167121671316714167151671616717167181671916720167211672216723167241672516726167271672816729167301673116732167331673416735167361673716738167391674016741167421674316744167451674616747167481674916750167511675216753167541675516756167571675816759167601676116762167631676416765167661676716768167691677016771167721677316774167751677616777167781677916780167811678216783167841678516786167871678816789167901679116792167931679416795167961679716798167991680016801168021680316804168051680616807168081680916810168111681216813168141681516816168171681816819168201682116822168231682416825168261682716828168291683016831168321683316834168351683616837168381683916840168411684216843168441684516846168471684816849168501685116852168531685416855168561685716858168591686016861168621686316864168651686616867168681686916870168711687216873168741687516876168771687816879168801688116882168831688416885168861688716888168891689016891168921689316894168951689616897168981689916900169011690216903169041690516906169071690816909169101691116912169131691416915169161691716918169191692016921169221692316924169251692616927169281692916930169311693216933169341693516936169371693816939169401694116942169431694416945169461694716948169491695016951169521695316954169551695616957169581695916960169611696216963169641696516966169671696816969169701697116972169731697416975169761697716978169791698016981169821698316984169851698616987169881698916990169911699216993169941699516996169971699816999170001700117002170031700417005170061700717008170091701017011170121701317014170151701617017170181701917020170211702217023170241702517026170271702817029170301703117032170331703417035170361703717038170391704017041170421704317044170451704617047170481704917050170511705217053170541705517056170571705817059170601706117062170631706417065170661706717068170691707017071170721707317074170751707617077170781707917080170811708217083170841708517086170871708817089170901709117092170931709417095170961709717098170991710017101171021710317104171051710617107171081710917110171111711217113171141711517116171171711817119171201712117122171231712417125171261712717128171291713017131171321713317134171351713617137171381713917140171411714217143171441714517146171471714817149171501715117152171531715417155171561715717158171591716017161171621716317164171651716617167171681716917170171711717217173171741717517176171771717817179171801718117182171831718417185171861718717188171891719017191171921719317194171951719617197171981719917200172011720217203172041720517206172071720817209172101721117212172131721417215172161721717218172191722017221172221722317224172251722617227172281722917230172311723217233172341723517236172371723817239172401724117242172431724417245172461724717248172491725017251172521725317254172551725617257172581725917260172611726217263172641726517266172671726817269172701727117272172731727417275172761727717278172791728017281172821728317284172851728617287172881728917290172911729217293172941729517296172971729817299173001730117302173031730417305173061730717308173091731017311173121731317314173151731617317173181731917320173211732217323173241732517326173271732817329173301733117332173331733417335173361733717338173391734017341173421734317344173451734617347173481734917350173511735217353173541735517356173571735817359173601736117362173631736417365173661736717368173691737017371173721737317374173751737617377173781737917380173811738217383173841738517386173871738817389173901739117392173931739417395173961739717398173991740017401174021740317404174051740617407174081740917410174111741217413174141741517416174171741817419174201742117422174231742417425174261742717428174291743017431174321743317434174351743617437174381743917440174411744217443174441744517446174471744817449174501745117452174531745417455174561745717458174591746017461174621746317464174651746617467174681746917470174711747217473174741747517476174771747817479174801748117482174831748417485174861748717488174891749017491174921749317494174951749617497174981749917500175011750217503175041750517506175071750817509175101751117512175131751417515175161751717518175191752017521175221752317524175251752617527175281752917530175311753217533175341753517536175371753817539175401754117542175431754417545175461754717548175491755017551175521755317554175551755617557175581755917560175611756217563175641756517566175671756817569175701757117572175731757417575175761757717578175791758017581175821758317584175851758617587175881758917590175911759217593175941759517596175971759817599176001760117602176031760417605176061760717608176091761017611176121761317614176151761617617176181761917620176211762217623176241762517626176271762817629176301763117632176331763417635176361763717638176391764017641176421764317644176451764617647176481764917650176511765217653176541765517656176571765817659176601766117662176631766417665176661766717668176691767017671176721767317674176751767617677176781767917680176811768217683176841768517686176871768817689176901769117692176931769417695176961769717698176991770017701177021770317704177051770617707177081770917710177111771217713177141771517716177171771817719177201772117722177231772417725177261772717728177291773017731177321773317734177351773617737177381773917740177411774217743177441774517746177471774817749177501775117752177531775417755177561775717758177591776017761177621776317764177651776617767177681776917770177711777217773177741777517776177771777817779177801778117782177831778417785177861778717788177891779017791177921779317794177951779617797177981779917800178011780217803178041780517806178071780817809178101781117812178131781417815178161781717818178191782017821178221782317824178251782617827178281782917830178311783217833178341783517836178371783817839178401784117842178431784417845178461784717848178491785017851178521785317854178551785617857178581785917860178611786217863178641786517866178671786817869178701787117872178731787417875178761787717878178791788017881178821788317884178851788617887178881788917890178911789217893178941789517896178971789817899179001790117902179031790417905179061790717908179091791017911179121791317914179151791617917179181791917920179211792217923179241792517926179271792817929179301793117932179331793417935179361793717938179391794017941179421794317944179451794617947179481794917950179511795217953179541795517956179571795817959179601796117962179631796417965179661796717968179691797017971179721797317974179751797617977179781797917980179811798217983179841798517986179871798817989179901799117992179931799417995179961799717998179991800018001180021800318004180051800618007180081800918010180111801218013180141801518016180171801818019180201802118022180231802418025180261802718028180291803018031180321803318034180351803618037180381803918040180411804218043180441804518046180471804818049180501805118052180531805418055180561805718058180591806018061180621806318064180651806618067180681806918070180711807218073180741807518076180771807818079180801808118082180831808418085180861808718088180891809018091180921809318094180951809618097180981809918100181011810218103181041810518106181071810818109181101811118112181131811418115181161811718118181191812018121181221812318124181251812618127181281812918130181311813218133181341813518136181371813818139181401814118142181431814418145181461814718148181491815018151181521815318154181551815618157181581815918160181611816218163181641816518166181671816818169181701817118172181731817418175181761817718178181791818018181181821818318184181851818618187181881818918190181911819218193181941819518196181971819818199182001820118202182031820418205182061820718208182091821018211182121821318214182151821618217182181821918220182211822218223182241822518226182271822818229182301823118232182331823418235182361823718238182391824018241182421824318244182451824618247182481824918250182511825218253182541825518256182571825818259182601826118262182631826418265182661826718268182691827018271182721827318274182751827618277182781827918280182811828218283182841828518286182871828818289182901829118292182931829418295182961829718298182991830018301183021830318304183051830618307183081830918310183111831218313183141831518316183171831818319183201832118322183231832418325183261832718328183291833018331183321833318334183351833618337183381833918340183411834218343183441834518346183471834818349183501835118352183531835418355183561835718358183591836018361183621836318364183651836618367183681836918370183711837218373183741837518376183771837818379183801838118382183831838418385183861838718388183891839018391183921839318394183951839618397183981839918400184011840218403184041840518406184071840818409184101841118412184131841418415184161841718418184191842018421184221842318424184251842618427184281842918430184311843218433184341843518436184371843818439184401844118442184431844418445184461844718448184491845018451184521845318454184551845618457184581845918460184611846218463184641846518466184671846818469184701847118472184731847418475184761847718478184791848018481184821848318484184851848618487184881848918490184911849218493184941849518496184971849818499185001850118502185031850418505185061850718508185091851018511185121851318514185151851618517185181851918520185211852218523185241852518526185271852818529185301853118532185331853418535185361853718538185391854018541185421854318544185451854618547185481854918550185511855218553185541855518556185571855818559185601856118562185631856418565185661856718568185691857018571185721857318574185751857618577185781857918580185811858218583185841858518586185871858818589185901859118592185931859418595185961859718598185991860018601186021860318604186051860618607186081860918610186111861218613186141861518616186171861818619186201862118622186231862418625186261862718628186291863018631186321863318634186351863618637186381863918640186411864218643186441864518646186471864818649186501865118652186531865418655186561865718658186591866018661186621866318664186651866618667186681866918670186711867218673186741867518676186771867818679186801868118682186831868418685186861868718688186891869018691186921869318694186951869618697186981869918700187011870218703187041870518706187071870818709187101871118712187131871418715187161871718718187191872018721187221872318724187251872618727187281872918730187311873218733187341873518736187371873818739187401874118742187431874418745187461874718748187491875018751187521875318754187551875618757187581875918760187611876218763187641876518766187671876818769187701877118772187731877418775187761877718778187791878018781187821878318784187851878618787187881878918790187911879218793187941879518796187971879818799188001880118802188031880418805188061880718808188091881018811188121881318814188151881618817188181881918820188211882218823188241882518826188271882818829188301883118832188331883418835188361883718838188391884018841188421884318844188451884618847188481884918850188511885218853188541885518856188571885818859188601886118862188631886418865188661886718868188691887018871188721887318874188751887618877188781887918880188811888218883188841888518886188871888818889188901889118892188931889418895188961889718898188991890018901189021890318904189051890618907189081890918910189111891218913189141891518916189171891818919189201892118922189231892418925189261892718928189291893018931189321893318934189351893618937189381893918940189411894218943189441894518946189471894818949189501895118952189531895418955189561895718958189591896018961189621896318964189651896618967189681896918970189711897218973189741897518976189771897818979189801898118982189831898418985189861898718988189891899018991189921899318994189951899618997189981899919000190011900219003190041900519006190071900819009190101901119012190131901419015190161901719018190191902019021190221902319024190251902619027190281902919030190311903219033190341903519036190371903819039190401904119042190431904419045190461904719048190491905019051190521905319054190551905619057190581905919060190611906219063190641906519066190671906819069190701907119072190731907419075190761907719078190791908019081190821908319084190851908619087190881908919090190911909219093190941909519096190971909819099191001910119102191031910419105191061910719108191091911019111191121911319114191151911619117191181911919120191211912219123191241912519126191271912819129191301913119132191331913419135191361913719138191391914019141191421914319144191451914619147191481914919150191511915219153191541915519156191571915819159191601916119162191631916419165191661916719168191691917019171191721917319174191751917619177191781917919180191811918219183191841918519186191871918819189191901919119192191931919419195191961919719198191991920019201192021920319204192051920619207192081920919210192111921219213192141921519216192171921819219192201922119222192231922419225192261922719228192291923019231192321923319234192351923619237192381923919240192411924219243192441924519246192471924819249192501925119252192531925419255192561925719258192591926019261192621926319264192651926619267192681926919270192711927219273192741927519276192771927819279192801928119282192831928419285192861928719288192891929019291192921929319294192951929619297192981929919300193011930219303193041930519306193071930819309193101931119312193131931419315193161931719318193191932019321193221932319324193251932619327193281932919330193311933219333193341933519336193371933819339193401934119342193431934419345193461934719348193491935019351193521935319354193551935619357193581935919360193611936219363193641936519366193671936819369193701937119372193731937419375193761937719378193791938019381193821938319384193851938619387193881938919390193911939219393193941939519396193971939819399194001940119402194031940419405194061940719408194091941019411194121941319414194151941619417194181941919420194211942219423194241942519426194271942819429194301943119432194331943419435194361943719438194391944019441194421944319444194451944619447194481944919450194511945219453194541945519456194571945819459194601946119462194631946419465194661946719468194691947019471194721947319474194751947619477194781947919480194811948219483194841948519486194871948819489194901949119492194931949419495194961949719498194991950019501195021950319504195051950619507195081950919510195111951219513195141951519516195171951819519195201952119522195231952419525195261952719528195291953019531195321953319534195351953619537195381953919540195411954219543195441954519546195471954819549195501955119552195531955419555195561955719558195591956019561195621956319564195651956619567195681956919570195711957219573195741957519576195771957819579195801958119582195831958419585195861958719588195891959019591195921959319594195951959619597195981959919600196011960219603196041960519606196071960819609196101961119612196131961419615196161961719618196191962019621196221962319624196251962619627196281962919630196311963219633196341963519636196371963819639196401964119642196431964419645196461964719648196491965019651196521965319654196551965619657196581965919660196611966219663196641966519666196671966819669196701967119672196731967419675196761967719678196791968019681196821968319684196851968619687196881968919690196911969219693196941969519696196971969819699197001970119702197031970419705197061970719708197091971019711197121971319714197151971619717197181971919720197211972219723197241972519726197271972819729197301973119732197331973419735197361973719738197391974019741197421974319744197451974619747197481974919750197511975219753197541975519756197571975819759197601976119762197631976419765197661976719768197691977019771197721977319774197751977619777197781977919780197811978219783197841978519786197871978819789197901979119792197931979419795197961979719798197991980019801198021980319804198051980619807198081980919810198111981219813198141981519816198171981819819198201982119822198231982419825198261982719828198291983019831198321983319834198351983619837198381983919840198411984219843198441984519846198471984819849198501985119852198531985419855198561985719858198591986019861198621986319864198651986619867198681986919870198711987219873198741987519876198771987819879198801988119882198831988419885198861988719888198891989019891198921989319894198951989619897198981989919900199011990219903199041990519906199071990819909199101991119912199131991419915199161991719918199191992019921199221992319924199251992619927199281992919930199311993219933199341993519936199371993819939199401994119942199431994419945199461994719948199491995019951199521995319954199551995619957199581995919960199611996219963199641996519966199671996819969199701997119972199731997419975199761997719978199791998019981199821998319984199851998619987199881998919990199911999219993199941999519996199971999819999200002000120002200032000420005200062000720008200092001020011200122001320014200152001620017200182001920020200212002220023200242002520026200272002820029200302003120032200332003420035200362003720038200392004020041200422004320044200452004620047200482004920050200512005220053200542005520056200572005820059200602006120062200632006420065200662006720068200692007020071200722007320074200752007620077200782007920080200812008220083200842008520086200872008820089200902009120092200932009420095200962009720098200992010020101201022010320104201052010620107201082010920110201112011220113201142011520116201172011820119201202012120122201232012420125201262012720128201292013020131201322013320134201352013620137201382013920140201412014220143201442014520146201472014820149201502015120152201532015420155201562015720158201592016020161201622016320164201652016620167201682016920170201712017220173201742017520176201772017820179201802018120182201832018420185201862018720188201892019020191201922019320194201952019620197201982019920200202012020220203202042020520206202072020820209202102021120212202132021420215202162021720218202192022020221202222022320224202252022620227202282022920230202312023220233202342023520236202372023820239202402024120242202432024420245202462024720248202492025020251202522025320254202552025620257202582025920260202612026220263202642026520266202672026820269202702027120272202732027420275202762027720278202792028020281202822028320284202852028620287202882028920290202912029220293202942029520296202972029820299203002030120302203032030420305203062030720308203092031020311203122031320314203152031620317203182031920320203212032220323203242032520326203272032820329 |
- /*!
- * UEditor
- * version: ueditor
- * build: Wed Dec 26 2018 17:24:52 GMT+0800 (CST)
- */
- !(function () {
- function getListener(a, b, c) {
- var d
- return (
- (b = b.toLowerCase()),
- (d = a.__allListeners || (c && (a.__allListeners = {}))) &&
- (d[b] || (c && (d[b] = [])))
- )
- }
- function getDomNode(a, b, c, d, e, f) {
- var g,
- h = d && a[b]
- for (!h && (h = a[c]); !h && (g = (g || a).parentNode); ) {
- if ('BODY' == g.tagName || (f && !f(g))) return null
- h = g[c]
- }
- return h && e && !e(h) ? getDomNode(h, b, c, !1, e) : h
- }
- UEDITOR_CONFIG = window.UEDITOR_CONFIG || {}
- var baidu = window.baidu || {}
- ;(window.baidu = baidu),
- (window.UE = baidu.editor = window.UE || {}),
- (UE.plugins = {}),
- (UE.commands = {}),
- (UE.instants = {}),
- (UE.I18N = {}),
- (UE._customizeUI = {}),
- (UE.version = '1.4.3')
- var dom = (UE.dom = {}),
- browser = (UE.browser = (function () {
- var a = navigator.userAgent.toLowerCase(),
- b = window.opera,
- c = {
- ie: /(msie\s|trident.*rv:)([\w.]+)/.test(a),
- opera: !!b && b.version,
- webkit: a.indexOf(' applewebkit/') > -1,
- mac: a.indexOf('macintosh') > -1,
- quirks: 'BackCompat' == document.compatMode
- }
- c.gecko = 'Gecko' == navigator.product && !c.webkit && !c.opera && !c.ie
- var d = 0
- if (c.ie) {
- var e = a.match(/(?:msie\s([\w.]+))/),
- f = a.match(/(?:trident.*rv:([\w.]+))/)
- ;(d =
- e && f && e[1] && f[1]
- ? Math.max(1 * e[1], 1 * f[1])
- : e && e[1]
- ? 1 * e[1]
- : f && f[1]
- ? 1 * f[1]
- : 0),
- (c.ie11Compat = 11 == document.documentMode),
- (c.ie9Compat = 9 == document.documentMode),
- (c.ie8 = !!document.documentMode),
- (c.ie8Compat = 8 == document.documentMode),
- (c.ie7Compat =
- (7 == d && !document.documentMode) || 7 == document.documentMode),
- (c.ie6Compat = d < 7 || c.quirks),
- (c.ie9above = d > 8),
- (c.ie9below = d < 9),
- (c.ie11above = d > 10),
- (c.ie11below = d < 11)
- }
- if (c.gecko) {
- var g = a.match(/rv:([\d\.]+)/)
- g &&
- ((g = g[1].split('.')),
- (d = 1e4 * g[0] + 100 * (g[1] || 0) + 1 * (g[2] || 0)))
- }
- return (
- /chrome\/(\d+\.\d)/i.test(a) && (c.chrome = +RegExp.$1),
- /(\d+\.\d)?(?:\.\d)?\s+safari\/?(\d+\.\d+)?/i.test(a) &&
- !/chrome/i.test(a) &&
- (c.safari = +(RegExp.$1 || RegExp.$2)),
- c.opera && (d = parseFloat(b.version())),
- c.webkit && (d = parseFloat(a.match(/ applewebkit\/(\d+)/)[1])),
- (c.version = d),
- (c.isCompatible =
- !c.mobile &&
- ((c.ie && d >= 6) ||
- (c.gecko && d >= 10801) ||
- (c.opera && d >= 9.5) ||
- (c.air && d >= 1) ||
- (c.webkit && d >= 522) ||
- !1)),
- c
- )
- })()),
- ie = browser.ie,
- webkit = browser.webkit,
- gecko = browser.gecko,
- opera = browser.opera,
- utils = (UE.utils = {
- each: function (a, b, c) {
- if (null != a)
- if (a.length === +a.length) {
- for (var d = 0, e = a.length; d < e; d++)
- if (b.call(c, a[d], d, a) === !1) return !1
- } else
- for (var f in a)
- if (a.hasOwnProperty(f) && b.call(c, a[f], f, a) === !1) return !1
- },
- makeInstance: function (a) {
- var b = new Function()
- return (b.prototype = a), (a = new b()), (b.prototype = null), a
- },
- extend: function (a, b, c) {
- if (b) for (var d in b) (c && a.hasOwnProperty(d)) || (a[d] = b[d])
- return a
- },
- extend2: function (a) {
- for (var b = arguments, c = 1; c < b.length; c++) {
- var d = b[c]
- for (var e in d) a.hasOwnProperty(e) || (a[e] = d[e])
- }
- return a
- },
- inherits: function (a, b) {
- var c = a.prototype,
- d = utils.makeInstance(b.prototype)
- return utils.extend(d, c, !0), (a.prototype = d), (d.constructor = a)
- },
- bind: function (a, b) {
- return function () {
- return a.apply(b, arguments)
- }
- },
- defer: function (a, b, c) {
- var d
- return function () {
- c && clearTimeout(d), (d = setTimeout(a, b))
- }
- },
- indexOf: function (a, b, c) {
- var d = -1
- return (
- (c = this.isNumber(c) ? c : 0),
- this.each(a, function (a, e) {
- if (e >= c && a === b) return (d = e), !1
- }),
- d
- )
- },
- removeItem: function (a, b) {
- for (var c = 0, d = a.length; c < d; c++)
- a[c] === b && (a.splice(c, 1), c--)
- },
- trim: function (a) {
- return a.replace(/(^[ \t\n\r]+)|([ \t\n\r]+$)/g, '')
- },
- listToMap: function (a) {
- if (!a) return {}
- a = utils.isArray(a) ? a : a.split(',')
- for (var b, c = 0, d = {}; (b = a[c++]); ) d[b.toUpperCase()] = d[b] = 1
- return d
- },
- unhtml: function (a, b) {
- return a
- ? a.replace(
- b || /[&<">'](?:(amp|lt|quot|gt|#39|nbsp|#\d+);)?/g,
- function (a, b) {
- return b
- ? a
- : {
- '<': '<',
- '&': '&',
- '"': '"',
- '>': '>',
- "'": '''
- }[a]
- }
- )
- : ''
- },
- unhtmlForUrl: function (a, b) {
- return a
- ? a.replace(b || /[<">']/g, function (a) {
- return {
- '<': '<',
- '&': '&',
- '"': '"',
- '>': '>',
- "'": '''
- }[a]
- })
- : ''
- },
- html: function (a) {
- return a
- ? a.replace(/&((g|l|quo)t|amp|#39|nbsp);/g, function (a) {
- return {
- '<': '<',
- '&': '&',
- '"': '"',
- '>': '>',
- ''': "'",
- ' ': ' '
- }[a]
- })
- : ''
- },
- cssStyleToDomStyle: (function () {
- var a = document.createElement('div').style,
- b = {
- float:
- void 0 != a.cssFloat
- ? 'cssFloat'
- : void 0 != a.styleFloat
- ? 'styleFloat'
- : 'float'
- }
- return function (a) {
- return (
- b[a] ||
- (b[a] = a.toLowerCase().replace(/-./g, function (a) {
- return a.charAt(1).toUpperCase()
- }))
- )
- }
- })(),
- loadFile: (function () {
- function a(a, c) {
- try {
- for (var d, e = 0; (d = b[e++]); )
- if (d.doc === a && d.url == (c.src || c.href)) return d
- } catch (f) {
- return null
- }
- }
- var b = []
- return function (c, d, e) {
- var f = a(c, d)
- if (f) return void (f.ready ? e && e() : f.funs.push(e))
- if ((b.push({ doc: c, url: d.src || d.href, funs: [e] }), !c.body)) {
- var g = []
- for (var h in d) 'tag' != h && g.push(h + '="' + d[h] + '"')
- return void c.write(
- '<' + d.tag + ' ' + g.join(' ') + ' ></' + d.tag + '>'
- )
- }
- if (!d.id || !c.getElementById(d.id)) {
- var i = c.createElement(d.tag)
- delete d.tag
- for (var h in d) i.setAttribute(h, d[h])
- ;(i.onload = i.onreadystatechange =
- function () {
- if (
- !this.readyState ||
- /loaded|complete/.test(this.readyState)
- ) {
- if (((f = a(c, d)), f.funs.length > 0)) {
- f.ready = 1
- for (var b; (b = f.funs.pop()); ) b()
- }
- i.onload = i.onreadystatechange = null
- }
- }),
- (i.onerror = function () {
- throw Error(
- 'The load ' +
- (d.href || d.src) +
- ' fails,check the url settings of file ueditor.config.js '
- )
- }),
- c.getElementsByTagName('head')[0].appendChild(i)
- }
- }
- })(),
- isEmptyObject: function (a) {
- if (null == a) return !0
- if (this.isArray(a) || this.isString(a)) return 0 === a.length
- for (var b in a) if (a.hasOwnProperty(b)) return !1
- return !0
- },
- fixColor: function (a, b) {
- if (/color/i.test(a) && /rgba?/.test(b)) {
- var c = b.split(',')
- if (c.length > 3) return ''
- b = '#'
- for (var d, e = 0; (d = c[e++]); )
- (d = parseInt(d.replace(/[^\d]/gi, ''), 10).toString(16)),
- (b += 1 == d.length ? '0' + d : d)
- b = b.toUpperCase()
- }
- return b
- },
- optCss: function (a) {
- function b(a, b) {
- if (!a) return ''
- var c = a.top,
- d = a.bottom,
- e = a.left,
- f = a.right,
- g = ''
- if (c && e && d && f)
- g +=
- ';' +
- b +
- ':' +
- (c == d && d == e && e == f
- ? c
- : c == d && e == f
- ? c + ' ' + e
- : e == f
- ? c + ' ' + e + ' ' + d
- : c + ' ' + f + ' ' + d + ' ' + e) +
- ';'
- else for (var h in a) g += ';' + b + '-' + h + ':' + a[h] + ';'
- return g
- }
- var c, d
- return (
- (a = a.replace(
- /(padding|margin|border)\-([^:]+):([^;]+);?/gi,
- function (a, b, e, f) {
- if (1 == f.split(' ').length)
- switch (b) {
- case 'padding':
- return !c && (c = {}), (c[e] = f), ''
- case 'margin':
- return !d && (d = {}), (d[e] = f), ''
- case 'border':
- return 'initial' == f ? '' : a
- }
- return a
- }
- )),
- (a += b(c, 'padding') + b(d, 'margin')),
- a
- .replace(/^[ \n\r\t;]*|[ \n\r\t]*$/, '')
- .replace(/;([ \n\r\t]+)|\1;/g, ';')
- .replace(/(&((l|g)t|quot|#39))?;{2,}/g, function (a, b) {
- return b ? b + ';;' : ';'
- })
- )
- },
- clone: function (a, b) {
- var c
- b = b || {}
- for (var d in a)
- a.hasOwnProperty(d) &&
- ((c = a[d]),
- 'object' == typeof c
- ? ((b[d] = utils.isArray(c) ? [] : {}), utils.clone(a[d], b[d]))
- : (b[d] = c))
- return b
- },
- transUnitToPx: function (a) {
- if (!/(pt|cm)/.test(a)) return a
- var b
- switch (
- (a.replace(/([\d.]+)(\w+)/, function (c, d, e) {
- ;(a = d), (b = e)
- }),
- b)
- ) {
- case 'cm':
- a = 25 * parseFloat(a)
- break
- case 'pt':
- a = Math.round((96 * parseFloat(a)) / 72)
- }
- return a + (a ? 'px' : '')
- },
- domReady: (function () {
- function a(a) {
- a.isReady = !0
- for (var c; (c = b.pop()); c());
- }
- var b = []
- return function (c, d) {
- d = d || window
- var e = d.document
- c && b.push(c),
- 'complete' === e.readyState
- ? a(e)
- : (e.isReady && a(e),
- browser.ie && 11 != browser.version
- ? (!(function () {
- if (!e.isReady) {
- try {
- e.documentElement.doScroll('left')
- } catch (b) {
- return void setTimeout(arguments.callee, 0)
- }
- a(e)
- }
- })(),
- d.attachEvent('onload', function () {
- a(e)
- }))
- : (e.addEventListener(
- 'DOMContentLoaded',
- function () {
- e.removeEventListener(
- 'DOMContentLoaded',
- arguments.callee,
- !1
- ),
- a(e)
- },
- !1
- ),
- d.addEventListener(
- 'load',
- function () {
- a(e)
- },
- !1
- )))
- }
- })(),
- cssRule:
- browser.ie && 11 != browser.version
- ? function (a, b, c) {
- var d, e
- if (void 0 === b || (b && b.nodeType && 9 == b.nodeType)) {
- if (
- ((c = b && b.nodeType && 9 == b.nodeType ? b : c || document),
- (d = c.indexList || (c.indexList = {})),
- (e = d[a]),
- void 0 !== e)
- )
- return c.styleSheets[e].cssText
- } else {
- if (
- ((c = c || document),
- (d = c.indexList || (c.indexList = {})),
- (e = d[a]),
- '' === b)
- )
- return (
- void 0 !== e &&
- ((c.styleSheets[e].cssText = ''), delete d[a], !0)
- )
- void 0 !== e
- ? (sheetStyle = c.styleSheets[e])
- : ((sheetStyle = c.createStyleSheet(
- '',
- (e = c.styleSheets.length)
- )),
- (d[a] = e)),
- (sheetStyle.cssText = b)
- }
- }
- : function (a, b, c) {
- var d
- return void 0 === b || (b && b.nodeType && 9 == b.nodeType)
- ? ((c = b && b.nodeType && 9 == b.nodeType ? b : c || document),
- (d = c.getElementById(a)),
- d ? d.innerHTML : void 0)
- : ((c = c || document),
- (d = c.getElementById(a)),
- '' === b
- ? !!d && (d.parentNode.removeChild(d), !0)
- : void (d
- ? (d.innerHTML = b)
- : ((d = c.createElement('style')),
- (d.id = a),
- (d.innerHTML = b),
- c.getElementsByTagName('head')[0].appendChild(d))))
- },
- sort: function (a, b) {
- b =
- b ||
- function (a, b) {
- return a.localeCompare(b)
- }
- for (var c = 0, d = a.length; c < d; c++)
- for (var e = c, f = a.length; e < f; e++)
- if (b(a[c], a[e]) > 0) {
- var g = a[c]
- ;(a[c] = a[e]), (a[e] = g)
- }
- return a
- },
- serializeParam: function (a) {
- var b = []
- for (var c in a)
- if ('method' != c && 'timeout' != c && 'async' != c)
- if (
- 'function' != (typeof a[c]).toLowerCase() &&
- 'object' != (typeof a[c]).toLowerCase()
- )
- b.push(encodeURIComponent(c) + '=' + encodeURIComponent(a[c]))
- else if (utils.isArray(a[c]))
- for (var d = 0; d < a[c].length; d++)
- b.push(
- encodeURIComponent(c) + '[]=' + encodeURIComponent(a[c][d])
- )
- return b.join('&')
- },
- formatUrl: function (a) {
- var b = a.replace(/&&/g, '&')
- return (
- (b = b.replace(/\?&/g, '?')),
- (b = b.replace(/&$/g, '')),
- (b = b.replace(/&#/g, '#')),
- (b = b.replace(/&+/g, '&'))
- )
- },
- isCrossDomainUrl: function (a) {
- var b = document.createElement('a')
- return (
- (b.href = a),
- browser.ie && (b.href = b.href),
- !(
- b.protocol == location.protocol &&
- b.hostname == location.hostname &&
- (b.port == location.port ||
- ('80' == b.port && '' == location.port) ||
- ('' == b.port && '80' == location.port))
- )
- )
- },
- clearEmptyAttrs: function (a) {
- for (var b in a) '' === a[b] && delete a[b]
- return a
- },
- str2json: function (a) {
- return utils.isString(a)
- ? window.JSON
- ? JSON.parse(a)
- : new Function('return ' + utils.trim(a || ''))()
- : null
- },
- json2str: (function () {
- function a(a) {
- return (
- /["\\\x00-\x1f]/.test(a) &&
- (a = a.replace(/["\\\x00-\x1f]/g, function (a) {
- var b = e[a]
- return b
- ? b
- : ((b = a.charCodeAt()),
- '\\u00' +
- Math.floor(b / 16).toString(16) +
- (b % 16).toString(16))
- })),
- '"' + a + '"'
- )
- }
- function b(a) {
- var b,
- c,
- d,
- e = ['['],
- f = a.length
- for (c = 0; c < f; c++)
- switch (((d = a[c]), typeof d)) {
- case 'undefined':
- case 'function':
- case 'unknown':
- break
- default:
- b && e.push(','), e.push(utils.json2str(d)), (b = 1)
- }
- return e.push(']'), e.join('')
- }
- function c(a) {
- return a < 10 ? '0' + a : a
- }
- function d(a) {
- return (
- '"' +
- a.getFullYear() +
- '-' +
- c(a.getMonth() + 1) +
- '-' +
- c(a.getDate()) +
- 'T' +
- c(a.getHours()) +
- ':' +
- c(a.getMinutes()) +
- ':' +
- c(a.getSeconds()) +
- '"'
- )
- }
- if (window.JSON) return JSON.stringify
- var e = {
- '\b': '\\b',
- '\t': '\\t',
- '\n': '\\n',
- '\f': '\\f',
- '\r': '\\r',
- '"': '\\"',
- '\\': '\\\\'
- }
- return function (c) {
- switch (typeof c) {
- case 'undefined':
- return 'undefined'
- case 'number':
- return isFinite(c) ? String(c) : 'null'
- case 'string':
- return a(c)
- case 'boolean':
- return String(c)
- default:
- if (null === c) return 'null'
- if (utils.isArray(c)) return b(c)
- if (utils.isDate(c)) return d(c)
- var e,
- f,
- g = ['{'],
- h = utils.json2str
- for (var i in c)
- if (Object.prototype.hasOwnProperty.call(c, i))
- switch (((f = c[i]), typeof f)) {
- case 'undefined':
- case 'unknown':
- case 'function':
- break
- default:
- e && g.push(','), (e = 1), g.push(h(i) + ':' + h(f))
- }
- return g.push('}'), g.join('')
- }
- }
- })()
- })
- utils.each(
- ['String', 'Function', 'Array', 'Number', 'RegExp', 'Object', 'Date'],
- function (a) {
- UE.utils['is' + a] = function (b) {
- return Object.prototype.toString.apply(b) == '[object ' + a + ']'
- }
- }
- )
- var EventBase = (UE.EventBase = function () {})
- EventBase.prototype = {
- addListener: function (a, b) {
- a = utils.trim(a).split(/\s+/)
- for (var c, d = 0; (c = a[d++]); ) getListener(this, c, !0).push(b)
- },
- on: function (a, b) {
- return this.addListener(a, b)
- },
- off: function (a, b) {
- return this.removeListener(a, b)
- },
- trigger: function () {
- return this.fireEvent.apply(this, arguments)
- },
- removeListener: function (a, b) {
- a = utils.trim(a).split(/\s+/)
- for (var c, d = 0; (c = a[d++]); )
- utils.removeItem(getListener(this, c) || [], b)
- },
- fireEvent: function () {
- var a = arguments[0]
- a = utils.trim(a).split(' ')
- for (var b, c = 0; (b = a[c++]); ) {
- var d,
- e,
- f,
- g = getListener(this, b)
- if (g)
- for (f = g.length; f--; )
- if (g[f]) {
- if (((e = g[f].apply(this, arguments)), e === !0)) return e
- void 0 !== e && (d = e)
- }
- ;(e = this['on' + b.toLowerCase()]) && (d = e.apply(this, arguments))
- }
- return d
- }
- }
- var dtd = (dom.dtd = (function () {
- function a(a) {
- for (var b in a) a[b.toUpperCase()] = a[b]
- return a
- }
- var b = utils.extend2,
- c = a({ isindex: 1, fieldset: 1 }),
- d = a({ input: 1, button: 1, select: 1, textarea: 1, label: 1 }),
- e = b(a({ a: 1 }), d),
- f = b({ iframe: 1 }, e),
- g = a({
- hr: 1,
- ul: 1,
- menu: 1,
- div: 1,
- blockquote: 1,
- noscript: 1,
- table: 1,
- center: 1,
- address: 1,
- dir: 1,
- pre: 1,
- h5: 1,
- dl: 1,
- h4: 1,
- noframes: 1,
- h6: 1,
- ol: 1,
- h1: 1,
- h3: 1,
- h2: 1
- }),
- h = a({ ins: 1, del: 1, script: 1, style: 1 }),
- i = b(
- a({
- b: 1,
- acronym: 1,
- bdo: 1,
- var: 1,
- '#': 1,
- abbr: 1,
- code: 1,
- br: 1,
- i: 1,
- cite: 1,
- kbd: 1,
- u: 1,
- strike: 1,
- s: 1,
- tt: 1,
- strong: 1,
- q: 1,
- samp: 1,
- em: 1,
- dfn: 1,
- span: 1
- }),
- h
- ),
- j = b(
- a({
- sub: 1,
- img: 1,
- embed: 1,
- object: 1,
- sup: 1,
- basefont: 1,
- map: 1,
- applet: 1,
- font: 1,
- big: 1,
- small: 1
- }),
- i
- ),
- k = b(a({ p: 1 }), j),
- l = b(a({ iframe: 1 }), j, d),
- m = a({
- img: 1,
- embed: 1,
- noscript: 1,
- br: 1,
- kbd: 1,
- center: 1,
- button: 1,
- basefont: 1,
- h5: 1,
- h4: 1,
- samp: 1,
- h6: 1,
- ol: 1,
- h1: 1,
- h3: 1,
- h2: 1,
- form: 1,
- font: 1,
- '#': 1,
- select: 1,
- menu: 1,
- ins: 1,
- abbr: 1,
- label: 1,
- code: 1,
- table: 1,
- script: 1,
- cite: 1,
- input: 1,
- iframe: 1,
- strong: 1,
- textarea: 1,
- noframes: 1,
- big: 1,
- small: 1,
- span: 1,
- hr: 1,
- sub: 1,
- bdo: 1,
- var: 1,
- div: 1,
- object: 1,
- sup: 1,
- strike: 1,
- dir: 1,
- map: 1,
- dl: 1,
- applet: 1,
- del: 1,
- isindex: 1,
- fieldset: 1,
- ul: 1,
- b: 1,
- acronym: 1,
- a: 1,
- blockquote: 1,
- i: 1,
- u: 1,
- s: 1,
- tt: 1,
- address: 1,
- q: 1,
- pre: 1,
- p: 1,
- em: 1,
- dfn: 1
- }),
- n = b(a({ a: 0 }), l),
- o = a({ tr: 1 }),
- p = a({ '#': 1 }),
- q = b(a({ param: 1 }), m),
- r = b(a({ form: 1 }), c, f, g, k),
- s = a({ li: 1, ol: 1, ul: 1 }),
- t = a({ style: 1, script: 1 }),
- u = a({ base: 1, link: 1, meta: 1, title: 1 }),
- v = b(u, t),
- w = a({ head: 1, body: 1 }),
- x = a({ html: 1 }),
- y = a({
- address: 1,
- blockquote: 1,
- center: 1,
- dir: 1,
- div: 1,
- dl: 1,
- fieldset: 1,
- form: 1,
- h1: 1,
- h2: 1,
- h3: 1,
- h4: 1,
- h5: 1,
- h6: 1,
- hr: 1,
- isindex: 1,
- menu: 1,
- noframes: 1,
- ol: 1,
- p: 1,
- pre: 1,
- table: 1,
- ul: 1
- }),
- z = a({
- area: 1,
- base: 1,
- basefont: 1,
- br: 1,
- col: 1,
- command: 1,
- dialog: 1,
- embed: 1,
- hr: 1,
- img: 1,
- input: 1,
- isindex: 1,
- keygen: 1,
- link: 1,
- meta: 1,
- param: 1,
- source: 1,
- track: 1,
- wbr: 1
- })
- return a({
- $nonBodyContent: b(x, w, u),
- $block: y,
- $inline: n,
- $inlineWithA: b(a({ a: 1 }), n),
- $body: b(a({ script: 1, style: 1 }), y),
- $cdata: a({ script: 1, style: 1 }),
- $empty: z,
- $nonChild: a({ iframe: 1, textarea: 1 }),
- $listItem: a({ dd: 1, dt: 1, li: 1 }),
- $list: a({ ul: 1, ol: 1, dl: 1 }),
- $isNotEmpty: a({
- table: 1,
- ul: 1,
- ol: 1,
- dl: 1,
- iframe: 1,
- area: 1,
- base: 1,
- col: 1,
- hr: 1,
- img: 1,
- embed: 1,
- input: 1,
- link: 1,
- meta: 1,
- param: 1,
- h1: 1,
- h2: 1,
- h3: 1,
- h4: 1,
- h5: 1,
- h6: 1
- }),
- $removeEmpty: a({
- a: 1,
- abbr: 1,
- acronym: 1,
- address: 1,
- b: 1,
- bdo: 1,
- big: 1,
- cite: 1,
- code: 1,
- del: 1,
- dfn: 1,
- em: 1,
- font: 1,
- i: 1,
- ins: 1,
- label: 1,
- kbd: 1,
- q: 1,
- s: 1,
- samp: 1,
- small: 1,
- span: 1,
- strike: 1,
- strong: 1,
- sub: 1,
- sup: 1,
- tt: 1,
- u: 1,
- var: 1
- }),
- $removeEmptyBlock: a({ p: 1, div: 1 }),
- $tableContent: a({
- caption: 1,
- col: 1,
- colgroup: 1,
- tbody: 1,
- td: 1,
- tfoot: 1,
- th: 1,
- thead: 1,
- tr: 1,
- table: 1
- }),
- $notTransContent: a({ pre: 1, script: 1, style: 1, textarea: 1 }),
- html: w,
- head: v,
- style: p,
- script: p,
- body: r,
- base: {},
- link: {},
- meta: {},
- title: p,
- col: {},
- tr: a({ td: 1, th: 1 }),
- img: {},
- embed: {},
- colgroup: a({ thead: 1, col: 1, tbody: 1, tr: 1, tfoot: 1 }),
- noscript: r,
- td: r,
- br: {},
- th: r,
- center: r,
- kbd: n,
- button: b(k, g),
- basefont: {},
- h5: n,
- h4: n,
- samp: n,
- h6: n,
- ol: s,
- h1: n,
- h3: n,
- option: p,
- h2: n,
- form: b(c, f, g, k),
- select: a({ optgroup: 1, option: 1 }),
- font: n,
- ins: n,
- menu: s,
- abbr: n,
- label: n,
- table: a({
- thead: 1,
- col: 1,
- tbody: 1,
- tr: 1,
- colgroup: 1,
- caption: 1,
- tfoot: 1
- }),
- code: n,
- tfoot: o,
- cite: n,
- li: r,
- input: {},
- iframe: r,
- strong: n,
- textarea: p,
- noframes: r,
- big: n,
- small: n,
- span: a({
- '#': 1,
- br: 1,
- b: 1,
- strong: 1,
- u: 1,
- i: 1,
- em: 1,
- sub: 1,
- sup: 1,
- strike: 1,
- span: 1
- }),
- hr: n,
- dt: n,
- sub: n,
- optgroup: a({ option: 1 }),
- param: {},
- bdo: n,
- var: n,
- div: r,
- object: q,
- sup: n,
- dd: r,
- strike: n,
- area: {},
- dir: s,
- map: b(a({ area: 1, form: 1, p: 1 }), c, h, g),
- applet: q,
- dl: a({ dt: 1, dd: 1 }),
- del: n,
- isindex: {},
- fieldset: b(a({ legend: 1 }), m),
- thead: o,
- ul: s,
- acronym: n,
- b: n,
- a: b(a({ a: 1 }), l),
- blockquote: b(a({ td: 1, tr: 1, tbody: 1, li: 1 }), r),
- caption: n,
- i: n,
- u: n,
- tbody: o,
- s: n,
- address: b(f, k),
- tt: n,
- legend: n,
- q: n,
- pre: b(i, e),
- p: b(a({ a: 1 }), n),
- em: n,
- dfn: n
- })
- })()),
- attrFix =
- ie && browser.version < 9
- ? {
- tabindex: 'tabIndex',
- readonly: 'readOnly',
- for: 'htmlFor',
- class: 'className',
- maxlength: 'maxLength',
- cellspacing: 'cellSpacing',
- cellpadding: 'cellPadding',
- rowspan: 'rowSpan',
- colspan: 'colSpan',
- usemap: 'useMap',
- frameborder: 'frameBorder'
- }
- : { tabindex: 'tabIndex', readonly: 'readOnly' },
- styleBlock = utils.listToMap([
- '-webkit-box',
- '-moz-box',
- 'block',
- 'list-item',
- 'table',
- 'table-row-group',
- 'table-header-group',
- 'table-footer-group',
- 'table-row',
- 'table-column-group',
- 'table-column',
- 'table-cell',
- 'table-caption'
- ]),
- domUtils = (dom.domUtils = {
- NODE_ELEMENT: 1,
- NODE_DOCUMENT: 9,
- NODE_TEXT: 3,
- NODE_COMMENT: 8,
- NODE_DOCUMENT_FRAGMENT: 11,
- POSITION_IDENTICAL: 0,
- POSITION_DISCONNECTED: 1,
- POSITION_FOLLOWING: 2,
- POSITION_PRECEDING: 4,
- POSITION_IS_CONTAINED: 8,
- POSITION_CONTAINS: 16,
- fillChar: ie && '6' == browser.version ? '\ufeff' : '',
- keys: {
- 8: 1,
- 46: 1,
- 16: 1,
- 17: 1,
- 18: 1,
- 37: 1,
- 38: 1,
- 39: 1,
- 40: 1,
- 13: 1
- },
- getPosition: function (a, b) {
- if (a === b) return 0
- var c,
- d = [a],
- e = [b]
- for (c = a; (c = c.parentNode); ) {
- if (c === b) return 10
- d.push(c)
- }
- for (c = b; (c = c.parentNode); ) {
- if (c === a) return 20
- e.push(c)
- }
- if ((d.reverse(), e.reverse(), d[0] !== e[0])) return 1
- for (var f = -1; f++, d[f] === e[f]; );
- for (a = d[f], b = e[f]; (a = a.nextSibling); ) if (a === b) return 4
- return 2
- },
- getNodeIndex: function (a, b) {
- for (var c = a, d = 0; (c = c.previousSibling); )
- b && 3 == c.nodeType
- ? c.nodeType != c.nextSibling.nodeType && d++
- : d++
- return d
- },
- inDoc: function (a, b) {
- return 10 == domUtils.getPosition(a, b)
- },
- findParent: function (a, b, c) {
- if (a && !domUtils.isBody(a))
- for (a = c ? a : a.parentNode; a; ) {
- if (!b || b(a) || domUtils.isBody(a))
- return b && !b(a) && domUtils.isBody(a) ? null : a
- a = a.parentNode
- }
- return null
- },
- findParentByTagName: function (a, b, c, d) {
- return (
- (b = utils.listToMap(utils.isArray(b) ? b : [b])),
- domUtils.findParent(
- a,
- function (a) {
- return b[a.tagName] && !(d && d(a))
- },
- c
- )
- )
- },
- findParents: function (a, b, c, d) {
- for (
- var e = b && ((c && c(a)) || !c) ? [a] : [];
- (a = domUtils.findParent(a, c));
- )
- e.push(a)
- return d ? e : e.reverse()
- },
- insertAfter: function (a, b) {
- return a.nextSibling
- ? a.parentNode.insertBefore(b, a.nextSibling)
- : a.parentNode.appendChild(b)
- },
- remove: function (a, b) {
- var c,
- d = a.parentNode
- if (d) {
- if (b && a.hasChildNodes())
- for (; (c = a.firstChild); ) d.insertBefore(c, a)
- d.removeChild(a)
- }
- return a
- },
- getNextDomNode: function (a, b, c, d) {
- return getDomNode(a, 'firstChild', 'nextSibling', b, c, d)
- },
- getPreDomNode: function (a, b, c, d) {
- return getDomNode(a, 'lastChild', 'previousSibling', b, c, d)
- },
- isBookmarkNode: function (a) {
- return 1 == a.nodeType && a.id && /^_baidu_bookmark_/i.test(a.id)
- },
- getWindow: function (a) {
- var b = a.ownerDocument || a
- return b.defaultView || b.parentWindow
- },
- getCommonAncestor: function (a, b) {
- if (a === b) return a
- for (var c = [a], d = [b], e = a, f = -1; (e = e.parentNode); ) {
- if (e === b) return e
- c.push(e)
- }
- for (e = b; (e = e.parentNode); ) {
- if (e === a) return e
- d.push(e)
- }
- for (c.reverse(), d.reverse(); f++, c[f] === d[f]; );
- return 0 == f ? null : c[f - 1]
- },
- clearEmptySibling: function (a, b, c) {
- function d(a, b) {
- for (
- var c;
- a &&
- !domUtils.isBookmarkNode(a) &&
- (domUtils.isEmptyInlineElement(a) ||
- !new RegExp('[^\t\n\r' + domUtils.fillChar + ']').test(
- a.nodeValue
- ));
- )
- (c = a[b]), domUtils.remove(a), (a = c)
- }
- !b && d(a.nextSibling, 'nextSibling'),
- !c && d(a.previousSibling, 'previousSibling')
- },
- split: function (a, b) {
- var c = a.ownerDocument
- if (browser.ie && b == a.nodeValue.length) {
- var d = c.createTextNode('')
- return domUtils.insertAfter(a, d)
- }
- var e = a.splitText(b)
- if (browser.ie8) {
- var f = c.createTextNode('')
- domUtils.insertAfter(e, f), domUtils.remove(f)
- }
- return e
- },
- isWhitespace: function (a) {
- return !new RegExp('[^ \t\n\r' + domUtils.fillChar + ']').test(
- a.nodeValue
- )
- },
- getXY: function (a) {
- for (var b = 0, c = 0; a.offsetParent; )
- (c += a.offsetTop), (b += a.offsetLeft), (a = a.offsetParent)
- return { x: b, y: c }
- },
- on: function (a, b, c) {
- var d = utils.isArray(b) ? b : utils.trim(b).split(/\s+/),
- e = d.length
- if (e)
- for (; e--; )
- if (((b = d[e]), a.addEventListener)) a.addEventListener(b, c, !1)
- else {
- c._d || (c._d = { els: [] })
- var f = b + c.toString(),
- g = utils.indexOf(c._d.els, a)
- ;(c._d[f] && g != -1) ||
- (g == -1 && c._d.els.push(a),
- c._d[f] ||
- (c._d[f] = function (a) {
- return c.call(a.srcElement, a || window.event)
- }),
- a.attachEvent('on' + b, c._d[f]))
- }
- a = null
- },
- un: function (a, b, c) {
- var d = utils.isArray(b) ? b : utils.trim(b).split(/\s+/),
- e = d.length
- if (e)
- for (; e--; )
- if (((b = d[e]), a.removeEventListener))
- a.removeEventListener(b, c, !1)
- else {
- var f = b + c.toString()
- try {
- a.detachEvent('on' + b, c._d ? c._d[f] : c)
- } catch (g) {}
- if (c._d && c._d[f]) {
- var h = utils.indexOf(c._d.els, a)
- h != -1 && c._d.els.splice(h, 1),
- 0 == c._d.els.length && delete c._d[f]
- }
- }
- },
- isSameElement: function (a, b) {
- if (a.tagName != b.tagName) return !1
- var c = a.attributes,
- d = b.attributes
- if (!ie && c.length != d.length) return !1
- for (var e, f, g = 0, h = 0, i = 0; (e = c[i++]); ) {
- if ('style' == e.nodeName) {
- if ((e.specified && g++, domUtils.isSameStyle(a, b))) continue
- return !1
- }
- if (ie) {
- if (!e.specified) continue
- g++, (f = d.getNamedItem(e.nodeName))
- } else f = b.attributes[e.nodeName]
- if (!f.specified || e.nodeValue != f.nodeValue) return !1
- }
- if (ie) {
- for (i = 0; (f = d[i++]); ) f.specified && h++
- if (g != h) return !1
- }
- return !0
- },
- isSameStyle: function (a, b) {
- var c = a.style.cssText
- .replace(/( ?; ?)/g, ';')
- .replace(/( ?: ?)/g, ':'),
- d = b.style.cssText.replace(/( ?; ?)/g, ';').replace(/( ?: ?)/g, ':')
- if (browser.opera) {
- if (((c = a.style), (d = b.style), c.length != d.length)) return !1
- for (var e in c)
- if (!/^(\d+|csstext)$/i.test(e) && c[e] != d[e]) return !1
- return !0
- }
- if (!c || !d) return c == d
- if (((c = c.split(';')), (d = d.split(';')), c.length != d.length))
- return !1
- for (var f, g = 0; (f = c[g++]); )
- if (utils.indexOf(d, f) == -1) return !1
- return !0
- },
- isBlockElm: function (a) {
- return (
- 1 == a.nodeType &&
- (dtd.$block[a.tagName] ||
- styleBlock[domUtils.getComputedStyle(a, 'display')]) &&
- !dtd.$nonChild[a.tagName]
- )
- },
- isBody: function (a) {
- return a && 1 == a.nodeType && 'body' == a.tagName.toLowerCase()
- },
- breakParent: function (a, b) {
- var c,
- d,
- e,
- f = a,
- g = a
- do {
- for (
- f = f.parentNode,
- d
- ? ((c = f.cloneNode(!1)),
- c.appendChild(d),
- (d = c),
- (c = f.cloneNode(!1)),
- c.appendChild(e),
- (e = c))
- : ((d = f.cloneNode(!1)), (e = d.cloneNode(!1)));
- (c = g.previousSibling);
- )
- d.insertBefore(c, d.firstChild)
- for (; (c = g.nextSibling); ) e.appendChild(c)
- g = f
- } while (b !== f)
- return (
- (c = b.parentNode),
- c.insertBefore(d, b),
- c.insertBefore(e, b),
- c.insertBefore(a, e),
- domUtils.remove(b),
- a
- )
- },
- isEmptyInlineElement: function (a) {
- if (1 != a.nodeType || !dtd.$removeEmpty[a.tagName]) return 0
- for (a = a.firstChild; a; ) {
- if (domUtils.isBookmarkNode(a)) return 0
- if (
- (1 == a.nodeType && !domUtils.isEmptyInlineElement(a)) ||
- (3 == a.nodeType && !domUtils.isWhitespace(a))
- )
- return 0
- a = a.nextSibling
- }
- return 1
- },
- trimWhiteTextNode: function (a) {
- function b(b) {
- for (
- var c;
- (c = a[b]) && 3 == c.nodeType && domUtils.isWhitespace(c);
- )
- a.removeChild(c)
- }
- b('firstChild'), b('lastChild')
- },
- mergeChild: function (a, b, c) {
- for (
- var d,
- e = domUtils.getElementsByTagName(a, a.tagName.toLowerCase()),
- f = 0;
- (d = e[f++]);
- )
- if (d.parentNode && !domUtils.isBookmarkNode(d))
- if ('span' != d.tagName.toLowerCase())
- domUtils.isSameElement(a, d) && domUtils.remove(d, !0)
- else {
- if (
- a === d.parentNode &&
- (domUtils.trimWhiteTextNode(a), 1 == a.childNodes.length)
- ) {
- ;(a.style.cssText = d.style.cssText + ';' + a.style.cssText),
- domUtils.remove(d, !0)
- continue
- }
- if (
- ((d.style.cssText = a.style.cssText + ';' + d.style.cssText), c)
- ) {
- var g = c.style
- if (g) {
- g = g.split(';')
- for (var h, i = 0; (h = g[i++]); )
- d.style[utils.cssStyleToDomStyle(h.split(':')[0])] =
- h.split(':')[1]
- }
- }
- domUtils.isSameStyle(d, a) && domUtils.remove(d, !0)
- }
- },
- getElementsByTagName: function (a, b, c) {
- if (c && utils.isString(c)) {
- var d = c
- c = function (a) {
- return domUtils.hasClass(a, d)
- }
- }
- b = utils
- .trim(b)
- .replace(/[ ]{2,}/g, ' ')
- .split(' ')
- for (var e, f = [], g = 0; (e = b[g++]); )
- for (var h, i = a.getElementsByTagName(e), j = 0; (h = i[j++]); )
- (c && !c(h)) || f.push(h)
- return f
- },
- mergeToParent: function (a) {
- for (var b = a.parentNode; b && dtd.$removeEmpty[b.tagName]; ) {
- if (b.tagName == a.tagName || 'A' == b.tagName) {
- if (
- (domUtils.trimWhiteTextNode(b),
- ('SPAN' == b.tagName && !domUtils.isSameStyle(b, a)) ||
- ('A' == b.tagName && 'SPAN' == a.tagName))
- ) {
- if (b.childNodes.length > 1 || b !== a.parentNode) {
- ;(a.style.cssText = b.style.cssText + ';' + a.style.cssText),
- (b = b.parentNode)
- continue
- }
- ;(b.style.cssText += ';' + a.style.cssText),
- 'A' == b.tagName && (b.style.textDecoration = 'underline')
- }
- if ('A' != b.tagName) {
- b === a.parentNode && domUtils.remove(a, !0)
- break
- }
- }
- b = b.parentNode
- }
- },
- mergeSibling: function (a, b, c) {
- function d(a, b, c) {
- var d
- if (
- (d = c[a]) &&
- !domUtils.isBookmarkNode(d) &&
- 1 == d.nodeType &&
- domUtils.isSameElement(c, d)
- ) {
- for (; d.firstChild; )
- 'firstChild' == b
- ? c.insertBefore(d.lastChild, c.firstChild)
- : c.appendChild(d.firstChild)
- domUtils.remove(d)
- }
- }
- !b && d('previousSibling', 'firstChild', a),
- !c && d('nextSibling', 'lastChild', a)
- },
- unSelectable:
- (ie && browser.ie9below) || browser.opera
- ? function (a) {
- ;(a.onselectstart = function () {
- return !1
- }),
- (a.onclick =
- a.onkeyup =
- a.onkeydown =
- function () {
- return !1
- }),
- (a.unselectable = 'on'),
- a.setAttribute('unselectable', 'on')
- for (var b, c = 0; (b = a.all[c++]); )
- switch (b.tagName.toLowerCase()) {
- case 'iframe':
- case 'textarea':
- case 'input':
- case 'select':
- break
- default:
- ;(b.unselectable = 'on'),
- a.setAttribute('unselectable', 'on')
- }
- }
- : function (a) {
- a.style.MozUserSelect =
- a.style.webkitUserSelect =
- a.style.msUserSelect =
- a.style.KhtmlUserSelect =
- 'none'
- },
- removeAttributes: function (a, b) {
- b = utils.isArray(b)
- ? b
- : utils
- .trim(b)
- .replace(/[ ]{2,}/g, ' ')
- .split(' ')
- for (var c, d = 0; (c = b[d++]); ) {
- switch ((c = attrFix[c] || c)) {
- case 'className':
- a[c] = ''
- break
- case 'style':
- a.style.cssText = ''
- var e = a.getAttributeNode('style')
- !browser.ie && e && a.removeAttributeNode(e)
- }
- a.removeAttribute(c)
- }
- },
- createElement: function (a, b, c) {
- return domUtils.setAttributes(a.createElement(b), c)
- },
- setAttributes: function (a, b) {
- for (var c in b)
- if (b.hasOwnProperty(c)) {
- var d = b[c]
- switch (c) {
- case 'class':
- a.className = d
- break
- case 'style':
- a.style.cssText = a.style.cssText + ';' + d
- break
- case 'innerHTML':
- a[c] = d
- break
- case 'value':
- a.value = d
- break
- default:
- a.setAttribute(attrFix[c] || c, d)
- }
- }
- return a
- },
- getComputedStyle: function (a, b) {
- var c = 'width height top left'
- if (c.indexOf(b) > -1)
- return (
- a[
- 'offset' +
- b.replace(/^\w/, function (a) {
- return a.toUpperCase()
- })
- ] + 'px'
- )
- if (
- (3 == a.nodeType && (a = a.parentNode),
- browser.ie &&
- browser.version < 9 &&
- 'font-size' == b &&
- !a.style.fontSize &&
- !dtd.$empty[a.tagName] &&
- !dtd.$nonChild[a.tagName])
- ) {
- var d = a.ownerDocument.createElement('span')
- ;(d.style.cssText = 'padding:0;border:0;font-family:simsun;'),
- (d.innerHTML = '.'),
- a.appendChild(d)
- var e = d.offsetHeight
- return a.removeChild(d), (d = null), e + 'px'
- }
- try {
- var f =
- domUtils.getStyle(a, b) ||
- (window.getComputedStyle
- ? domUtils
- .getWindow(a)
- .getComputedStyle(a, '')
- .getPropertyValue(b)
- : (a.currentStyle || a.style)[utils.cssStyleToDomStyle(b)])
- } catch (g) {
- return ''
- }
- return utils.transUnitToPx(utils.fixColor(b, f))
- },
- removeClasses: function (a, b) {
- b = utils.isArray(b)
- ? b
- : utils
- .trim(b)
- .replace(/[ ]{2,}/g, ' ')
- .split(' ')
- for (var c, d = 0, e = a.className; (c = b[d++]); )
- e = e.replace(new RegExp('\\b' + c + '\\b'), '')
- ;(e = utils.trim(e).replace(/[ ]{2,}/g, ' ')),
- e ? (a.className = e) : domUtils.removeAttributes(a, ['class'])
- },
- addClass: function (a, b) {
- if (a) {
- b = utils
- .trim(b)
- .replace(/[ ]{2,}/g, ' ')
- .split(' ')
- for (var c, d = 0, e = a.className; (c = b[d++]); )
- new RegExp('\\b' + c + '\\b').test(e) || (e += ' ' + c)
- a.className = utils.trim(e)
- }
- },
- hasClass: function (a, b) {
- if (utils.isRegExp(b)) return b.test(a.className)
- b = utils
- .trim(b)
- .replace(/[ ]{2,}/g, ' ')
- .split(' ')
- for (var c, d = 0, e = a.className; (c = b[d++]); )
- if (!new RegExp('\\b' + c + '\\b', 'i').test(e)) return !1
- return d - 1 == b.length
- },
- preventDefault: function (a) {
- a.preventDefault ? a.preventDefault() : (a.returnValue = !1)
- },
- removeStyle: function (a, b) {
- browser.ie
- ? ('color' == b && (b = '(^|;)' + b),
- (a.style.cssText = a.style.cssText.replace(
- new RegExp(b + '[^:]*:[^;]+;?', 'ig'),
- ''
- )))
- : a.style.removeProperty
- ? a.style.removeProperty(b)
- : a.style.removeAttribute(utils.cssStyleToDomStyle(b)),
- a.style.cssText || domUtils.removeAttributes(a, ['style'])
- },
- getStyle: function (a, b) {
- var c = a.style[utils.cssStyleToDomStyle(b)]
- return utils.fixColor(b, c)
- },
- setStyle: function (a, b, c) {
- ;(a.style[utils.cssStyleToDomStyle(b)] = c),
- utils.trim(a.style.cssText) || this.removeAttributes(a, 'style')
- },
- setStyles: function (a, b) {
- for (var c in b) b.hasOwnProperty(c) && domUtils.setStyle(a, c, b[c])
- },
- removeDirtyAttr: function (a) {
- for (var b, c = 0, d = a.getElementsByTagName('*'); (b = d[c++]); )
- b.removeAttribute('_moz_dirty')
- a.removeAttribute('_moz_dirty')
- },
- getChildCount: function (a, b) {
- var c = 0,
- d = a.firstChild
- for (
- b =
- b ||
- function () {
- return 1
- };
- d;
- )
- b(d) && c++, (d = d.nextSibling)
- return c
- },
- isEmptyNode: function (a) {
- return (
- !a.firstChild ||
- 0 ==
- domUtils.getChildCount(a, function (a) {
- return (
- !domUtils.isBr(a) &&
- !domUtils.isBookmarkNode(a) &&
- !domUtils.isWhitespace(a)
- )
- })
- )
- },
- clearSelectedArr: function (a) {
- for (var b; (b = a.pop()); ) domUtils.removeAttributes(b, ['class'])
- },
- scrollToView: function (a, b, c) {
- var d = function () {
- var a = b.document,
- c = 'CSS1Compat' == a.compatMode
- return {
- width:
- (c ? a.documentElement.clientWidth : a.body.clientWidth) || 0,
- height:
- (c ? a.documentElement.clientHeight : a.body.clientHeight) || 0
- }
- },
- e = function (a) {
- if ('pageXOffset' in a)
- return { x: a.pageXOffset || 0, y: a.pageYOffset || 0 }
- var b = a.document
- return {
- x: b.documentElement.scrollLeft || b.body.scrollLeft || 0,
- y: b.documentElement.scrollTop || b.body.scrollTop || 0
- }
- },
- f = d().height,
- g = f * -1 + c
- g += a.offsetHeight || 0
- var h = domUtils.getXY(a)
- g += h.y
- var i = e(b).y
- ;(g > i || g < i - f) && b.scrollTo(0, g + (g < 0 ? -20 : 20))
- },
- isBr: function (a) {
- return 1 == a.nodeType && 'BR' == a.tagName
- },
- isFillChar: function (a, b) {
- if (3 != a.nodeType) return !1
- var c = a.nodeValue
- return b
- ? new RegExp('^' + domUtils.fillChar).test(c)
- : !c.replace(new RegExp(domUtils.fillChar, 'g'), '').length
- },
- isStartInblock: function (a) {
- var b,
- c = a.cloneRange(),
- d = 0,
- e = c.startContainer
- if (1 == e.nodeType && e.childNodes[c.startOffset]) {
- e = e.childNodes[c.startOffset]
- for (var f = e.previousSibling; f && domUtils.isFillChar(f); )
- (e = f), (f = f.previousSibling)
- }
- for (
- this.isFillChar(e, !0) &&
- 1 == c.startOffset &&
- (c.setStartBefore(e), (e = c.startContainer));
- e && domUtils.isFillChar(e);
- )
- (b = e), (e = e.previousSibling)
- for (
- b && (c.setStartBefore(b), (e = c.startContainer)),
- 1 == e.nodeType &&
- domUtils.isEmptyNode(e) &&
- 1 == c.startOffset &&
- c.setStart(e, 0).collapse(!0);
- !c.startOffset;
- ) {
- if (
- ((e = c.startContainer),
- domUtils.isBlockElm(e) || domUtils.isBody(e))
- ) {
- d = 1
- break
- }
- var g,
- f = c.startContainer.previousSibling
- if (f) {
- for (; f && domUtils.isFillChar(f); )
- (g = f), (f = f.previousSibling)
- g ? c.setStartBefore(g) : c.setStartBefore(c.startContainer)
- } else c.setStartBefore(c.startContainer)
- }
- return d && !domUtils.isBody(c.startContainer) ? 1 : 0
- },
- isEmptyBlock: function (a, b) {
- if (a) {
- if (1 != a.nodeType) return 0
- if (
- ((b = b || new RegExp('[ \t\r\n' + domUtils.fillChar + ']', 'g')),
- a[browser.ie ? 'innerText' : 'textContent'].replace(b, '').length >
- 0)
- )
- return 0
- for (var c in dtd.$isNotEmpty)
- if (a.getElementsByTagName(c).length) return 0
- return 1
- }
- },
- setViewportOffset: function (a, b) {
- var c = 0 | parseInt(a.style.left),
- d = 0 | parseInt(a.style.top),
- e = a.getBoundingClientRect(),
- f = b.left - e.left,
- g = b.top - e.top
- f && (a.style.left = c + f + 'px'), g && (a.style.top = d + g + 'px')
- },
- fillNode: function (a, b) {
- var c = browser.ie
- ? a.createTextNode(domUtils.fillChar)
- : a.createElement('br')
- ;(b.innerHTML = ''), b.appendChild(c)
- },
- moveChild: function (a, b, c) {
- for (; a.firstChild; )
- c && b.firstChild
- ? b.insertBefore(a.lastChild, b.firstChild)
- : b.appendChild(a.firstChild)
- },
- hasNoAttributes: function (a) {
- return browser.ie
- ? /^<\w+\s*?>/.test(a.outerHTML)
- : 0 == a.attributes.length
- },
- isCustomeNode: function (a) {
- return 1 == a.nodeType && a.getAttribute('_ue_custom_node_')
- },
- isTagNode: function (a, b) {
- return (
- 1 == a.nodeType && new RegExp('\\b' + a.tagName + '\\b', 'i').test(b)
- )
- },
- filterNodeList: function (a, b, c) {
- var d = []
- if (!utils.isFunction(b)) {
- var e = b
- b = function (a) {
- return (
- utils.indexOf(
- utils.isArray(e) ? e : e.split(' '),
- a.tagName.toLowerCase()
- ) != -1
- )
- }
- }
- return (
- utils.each(a, function (a) {
- b(a) && d.push(a)
- }),
- 0 == d.length ? null : 1 != d.length && c ? d : d[0]
- )
- },
- isInNodeEndBoundary: function (a, b) {
- var c = a.startContainer
- if (3 == c.nodeType && a.startOffset != c.nodeValue.length) return 0
- if (1 == c.nodeType && a.startOffset != c.childNodes.length) return 0
- for (; c !== b; ) {
- if (c.nextSibling) return 0
- c = c.parentNode
- }
- return 1
- },
- isBoundaryNode: function (a, b) {
- for (var c; !domUtils.isBody(a); )
- if (((c = a), (a = a.parentNode), c !== a[b])) return !1
- return !0
- },
- fillHtml: browser.ie11below ? ' ' : '<br/>'
- }),
- fillCharReg = new RegExp(domUtils.fillChar, 'g')
- !(function () {
- function a(a) {
- a.collapsed =
- a.startContainer &&
- a.endContainer &&
- a.startContainer === a.endContainer &&
- a.startOffset == a.endOffset
- }
- function b(a) {
- return (
- !a.collapsed &&
- 1 == a.startContainer.nodeType &&
- a.startContainer === a.endContainer &&
- a.endOffset - a.startOffset == 1
- )
- }
- function c(b, c, d, e) {
- return (
- 1 == c.nodeType &&
- (dtd.$empty[c.tagName] || dtd.$nonChild[c.tagName]) &&
- ((d = domUtils.getNodeIndex(c) + (b ? 0 : 1)), (c = c.parentNode)),
- b
- ? ((e.startContainer = c),
- (e.startOffset = d),
- e.endContainer || e.collapse(!0))
- : ((e.endContainer = c),
- (e.endOffset = d),
- e.startContainer || e.collapse(!1)),
- a(e),
- e
- )
- }
- function d(a, b) {
- var c,
- d,
- e = a.startContainer,
- f = a.endContainer,
- g = a.startOffset,
- h = a.endOffset,
- i = a.document,
- j = i.createDocumentFragment()
- if (
- (1 == e.nodeType &&
- (e = e.childNodes[g] || (c = e.appendChild(i.createTextNode('')))),
- 1 == f.nodeType &&
- (f = f.childNodes[h] || (d = f.appendChild(i.createTextNode('')))),
- e === f && 3 == e.nodeType)
- )
- return (
- j.appendChild(i.createTextNode(e.substringData(g, h - g))),
- b && (e.deleteData(g, h - g), a.collapse(!0)),
- j
- )
- for (
- var k,
- l,
- m = j,
- n = domUtils.findParents(e, !0),
- o = domUtils.findParents(f, !0),
- p = 0;
- n[p] == o[p];
- )
- p++
- for (var q, r = p; (q = n[r]); r++) {
- for (
- k = q.nextSibling,
- q == e
- ? c ||
- (3 == a.startContainer.nodeType
- ? (m.appendChild(i.createTextNode(e.nodeValue.slice(g))),
- b && e.deleteData(g, e.nodeValue.length - g))
- : m.appendChild(b ? e : e.cloneNode(!0)))
- : ((l = q.cloneNode(!1)), m.appendChild(l));
- k && k !== f && k !== o[r];
- )
- (q = k.nextSibling), m.appendChild(b ? k : k.cloneNode(!0)), (k = q)
- m = l
- }
- ;(m = j),
- n[p] || (m.appendChild(n[p - 1].cloneNode(!1)), (m = m.firstChild))
- for (var s, r = p; (s = o[r]); r++) {
- if (
- ((k = s.previousSibling),
- s == f
- ? d ||
- 3 != a.endContainer.nodeType ||
- (m.appendChild(i.createTextNode(f.substringData(0, h))),
- b && f.deleteData(0, h))
- : ((l = s.cloneNode(!1)), m.appendChild(l)),
- r != p || !n[p])
- )
- for (; k && k !== e; )
- (s = k.previousSibling),
- m.insertBefore(b ? k : k.cloneNode(!0), m.firstChild),
- (k = s)
- m = l
- }
- return (
- b &&
- a
- .setStartBefore(o[p] ? (n[p] ? o[p] : n[p - 1]) : o[p - 1])
- .collapse(!0),
- c && domUtils.remove(c),
- d && domUtils.remove(d),
- j
- )
- }
- function e(a, b) {
- try {
- if (g && domUtils.inDoc(g, a))
- if (g.nodeValue.replace(fillCharReg, '').length)
- g.nodeValue = g.nodeValue.replace(fillCharReg, '')
- else {
- var c = g.parentNode
- for (
- domUtils.remove(g);
- c &&
- domUtils.isEmptyInlineElement(c) &&
- (browser.safari
- ? !(domUtils.getPosition(c, b) & domUtils.POSITION_CONTAINS)
- : !c.contains(b));
- )
- (g = c.parentNode), domUtils.remove(c), (c = g)
- }
- } catch (d) {}
- }
- function f(a, b) {
- var c
- for (a = a[b]; a && domUtils.isFillChar(a); )
- (c = a[b]), domUtils.remove(a), (a = c)
- }
- var g,
- h = 0,
- i = domUtils.fillChar,
- j = (dom.Range = function (a) {
- var b = this
- ;(b.startContainer =
- b.startOffset =
- b.endContainer =
- b.endOffset =
- null),
- (b.document = a),
- (b.collapsed = !0)
- })
- j.prototype = {
- cloneContents: function () {
- return this.collapsed ? null : d(this, 0)
- },
- deleteContents: function () {
- var a
- return (
- this.collapsed || d(this, 1),
- browser.webkit &&
- ((a = this.startContainer),
- 3 != a.nodeType ||
- a.nodeValue.length ||
- (this.setStartBefore(a).collapse(!0), domUtils.remove(a))),
- this
- )
- },
- extractContents: function () {
- return this.collapsed ? null : d(this, 2)
- },
- setStart: function (a, b) {
- return c(!0, a, b, this)
- },
- setEnd: function (a, b) {
- return c(!1, a, b, this)
- },
- setStartAfter: function (a) {
- return this.setStart(a.parentNode, domUtils.getNodeIndex(a) + 1)
- },
- setStartBefore: function (a) {
- return this.setStart(a.parentNode, domUtils.getNodeIndex(a))
- },
- setEndAfter: function (a) {
- return this.setEnd(a.parentNode, domUtils.getNodeIndex(a) + 1)
- },
- setEndBefore: function (a) {
- return this.setEnd(a.parentNode, domUtils.getNodeIndex(a))
- },
- setStartAtFirst: function (a) {
- return this.setStart(a, 0)
- },
- setStartAtLast: function (a) {
- return this.setStart(
- a,
- 3 == a.nodeType ? a.nodeValue.length : a.childNodes.length
- )
- },
- setEndAtFirst: function (a) {
- return this.setEnd(a, 0)
- },
- setEndAtLast: function (a) {
- return this.setEnd(
- a,
- 3 == a.nodeType ? a.nodeValue.length : a.childNodes.length
- )
- },
- selectNode: function (a) {
- return this.setStartBefore(a).setEndAfter(a)
- },
- selectNodeContents: function (a) {
- return this.setStart(a, 0).setEndAtLast(a)
- },
- cloneRange: function () {
- var a = this
- return new j(a.document)
- .setStart(a.startContainer, a.startOffset)
- .setEnd(a.endContainer, a.endOffset)
- },
- collapse: function (a) {
- var b = this
- return (
- a
- ? ((b.endContainer = b.startContainer),
- (b.endOffset = b.startOffset))
- : ((b.startContainer = b.endContainer),
- (b.startOffset = b.endOffset)),
- (b.collapsed = !0),
- b
- )
- },
- shrinkBoundary: function (a) {
- function b(a) {
- return (
- 1 == a.nodeType &&
- !domUtils.isBookmarkNode(a) &&
- !dtd.$empty[a.tagName] &&
- !dtd.$nonChild[a.tagName]
- )
- }
- for (
- var c, d = this, e = d.collapsed;
- 1 == d.startContainer.nodeType &&
- (c = d.startContainer.childNodes[d.startOffset]) &&
- b(c);
- )
- d.setStart(c, 0)
- if (e) return d.collapse(!0)
- if (!a)
- for (
- ;
- 1 == d.endContainer.nodeType &&
- d.endOffset > 0 &&
- (c = d.endContainer.childNodes[d.endOffset - 1]) &&
- b(c);
- )
- d.setEnd(c, c.childNodes.length)
- return d
- },
- getCommonAncestor: function (a, c) {
- var d = this,
- e = d.startContainer,
- f = d.endContainer
- return e === f
- ? a && b(this) && ((e = e.childNodes[d.startOffset]), 1 == e.nodeType)
- ? e
- : c && 3 == e.nodeType
- ? e.parentNode
- : e
- : domUtils.getCommonAncestor(e, f)
- },
- trimBoundary: function (a) {
- this.txtToElmBoundary()
- var b = this.startContainer,
- c = this.startOffset,
- d = this.collapsed,
- e = this.endContainer
- if (3 == b.nodeType) {
- if (0 == c) this.setStartBefore(b)
- else if (c >= b.nodeValue.length) this.setStartAfter(b)
- else {
- var f = domUtils.split(b, c)
- b === e
- ? this.setEnd(f, this.endOffset - c)
- : b.parentNode === e && (this.endOffset += 1),
- this.setStartBefore(f)
- }
- if (d) return this.collapse(!0)
- }
- return (
- a ||
- ((c = this.endOffset),
- (e = this.endContainer),
- 3 == e.nodeType &&
- (0 == c
- ? this.setEndBefore(e)
- : (c < e.nodeValue.length && domUtils.split(e, c),
- this.setEndAfter(e)))),
- this
- )
- },
- txtToElmBoundary: function (a) {
- function b(a, b) {
- var c = a[b + 'Container'],
- d = a[b + 'Offset']
- 3 == c.nodeType &&
- (d
- ? d >= c.nodeValue.length &&
- a[
- 'set' +
- b.replace(/(\w)/, function (a) {
- return a.toUpperCase()
- }) +
- 'After'
- ](c)
- : a[
- 'set' +
- b.replace(/(\w)/, function (a) {
- return a.toUpperCase()
- }) +
- 'Before'
- ](c))
- }
- return (
- (!a && this.collapsed) || (b(this, 'start'), b(this, 'end')), this
- )
- },
- insertNode: function (a) {
- var b = a,
- c = 1
- 11 == a.nodeType && ((b = a.firstChild), (c = a.childNodes.length)),
- this.trimBoundary(!0)
- var d = this.startContainer,
- e = this.startOffset,
- f = d.childNodes[e]
- return (
- f ? d.insertBefore(a, f) : d.appendChild(a),
- b.parentNode === this.endContainer &&
- (this.endOffset = this.endOffset + c),
- this.setStartBefore(b)
- )
- },
- setCursor: function (a, b) {
- return this.collapse(!a).select(b)
- },
- createBookmark: function (a, b) {
- var c,
- d = this.document.createElement('span')
- return (
- (d.style.cssText = 'display:none;line-height:0px;'),
- d.appendChild(this.document.createTextNode('')),
- (d.id = '_baidu_bookmark_start_' + (b ? '' : h++)),
- this.collapsed ||
- ((c = d.cloneNode(!0)),
- (c.id = '_baidu_bookmark_end_' + (b ? '' : h++))),
- this.insertNode(d),
- c && this.collapse().insertNode(c).setEndBefore(c),
- this.setStartAfter(d),
- { start: a ? d.id : d, end: c ? (a ? c.id : c) : null, id: a }
- )
- },
- moveToBookmark: function (a) {
- var b = a.id ? this.document.getElementById(a.start) : a.start,
- c = a.end && a.id ? this.document.getElementById(a.end) : a.end
- return (
- this.setStartBefore(b),
- domUtils.remove(b),
- c ? (this.setEndBefore(c), domUtils.remove(c)) : this.collapse(!0),
- this
- )
- },
- enlarge: function (a, b) {
- var c,
- d,
- e = domUtils.isBody,
- f = this.document.createTextNode('')
- if (a) {
- for (
- d = this.startContainer,
- 1 == d.nodeType
- ? d.childNodes[this.startOffset]
- ? (c = d = d.childNodes[this.startOffset])
- : (d.appendChild(f), (c = d = f))
- : (c = d);
- ;
- ) {
- if (domUtils.isBlockElm(d)) {
- for (d = c; (c = d.previousSibling) && !domUtils.isBlockElm(c); )
- d = c
- this.setStartBefore(d)
- break
- }
- ;(c = d), (d = d.parentNode)
- }
- for (
- d = this.endContainer,
- 1 == d.nodeType
- ? ((c = d.childNodes[this.endOffset])
- ? d.insertBefore(f, c)
- : d.appendChild(f),
- (c = d = f))
- : (c = d);
- ;
- ) {
- if (domUtils.isBlockElm(d)) {
- for (d = c; (c = d.nextSibling) && !domUtils.isBlockElm(c); )
- d = c
- this.setEndAfter(d)
- break
- }
- ;(c = d), (d = d.parentNode)
- }
- f.parentNode === this.endContainer && this.endOffset--,
- domUtils.remove(f)
- }
- if (!this.collapsed) {
- for (
- ;
- !(
- 0 != this.startOffset ||
- (b && b(this.startContainer)) ||
- e(this.startContainer)
- );
- )
- this.setStartBefore(this.startContainer)
- for (
- ;
- !(
- this.endOffset !=
- (1 == this.endContainer.nodeType
- ? this.endContainer.childNodes.length
- : this.endContainer.nodeValue.length) ||
- (b && b(this.endContainer)) ||
- e(this.endContainer)
- );
- )
- this.setEndAfter(this.endContainer)
- }
- return this
- },
- enlargeToBlockElm: function (a) {
- for (; !domUtils.isBlockElm(this.startContainer); )
- this.setStartBefore(this.startContainer)
- if (!a)
- for (; !domUtils.isBlockElm(this.endContainer); )
- this.setEndAfter(this.endContainer)
- return this
- },
- adjustmentBoundary: function () {
- if (!this.collapsed) {
- for (
- ;
- !domUtils.isBody(this.startContainer) &&
- this.startOffset ==
- this.startContainer[
- 3 == this.startContainer.nodeType ? 'nodeValue' : 'childNodes'
- ].length &&
- this.startContainer[
- 3 == this.startContainer.nodeType ? 'nodeValue' : 'childNodes'
- ].length;
- )
- this.setStartAfter(this.startContainer)
- for (
- ;
- !domUtils.isBody(this.endContainer) &&
- !this.endOffset &&
- this.endContainer[
- 3 == this.endContainer.nodeType ? 'nodeValue' : 'childNodes'
- ].length;
- )
- this.setEndBefore(this.endContainer)
- }
- return this
- },
- applyInlineStyle: function (a, b, c) {
- if (this.collapsed) return this
- this.trimBoundary()
- .enlarge(!1, function (a) {
- return 1 == a.nodeType && domUtils.isBlockElm(a)
- })
- .adjustmentBoundary()
- for (
- var d,
- e,
- f = this.createBookmark(),
- g = f.end,
- h = function (a) {
- return 1 == a.nodeType
- ? 'br' != a.tagName.toLowerCase()
- : !domUtils.isWhitespace(a)
- },
- i = domUtils.getNextDomNode(f.start, !1, h),
- j = this.cloneRange();
- i && domUtils.getPosition(i, g) & domUtils.POSITION_PRECEDING;
- )
- if (3 == i.nodeType || dtd[a][i.tagName]) {
- for (
- j.setStartBefore(i), d = i;
- d && (3 == d.nodeType || dtd[a][d.tagName]) && d !== g;
- )
- (e = d),
- (d = domUtils.getNextDomNode(
- d,
- 1 == d.nodeType,
- null,
- function (b) {
- return dtd[a][b.tagName]
- }
- ))
- var k,
- l = j.setEndAfter(e).extractContents()
- if (c && c.length > 0) {
- var m, n
- n = m = c[0].cloneNode(!1)
- for (var o, p = 1; (o = c[p++]); )
- m.appendChild(o.cloneNode(!1)), (m = m.firstChild)
- k = m
- } else k = j.document.createElement(a)
- b && domUtils.setAttributes(k, b),
- k.appendChild(l),
- j.insertNode(c ? n : k)
- var q
- if (
- ('span' == a &&
- b.style &&
- /text\-decoration/.test(b.style) &&
- (q = domUtils.findParentByTagName(k, 'a', !0))
- ? (domUtils.setAttributes(q, b),
- domUtils.remove(k, !0),
- (k = q))
- : (domUtils.mergeSibling(k), domUtils.clearEmptySibling(k)),
- domUtils.mergeChild(k, b),
- (i = domUtils.getNextDomNode(k, !1, h)),
- domUtils.mergeToParent(k),
- d === g)
- )
- break
- } else i = domUtils.getNextDomNode(i, !0, h)
- return this.moveToBookmark(f)
- },
- removeInlineStyle: function (a) {
- if (this.collapsed) return this
- ;(a = utils.isArray(a) ? a : [a]),
- this.shrinkBoundary().adjustmentBoundary()
- for (var b = this.startContainer, c = this.endContainer; ; ) {
- if (1 == b.nodeType) {
- if (utils.indexOf(a, b.tagName.toLowerCase()) > -1) break
- if ('body' == b.tagName.toLowerCase()) {
- b = null
- break
- }
- }
- b = b.parentNode
- }
- for (;;) {
- if (1 == c.nodeType) {
- if (utils.indexOf(a, c.tagName.toLowerCase()) > -1) break
- if ('body' == c.tagName.toLowerCase()) {
- c = null
- break
- }
- }
- c = c.parentNode
- }
- var d,
- e,
- f = this.createBookmark()
- b &&
- ((e = this.cloneRange().setEndBefore(f.start).setStartBefore(b)),
- (d = e.extractContents()),
- e.insertNode(d),
- domUtils.clearEmptySibling(b, !0),
- b.parentNode.insertBefore(f.start, b)),
- c &&
- ((e = this.cloneRange().setStartAfter(f.end).setEndAfter(c)),
- (d = e.extractContents()),
- e.insertNode(d),
- domUtils.clearEmptySibling(c, !1, !0),
- c.parentNode.insertBefore(f.end, c.nextSibling))
- for (
- var g,
- h = domUtils.getNextDomNode(f.start, !1, function (a) {
- return 1 == a.nodeType
- });
- h && h !== f.end;
- )
- (g = domUtils.getNextDomNode(h, !0, function (a) {
- return 1 == a.nodeType
- })),
- utils.indexOf(a, h.tagName.toLowerCase()) > -1 &&
- domUtils.remove(h, !0),
- (h = g)
- return this.moveToBookmark(f)
- },
- getClosedNode: function () {
- var a
- if (!this.collapsed) {
- var c = this.cloneRange().adjustmentBoundary().shrinkBoundary()
- if (b(c)) {
- var d = c.startContainer.childNodes[c.startOffset]
- d &&
- 1 == d.nodeType &&
- (dtd.$empty[d.tagName] || dtd.$nonChild[d.tagName]) &&
- (a = d)
- }
- }
- return a
- },
- select: browser.ie
- ? function (a, b) {
- var c
- this.collapsed || this.shrinkBoundary()
- var d = this.getClosedNode()
- if (d && !b) {
- try {
- ;(c = this.document.body.createControlRange()),
- c.addElement(d),
- c.select()
- } catch (h) {}
- return this
- }
- var j,
- k = this.createBookmark(),
- l = k.start
- if (
- ((c = this.document.body.createTextRange()),
- c.moveToElementText(l),
- c.moveStart('character', 1),
- this.collapsed)
- ) {
- if (!a && 3 != this.startContainer.nodeType) {
- var m = this.document.createTextNode(i),
- n = this.document.createElement('span')
- n.appendChild(this.document.createTextNode(i)),
- l.parentNode.insertBefore(n, l),
- l.parentNode.insertBefore(m, l),
- e(this.document, m),
- (g = m),
- f(n, 'previousSibling'),
- f(l, 'nextSibling'),
- c.moveStart('character', -1),
- c.collapse(!0)
- }
- } else {
- var o = this.document.body.createTextRange()
- ;(j = k.end), o.moveToElementText(j), c.setEndPoint('EndToEnd', o)
- }
- this.moveToBookmark(k), n && domUtils.remove(n)
- try {
- c.select()
- } catch (h) {}
- return this
- }
- : function (a) {
- function b(a) {
- function b(b, c, d) {
- 3 == b.nodeType &&
- b.nodeValue.length < c &&
- (a[d + 'Offset'] = b.nodeValue.length)
- }
- b(a.startContainer, a.startOffset, 'start'),
- b(a.endContainer, a.endOffset, 'end')
- }
- var c,
- d = domUtils.getWindow(this.document),
- h = d.getSelection()
- if ((browser.gecko ? this.document.body.focus() : d.focus(), h)) {
- if ((h.removeAllRanges(), this.collapsed && !a)) {
- var j = this.startContainer,
- k = j
- 1 == j.nodeType && (k = j.childNodes[this.startOffset]),
- (3 == j.nodeType && this.startOffset) ||
- (k
- ? k.previousSibling && 3 == k.previousSibling.nodeType
- : j.lastChild && 3 == j.lastChild.nodeType) ||
- ((c = this.document.createTextNode(i)),
- this.insertNode(c),
- e(this.document, c),
- f(c, 'previousSibling'),
- f(c, 'nextSibling'),
- (g = c),
- this.setStart(c, browser.webkit ? 1 : 0).collapse(!0))
- }
- var l = this.document.createRange()
- if (
- this.collapsed &&
- browser.opera &&
- 1 == this.startContainer.nodeType
- ) {
- var k = this.startContainer.childNodes[this.startOffset]
- if (k) {
- for (
- ;
- k &&
- domUtils.isBlockElm(k) &&
- 1 == k.nodeType &&
- k.childNodes[0];
- )
- k = k.childNodes[0]
- k && this.setStartBefore(k).collapse(!0)
- } else
- (k = this.startContainer.lastChild),
- k && domUtils.isBr(k) && this.setStartBefore(k).collapse(!0)
- }
- b(this),
- l.setStart(this.startContainer, this.startOffset),
- l.setEnd(this.endContainer, this.endOffset),
- h.addRange(l)
- }
- return this
- },
- scrollToView: function (a, b) {
- a = a ? window : domUtils.getWindow(this.document)
- var c = this,
- d = c.document.createElement('span')
- return (
- (d.innerHTML = ' '),
- c.cloneRange().insertNode(d),
- domUtils.scrollToView(d, a, b),
- domUtils.remove(d),
- c
- )
- },
- inFillChar: function () {
- var a = this.startContainer
- return !(
- !this.collapsed ||
- 3 != a.nodeType ||
- a.nodeValue.replace(new RegExp('^' + domUtils.fillChar), '').length +
- 1 !=
- a.nodeValue.length
- )
- },
- createAddress: function (a, b) {
- function c(a) {
- for (
- var c,
- d = a ? e.startContainer : e.endContainer,
- f = domUtils.findParents(d, !0, function (a) {
- return !domUtils.isBody(a)
- }),
- g = [],
- h = 0;
- (c = f[h++]);
- )
- g.push(domUtils.getNodeIndex(c, b))
- var i = 0
- if (b)
- if (3 == d.nodeType) {
- for (var j = d.previousSibling; j && 3 == j.nodeType; )
- (i += j.nodeValue.replace(fillCharReg, '').length),
- (j = j.previousSibling)
- i += a ? e.startOffset : e.endOffset
- } else if ((d = d.childNodes[a ? e.startOffset : e.endOffset]))
- i = domUtils.getNodeIndex(d, b)
- else {
- d = a ? e.startContainer : e.endContainer
- for (var k = d.firstChild; k; )
- if (domUtils.isFillChar(k)) k = k.nextSibling
- else if ((i++, 3 == k.nodeType))
- for (; k && 3 == k.nodeType; ) k = k.nextSibling
- else k = k.nextSibling
- }
- else
- i = a ? (domUtils.isFillChar(d) ? 0 : e.startOffset) : e.endOffset
- return i < 0 && (i = 0), g.push(i), g
- }
- var d = {},
- e = this
- return (
- (d.startAddress = c(!0)),
- a || (d.endAddress = e.collapsed ? [].concat(d.startAddress) : c()),
- d
- )
- },
- moveToAddress: function (a, b) {
- function c(a, b) {
- for (
- var c, e, f, g = d.document.body, h = 0, i = a.length;
- h < i;
- h++
- )
- if (((f = a[h]), (c = g), (g = g.childNodes[f]), !g)) {
- e = f
- break
- }
- b
- ? g
- ? d.setStartBefore(g)
- : d.setStart(c, e)
- : g
- ? d.setEndBefore(g)
- : d.setEnd(c, e)
- }
- var d = this
- return c(a.startAddress, !0), !b && a.endAddress && c(a.endAddress), d
- },
- equals: function (a) {
- for (var b in this)
- if (this.hasOwnProperty(b) && this[b] !== a[b]) return !1
- return !0
- },
- traversal: function (a, b) {
- if (this.collapsed) return this
- for (
- var c = this.createBookmark(),
- d = c.end,
- e = domUtils.getNextDomNode(c.start, !1, b);
- e &&
- e !== d &&
- domUtils.getPosition(e, d) & domUtils.POSITION_PRECEDING;
- ) {
- var f = domUtils.getNextDomNode(e, !1, b)
- a(e), (e = f)
- }
- return this.moveToBookmark(c)
- }
- }
- })(),
- (function () {
- function a(a, b) {
- var c = domUtils.getNodeIndex
- ;(a = a.duplicate()), a.collapse(b)
- var d = a.parentElement()
- if (!d.hasChildNodes()) return { container: d, offset: 0 }
- for (
- var e,
- f,
- g = d.children,
- h = a.duplicate(),
- i = 0,
- j = g.length - 1,
- k = -1;
- i <= j;
- ) {
- ;(k = Math.floor((i + j) / 2)), (e = g[k]), h.moveToElementText(e)
- var l = h.compareEndPoints('StartToStart', a)
- if (l > 0) j = k - 1
- else {
- if (!(l < 0)) return { container: d, offset: c(e) }
- i = k + 1
- }
- }
- if (k == -1) {
- if (
- (h.moveToElementText(d),
- h.setEndPoint('StartToStart', a),
- (f = h.text.replace(/(\r\n|\r)/g, '\n').length),
- (g = d.childNodes),
- !f)
- )
- return (
- (e = g[g.length - 1]),
- { container: e, offset: e.nodeValue.length }
- )
- for (var m = g.length; f > 0; ) f -= g[--m].nodeValue.length
- return { container: g[m], offset: -f }
- }
- if (
- (h.collapse(l > 0),
- h.setEndPoint(l > 0 ? 'StartToStart' : 'EndToStart', a),
- (f = h.text.replace(/(\r\n|\r)/g, '\n').length),
- !f)
- )
- return dtd.$empty[e.tagName] || dtd.$nonChild[e.tagName]
- ? { container: d, offset: c(e) + (l > 0 ? 0 : 1) }
- : { container: e, offset: l > 0 ? 0 : e.childNodes.length }
- for (; f > 0; )
- try {
- var n = e
- ;(e = e[l > 0 ? 'previousSibling' : 'nextSibling']),
- (f -= e.nodeValue.length)
- } catch (o) {
- return { container: d, offset: c(n) }
- }
- return { container: e, offset: l > 0 ? -f : e.nodeValue.length + f }
- }
- function b(b, c) {
- if (b.item) c.selectNode(b.item(0))
- else {
- var d = a(b, !0)
- c.setStart(d.container, d.offset),
- 0 != b.compareEndPoints('StartToEnd', b) &&
- ((d = a(b, !1)), c.setEnd(d.container, d.offset))
- }
- return c
- }
- function c(a) {
- var b
- try {
- b = a.getNative().createRange()
- } catch (c) {
- return null
- }
- var d = b.item ? b.item(0) : b.parentElement()
- return (d.ownerDocument || d) === a.document ? b : null
- }
- var d = (dom.Selection = function (a) {
- var b,
- d = this
- ;(d.document = a),
- browser.ie9below &&
- ((b = domUtils.getWindow(a).frameElement),
- domUtils.on(b, 'beforedeactivate', function () {
- d._bakIERange = d.getIERange()
- }),
- domUtils.on(b, 'activate', function () {
- try {
- !c(d) && d._bakIERange && d._bakIERange.select()
- } catch (a) {}
- d._bakIERange = null
- })),
- (b = a = null)
- })
- d.prototype = {
- rangeInBody: function (a, b) {
- var c =
- browser.ie9below || b
- ? a.item
- ? a.item()
- : a.parentElement()
- : a.startContainer
- return c === this.document.body || domUtils.inDoc(c, this.document)
- },
- getNative: function () {
- var a = this.document
- try {
- return a
- ? browser.ie9below
- ? a.selection
- : domUtils.getWindow(a).getSelection()
- : null
- } catch (b) {
- return null
- }
- },
- getIERange: function () {
- var a = c(this)
- return !a && this._bakIERange ? this._bakIERange : a
- },
- cache: function () {
- this.clear(),
- (this._cachedRange = this.getRange()),
- (this._cachedStartElement = this.getStart()),
- (this._cachedStartElementPath = this.getStartElementPath())
- },
- getStartElementPath: function () {
- if (this._cachedStartElementPath) return this._cachedStartElementPath
- var a = this.getStart()
- return a ? domUtils.findParents(a, !0, null, !0) : []
- },
- clear: function () {
- this._cachedStartElementPath =
- this._cachedRange =
- this._cachedStartElement =
- null
- },
- isFocus: function () {
- try {
- if (browser.ie9below) {
- var a = c(this)
- return !(!a || !this.rangeInBody(a))
- }
- return !!this.getNative().rangeCount
- } catch (b) {
- return !1
- }
- },
- getRange: function () {
- function a(a) {
- for (
- var b = c.document.body.firstChild, d = a.collapsed;
- b && b.firstChild;
- )
- a.setStart(b, 0), (b = b.firstChild)
- a.startContainer || a.setStart(c.document.body, 0),
- d && a.collapse(!0)
- }
- var c = this
- if (null != c._cachedRange) return this._cachedRange
- var d = new baidu.editor.dom.Range(c.document)
- if (browser.ie9below) {
- var e = c.getIERange()
- if (e)
- try {
- b(e, d)
- } catch (f) {
- a(d)
- }
- else a(d)
- } else {
- var g = c.getNative()
- if (g && g.rangeCount) {
- var h = g.getRangeAt(0),
- i = g.getRangeAt(g.rangeCount - 1)
- d
- .setStart(h.startContainer, h.startOffset)
- .setEnd(i.endContainer, i.endOffset),
- d.collapsed &&
- domUtils.isBody(d.startContainer) &&
- !d.startOffset &&
- a(d)
- } else {
- if (
- this._bakRange &&
- domUtils.inDoc(this._bakRange.startContainer, this.document)
- )
- return this._bakRange
- a(d)
- }
- }
- return (this._bakRange = d)
- },
- getStart: function () {
- if (this._cachedStartElement) return this._cachedStartElement
- var a,
- b,
- c,
- d,
- e = browser.ie9below ? this.getIERange() : this.getRange()
- if (browser.ie9below) {
- if (!e) return this.document.body.firstChild
- if (e.item) return e.item(0)
- for (
- a = e.duplicate(),
- a.text.length > 0 && a.moveStart('character', 1),
- a.collapse(1),
- b = a.parentElement(),
- d = c = e.parentElement();
- (c = c.parentNode);
- )
- if (c == b) {
- b = d
- break
- }
- } else if (
- (e.shrinkBoundary(),
- (b = e.startContainer),
- 1 == b.nodeType &&
- b.hasChildNodes() &&
- (b =
- b.childNodes[Math.min(b.childNodes.length - 1, e.startOffset)]),
- 3 == b.nodeType)
- )
- return b.parentNode
- return b
- },
- getText: function () {
- var a, b
- return this.isFocus() && (a = this.getNative())
- ? ((b = browser.ie9below ? a.createRange() : a.getRangeAt(0)),
- browser.ie9below ? b.text : b.toString())
- : ''
- },
- clearRange: function () {
- this.getNative()[browser.ie9below ? 'empty' : 'removeAllRanges']()
- }
- }
- })(),
- (function () {
- function a(a, b) {
- var c
- if (b.textarea)
- if (utils.isString(b.textarea)) {
- for (
- var d, e = 0, f = domUtils.getElementsByTagName(a, 'textarea');
- (d = f[e++]);
- )
- if (d.id == 'ueditor_textarea_' + b.options.textarea) {
- c = d
- break
- }
- } else c = b.textarea
- c ||
- (a.appendChild(
- (c = domUtils.createElement(document, 'textarea', {
- name: b.options.textarea,
- id: 'ueditor_textarea_' + b.options.textarea,
- style: 'display:none'
- }))
- ),
- (b.textarea = c)),
- !c.getAttribute('name') && c.setAttribute('name', b.options.textarea),
- (c.value = b.hasContents()
- ? b.options.allHtmlEnabled
- ? b.getAllHtml()
- : b.getContent(null, null, !0)
- : '')
- }
- function b(a) {
- for (var b in a) return b
- }
- function c(a) {
- ;(a.langIsReady = !0), a.fireEvent('langReady')
- }
- var d,
- e = 0,
- f = (UE.Editor = function (a) {
- var d = this
- ;(d.uid = e++),
- EventBase.call(d),
- (d.commands = {}),
- (d.options = utils.extend(
- utils.clone(a || {}),
- UEDITOR_CONFIG,
- !0
- )),
- (d.shortcutkeys = {}),
- (d.inputRules = []),
- (d.outputRules = []),
- d.setOpt(f.defaultOptions(d)),
- d.loadServerConfig(),
- utils.isEmptyObject(UE.I18N)
- ? utils.loadFile(
- document,
- {
- src:
- d.options.langPath +
- d.options.lang +
- '/' +
- d.options.lang +
- '.js',
- tag: 'script',
- type: 'text/javascript',
- defer: 'defer'
- },
- function () {
- UE.plugin.load(d), c(d)
- }
- )
- : ((d.options.lang = b(UE.I18N)), UE.plugin.load(d), c(d)),
- (UE.instants['ueditorInstant' + d.uid] = d)
- })
- ;(f.prototype = {
- registerCommand: function (a, b) {
- this.commands[a] = b
- },
- ready: function (a) {
- var b = this
- a && (b.isReady ? a.apply(b) : b.addListener('ready', a))
- },
- setOpt: function (a, b) {
- var c = {}
- utils.isString(a) ? (c[a] = b) : (c = a),
- utils.extend(this.options, c, !0)
- },
- getOpt: function (a) {
- return this.options[a]
- },
- destroy: function () {
- var a = this
- a.fireEvent('destroy')
- var b = a.container.parentNode,
- c = a.textarea
- c
- ? (c.style.display = '')
- : ((c = document.createElement('textarea')),
- b.parentNode.insertBefore(c, b)),
- (c.style.width = a.iframe.offsetWidth + 'px'),
- (c.style.height = a.iframe.offsetHeight + 'px'),
- (c.value = a.getContent()),
- (c.id = a.key),
- (b.innerHTML = ''),
- domUtils.remove(b)
- var d = a.key
- for (var e in a) a.hasOwnProperty(e) && delete this[e]
- UE.delEditor(d)
- },
- render: function (a) {
- var b = this,
- c = b.options,
- d = function (b) {
- return parseInt(domUtils.getComputedStyle(a, b))
- }
- if ((utils.isString(a) && (a = document.getElementById(a)), a)) {
- c.initialFrameWidth
- ? (c.minFrameWidth = c.initialFrameWidth)
- : (c.minFrameWidth = c.initialFrameWidth = a.offsetWidth),
- c.initialFrameHeight
- ? (c.minFrameHeight = c.initialFrameHeight)
- : (c.initialFrameHeight = c.minFrameHeight = a.offsetHeight),
- (a.style.width = /%$/.test(c.initialFrameWidth)
- ? '100%'
- : c.initialFrameWidth -
- d('padding-left') -
- d('padding-right') +
- 'px'),
- (a.style.height = /%$/.test(c.initialFrameHeight)
- ? '100%'
- : c.initialFrameHeight -
- d('padding-top') -
- d('padding-bottom') +
- 'px'),
- (a.style.zIndex = c.zIndex)
- var e =
- (ie && browser.version < 9 ? '' : '<!DOCTYPE html>') +
- "<html xmlns='http://www.w3.org/1999/xhtml' class='view' ><head><style type='text/css'>.view{padding:0;word-wrap:break-word;cursor:text;height:90%;}\nbody{margin:8px;font-family:sans-serif;font-size:16px;}p{margin:5px 0;}</style>" +
- (c.iframeCssUrl
- ? "<link rel='stylesheet' type='text/css' href='" +
- utils.unhtml(c.iframeCssUrl) +
- "'/>"
- : '') +
- (c.initialStyle ? '<style>' + c.initialStyle + '</style>' : '') +
- "</head><body class='view' ></body><script type='text/javascript' " +
- (ie ? "defer='defer'" : '') +
- " id='_initialScript'>setTimeout(function(){editor = window.parent.UE.instants['ueditorInstant" +
- b.uid +
- "'];editor._setup(document);},0);var _tmpScript = document.getElementById('_initialScript');_tmpScript.parentNode.removeChild(_tmpScript);</script></html>"
- a.appendChild(
- domUtils.createElement(document, 'iframe', {
- id: 'ueditor_' + b.uid,
- width: '100%',
- height: '100%',
- frameborder: '0',
- src:
- 'javascript:void(function(){document.open();' +
- (c.customDomain && document.domain != location.hostname
- ? 'document.domain="' + document.domain + '";'
- : '') +
- 'document.write("' +
- e +
- '");document.close();}())'
- })
- ),
- (a.style.overflow = 'hidden'),
- setTimeout(function () {
- ;/%$/.test(c.initialFrameWidth) &&
- (c.minFrameWidth = c.initialFrameWidth = a.offsetWidth),
- /%$/.test(c.initialFrameHeight) &&
- ((c.minFrameHeight = c.initialFrameHeight = a.offsetHeight),
- (a.style.height = c.initialFrameHeight + 'px'))
- })
- }
- },
- _setup: function (b) {
- var c = this,
- d = c.options
- ie
- ? ((b.body.disabled = !0),
- (b.body.contentEditable = !0),
- (b.body.disabled = !1))
- : (b.body.contentEditable = !0),
- (b.body.spellcheck = !1),
- (c.document = b),
- (c.window = b.defaultView || b.parentWindow),
- (c.iframe = c.window.frameElement),
- (c.body = b.body),
- (c.selection = new dom.Selection(b))
- var e
- browser.gecko &&
- (e = this.selection.getNative()) &&
- e.removeAllRanges(),
- this._initEvents()
- for (
- var f = this.iframe.parentNode;
- !domUtils.isBody(f);
- f = f.parentNode
- )
- if ('FORM' == f.tagName) {
- ;(c.form = f),
- c.options.autoSyncData
- ? domUtils.on(c.window, 'blur', function () {
- a(f, c)
- })
- : domUtils.on(f, 'submit', function () {
- a(this, c)
- })
- break
- }
- if (d.initialContent)
- if (d.autoClearinitialContent) {
- var g = c.execCommand
- ;(c.execCommand = function () {
- return (
- c.fireEvent('firstBeforeExecCommand'), g.apply(c, arguments)
- )
- }),
- this._setDefaultContent(d.initialContent)
- } else this.setContent(d.initialContent, !1, !0)
- domUtils.isEmptyNode(c.body) &&
- (c.body.innerHTML = '<p>' + (browser.ie ? '' : '<br/>') + '</p>'),
- d.focus &&
- setTimeout(function () {
- c.focus(c.options.focusInEnd),
- !c.options.autoClearinitialContent && c._selectionChange()
- }, 0),
- c.container || (c.container = this.iframe.parentNode),
- d.fullscreen && c.ui && c.ui.setFullScreen(!0)
- try {
- c.document.execCommand('2D-position', !1, !1)
- } catch (h) {}
- try {
- c.document.execCommand('enableInlineTableEditing', !1, !1)
- } catch (h) {}
- try {
- c.document.execCommand('enableObjectResizing', !1, !1)
- } catch (h) {}
- c._bindshortcutKeys(),
- (c.isReady = 1),
- c.fireEvent('ready'),
- d.onready && d.onready.call(c),
- browser.ie9below ||
- domUtils.on(c.window, ['blur', 'focus'], function (a) {
- if ('blur' == a.type) {
- c._bakRange = c.selection.getRange()
- try {
- ;(c._bakNativeRange = c.selection
- .getNative()
- .getRangeAt(0)),
- c.selection.getNative().removeAllRanges()
- } catch (a) {
- c._bakNativeRange = null
- }
- } else
- try {
- c._bakRange && c._bakRange.select()
- } catch (a) {}
- }),
- browser.gecko &&
- browser.version <= 10902 &&
- ((c.body.contentEditable = !1),
- setTimeout(function () {
- c.body.contentEditable = !0
- }, 100),
- setInterval(function () {
- c.body.style.height = c.iframe.offsetHeight - 20 + 'px'
- }, 100)),
- !d.isShow && c.setHide(),
- d.readonly && c.setDisabled()
- },
- sync: function (b) {
- var c = this,
- d = b
- ? document.getElementById(b)
- : domUtils.findParent(
- c.iframe.parentNode,
- function (a) {
- return 'FORM' == a.tagName
- },
- !0
- )
- d && a(d, c)
- },
- setHeight: function (a, b) {
- a !== parseInt(this.iframe.parentNode.style.height) &&
- (this.iframe.parentNode.style.height = a + 'px'),
- !b &&
- (this.options.minFrameHeight = this.options.initialFrameHeight =
- a),
- (this.body.style.height = a + 'px'),
- !b && this.trigger('setHeight')
- },
- addshortcutkey: function (a, b) {
- var c = {}
- b ? (c[a] = b) : (c = a), utils.extend(this.shortcutkeys, c)
- },
- _bindshortcutKeys: function () {
- var a = this,
- b = this.shortcutkeys
- a.addListener('keydown', function (c, d) {
- var e = d.keyCode || d.which
- for (var f in b)
- for (var g, h = b[f].split(','), i = 0; (g = h[i++]); ) {
- g = g.split(':')
- var j = g[0],
- k = g[1]
- ;(/^(ctrl)(\+shift)?\+(\d+)$/.test(j.toLowerCase()) ||
- /^(\d+)$/.test(j)) &&
- ((('ctrl' == RegExp.$1 ? d.ctrlKey || d.metaKey : 0) &&
- ('' != RegExp.$2 ? d[RegExp.$2.slice(1) + 'Key'] : 1) &&
- e == RegExp.$3) ||
- e == RegExp.$1) &&
- (a.queryCommandState(f, k) != -1 && a.execCommand(f, k),
- domUtils.preventDefault(d))
- }
- })
- },
- getContent: function (a, b, c, d, e) {
- var f = this
- if (
- (a && utils.isFunction(a) && ((b = a), (a = '')),
- b ? !b() : !this.hasContents())
- )
- return ''
- f.fireEvent('beforegetcontent')
- var g = UE.htmlparser(f.body.innerHTML, d)
- return (
- f.filterOutputRule(g),
- f.fireEvent('aftergetcontent', a, g),
- g.toHtml(e)
- )
- },
- getAllHtml: function () {
- var a = this,
- b = []
- if (
- (a.fireEvent('getAllHtml', b), browser.ie && browser.version > 8)
- ) {
- var c = ''
- utils.each(a.document.styleSheets, function (a) {
- c += a.href
- ? '<link rel="stylesheet" type="text/css" href="' +
- a.href +
- '" />'
- : '<style>' + a.cssText + '</style>'
- }),
- utils.each(
- a.document.getElementsByTagName('script'),
- function (a) {
- c += a.outerHTML
- }
- )
- }
- return (
- '<html><head>' +
- (a.options.charset
- ? '<meta http-equiv="Content-Type" content="text/html; charset=' +
- a.options.charset +
- '"/>'
- : '') +
- (c || a.document.getElementsByTagName('head')[0].innerHTML) +
- b.join('\n') +
- '</head><body ' +
- (ie && browser.version < 9 ? 'class="view"' : '') +
- '>' +
- a.getContent(null, null, !0) +
- '</body></html>'
- )
- },
- getPlainTxt: function () {
- var a = new RegExp(domUtils.fillChar, 'g'),
- b = this.body.innerHTML.replace(/[\n\r]/g, '')
- return (
- (b = b
- .replace(/<(p|div)[^>]*>(<br\/?>| )<\/\1>/gi, '\n')
- .replace(/<br\/?>/gi, '\n')
- .replace(/<[^>\/]+>/g, '')
- .replace(/(\n)?<\/([^>]+)>/g, function (a, b, c) {
- return dtd.$block[c] ? '\n' : b ? b : ''
- })),
- b
- .replace(a, '')
- .replace(/\u00a0/g, ' ')
- .replace(/ /g, ' ')
- )
- },
- getContentTxt: function () {
- var a = new RegExp(domUtils.fillChar, 'g')
- return this.body[browser.ie ? 'innerText' : 'textContent']
- .replace(a, '')
- .replace(/\u00a0/g, ' ')
- },
- setContent: function (b, c, d) {
- function e(a) {
- return 'DIV' == a.tagName && a.getAttribute('cdata_tag')
- }
- var f = this
- f.fireEvent('beforesetcontent', b)
- var g = UE.htmlparser(b)
- if (
- (f.filterInputRule(g),
- (b = g.toHtml()),
- (f.body.innerHTML = (c ? f.body.innerHTML : '') + b),
- 'p' == f.options.enterTag)
- ) {
- var h,
- i = this.body.firstChild
- if (
- !i ||
- (1 == i.nodeType &&
- (dtd.$cdata[i.tagName] || e(i) || domUtils.isCustomeNode(i)) &&
- i === this.body.lastChild)
- )
- this.body.innerHTML =
- '<p>' +
- (browser.ie ? ' ' : '<br/>') +
- '</p>' +
- this.body.innerHTML
- else
- for (var j = f.document.createElement('p'); i; ) {
- for (
- ;
- i &&
- (3 == i.nodeType ||
- (1 == i.nodeType &&
- dtd.p[i.tagName] &&
- !dtd.$cdata[i.tagName]));
- )
- (h = i.nextSibling), j.appendChild(i), (i = h)
- if (j.firstChild) {
- if (!i) {
- f.body.appendChild(j)
- break
- }
- i.parentNode.insertBefore(j, i),
- (j = f.document.createElement('p'))
- }
- i = i.nextSibling
- }
- }
- f.fireEvent('aftersetcontent'),
- f.fireEvent('contentchange'),
- !d && f._selectionChange(),
- (f._bakRange = f._bakIERange = f._bakNativeRange = null)
- var k
- browser.gecko &&
- (k = this.selection.getNative()) &&
- k.removeAllRanges(),
- f.options.autoSyncData && f.form && a(f.form, f)
- },
- focus: function (a) {
- try {
- var b = this,
- c = b.selection.getRange()
- if (a) {
- var d = b.body.lastChild
- d &&
- 1 == d.nodeType &&
- !dtd.$empty[d.tagName] &&
- (domUtils.isEmptyBlock(d)
- ? c.setStartAtFirst(d)
- : c.setStartAtLast(d),
- c.collapse(!0)),
- c.setCursor(!0)
- } else {
- if (
- !c.collapsed &&
- domUtils.isBody(c.startContainer) &&
- 0 == c.startOffset
- ) {
- var d = b.body.firstChild
- d &&
- 1 == d.nodeType &&
- !dtd.$empty[d.tagName] &&
- c.setStartAtFirst(d).collapse(!0)
- }
- c.select(!0)
- }
- this.fireEvent('focus selectionchange')
- } catch (e) {}
- },
- isFocus: function () {
- return this.selection.isFocus()
- },
- blur: function () {
- var a = this.selection.getNative()
- if (a.empty && browser.ie) {
- var b = document.body.createTextRange()
- b.moveToElementText(document.body),
- b.collapse(!0),
- b.select(),
- a.empty()
- } else a.removeAllRanges()
- },
- _initEvents: function () {
- var a = this,
- b = a.document,
- c = a.window
- ;(a._proxyDomEvent = utils.bind(a._proxyDomEvent, a)),
- domUtils.on(
- b,
- [
- 'click',
- 'contextmenu',
- 'mousedown',
- 'keydown',
- 'keyup',
- 'keypress',
- 'mouseup',
- 'mouseover',
- 'mouseout',
- 'selectstart'
- ],
- a._proxyDomEvent
- ),
- domUtils.on(c, ['focus', 'blur'], a._proxyDomEvent),
- domUtils.on(a.body, 'drop', function (b) {
- browser.gecko && b.stopPropagation && b.stopPropagation(),
- a.fireEvent('contentchange')
- }),
- domUtils.on(b, ['mouseup', 'keydown'], function (b) {
- ;('keydown' == b.type &&
- (b.ctrlKey || b.metaKey || b.shiftKey || b.altKey)) ||
- (2 != b.button && a._selectionChange(250, b))
- })
- },
- _proxyDomEvent: function (a) {
- return (
- this.fireEvent(
- 'before' + a.type.replace(/^on/, '').toLowerCase()
- ) !== !1 &&
- this.fireEvent(a.type.replace(/^on/, ''), a) !== !1 &&
- this.fireEvent('after' + a.type.replace(/^on/, '').toLowerCase())
- )
- },
- _selectionChange: function (a, b) {
- var c,
- e,
- f = this,
- g = !1
- if (browser.ie && browser.version < 9 && b && 'mouseup' == b.type) {
- var h = this.selection.getRange()
- h.collapsed || ((g = !0), (c = b.clientX), (e = b.clientY))
- }
- clearTimeout(d),
- (d = setTimeout(function () {
- if (f.selection && f.selection.getNative()) {
- var a
- if (g && 'None' == f.selection.getNative().type) {
- a = f.document.body.createTextRange()
- try {
- a.moveToPoint(c, e)
- } catch (d) {
- a = null
- }
- }
- var h
- a &&
- ((h = f.selection.getIERange),
- (f.selection.getIERange = function () {
- return a
- })),
- f.selection.cache(),
- h && (f.selection.getIERange = h),
- f.selection._cachedRange &&
- f.selection._cachedStartElement &&
- (f.fireEvent('beforeselectionchange'),
- f.fireEvent('selectionchange', !!b),
- f.fireEvent('afterselectionchange'),
- f.selection.clear())
- }
- }, a || 50))
- },
- _callCmdFn: function (a, b) {
- var c,
- d,
- e = b[0].toLowerCase()
- return (
- (c = this.commands[e] || UE.commands[e]),
- (d = c && c[a]),
- (c && d) || 'queryCommandState' != a
- ? d
- ? d.apply(this, b)
- : void 0
- : 0
- )
- },
- execCommand: function (a) {
- a = a.toLowerCase()
- var b,
- c = this,
- d = c.commands[a] || UE.commands[a]
- return d && d.execCommand
- ? (d.notNeedUndo || c.__hasEnterExecCommand
- ? ((b = this._callCmdFn('execCommand', arguments)),
- !c.__hasEnterExecCommand &&
- !d.ignoreContentChange &&
- !c._ignoreContentChange &&
- c.fireEvent('contentchange'))
- : ((c.__hasEnterExecCommand = !0),
- c.queryCommandState.apply(c, arguments) != -1 &&
- (c.fireEvent('saveScene'),
- c.fireEvent.apply(
- c,
- ['beforeexeccommand', a].concat(arguments)
- ),
- (b = this._callCmdFn('execCommand', arguments)),
- c.fireEvent.apply(
- c,
- ['afterexeccommand', a].concat(arguments)
- ),
- c.fireEvent('saveScene')),
- (c.__hasEnterExecCommand = !1)),
- !c.__hasEnterExecCommand &&
- !d.ignoreContentChange &&
- !c._ignoreContentChange &&
- c._selectionChange(),
- b)
- : null
- },
- queryCommandState: function (a) {
- return this._callCmdFn('queryCommandState', arguments)
- },
- queryCommandValue: function (a) {
- return this._callCmdFn('queryCommandValue', arguments)
- },
- hasContents: function (a) {
- if (a)
- for (var b, c = 0; (b = a[c++]); )
- if (this.document.getElementsByTagName(b).length > 0) return !0
- if (!domUtils.isEmptyBlock(this.body)) return !0
- for (a = ['div'], c = 0; (b = a[c++]); )
- for (
- var d, e = domUtils.getElementsByTagName(this.document, b), f = 0;
- (d = e[f++]);
- )
- if (domUtils.isCustomeNode(d)) return !0
- return !1
- },
- reset: function () {
- this.fireEvent('reset')
- },
- setEnabled: function () {
- var a,
- b = this
- if ('false' == b.body.contentEditable) {
- ;(b.body.contentEditable = !0), (a = b.selection.getRange())
- try {
- a.moveToBookmark(b.lastBk), delete b.lastBk
- } catch (c) {
- a.setStartAtFirst(b.body).collapse(!0)
- }
- a.select(!0),
- b.bkqueryCommandState &&
- ((b.queryCommandState = b.bkqueryCommandState),
- delete b.bkqueryCommandState),
- b.bkqueryCommandValue &&
- ((b.queryCommandValue = b.bkqueryCommandValue),
- delete b.bkqueryCommandValue),
- b.fireEvent('selectionchange')
- }
- },
- enable: function () {
- return this.setEnabled()
- },
- setDisabled: function (a) {
- var b = this
- ;(a = a ? (utils.isArray(a) ? a : [a]) : []),
- 'true' == b.body.contentEditable &&
- (b.lastBk ||
- (b.lastBk = b.selection.getRange().createBookmark(!0)),
- (b.body.contentEditable = !1),
- (b.bkqueryCommandState = b.queryCommandState),
- (b.bkqueryCommandValue = b.queryCommandValue),
- (b.queryCommandState = function (c) {
- return utils.indexOf(a, c) != -1
- ? b.bkqueryCommandState.apply(b, arguments)
- : -1
- }),
- (b.queryCommandValue = function (c) {
- return utils.indexOf(a, c) != -1
- ? b.bkqueryCommandValue.apply(b, arguments)
- : null
- }),
- b.fireEvent('selectionchange'))
- },
- disable: function (a) {
- return this.setDisabled(a)
- },
- _setDefaultContent: (function () {
- function a() {
- var b = this
- b.document.getElementById('initContent') &&
- ((b.body.innerHTML = '<p>' + (ie ? '' : '<br/>') + '</p>'),
- b.removeListener('firstBeforeExecCommand focus', a),
- setTimeout(function () {
- b.focus(), b._selectionChange()
- }, 0))
- }
- return function (b) {
- var c = this
- ;(c.body.innerHTML = '<p id="initContent">' + b + '</p>'),
- c.addListener('firstBeforeExecCommand focus', a)
- }
- })(),
- setShow: function () {
- var a = this,
- b = a.selection.getRange()
- if ('none' == a.container.style.display) {
- try {
- b.moveToBookmark(a.lastBk), delete a.lastBk
- } catch (c) {
- b.setStartAtFirst(a.body).collapse(!0)
- }
- setTimeout(function () {
- b.select(!0)
- }, 100),
- (a.container.style.display = '')
- }
- },
- show: function () {
- return this.setShow()
- },
- setHide: function () {
- var a = this
- a.lastBk || (a.lastBk = a.selection.getRange().createBookmark(!0)),
- (a.container.style.display = 'none')
- },
- hide: function () {
- return this.setHide()
- },
- getLang: function (a) {
- if (!this.options) return ''
- var b = UE.I18N[this.options.lang]
- if (!b) throw Error('not import language file')
- a = (a || '').split('.')
- for (var c, d = 0; (c = a[d++]) && ((b = b[c]), b); );
- return b
- },
- getContentLength: function (a, b) {
- var c = this.getContent(!1, !1, !0).length
- if (a) {
- ;(b = (b || []).concat(['hr', 'img', 'iframe'])),
- (c = this.getContentTxt().replace(/[\t\r\n]+/g, '').length)
- for (var d, e = 0; (d = b[e++]); )
- c += this.document.getElementsByTagName(d).length
- }
- return c
- },
- addInputRule: function (a) {
- this.inputRules.push(a)
- },
- filterInputRule: function (a) {
- for (var b, c = 0; (b = this.inputRules[c++]); ) b.call(this, a)
- },
- addOutputRule: function (a) {
- this.outputRules.push(a)
- },
- filterOutputRule: function (a) {
- for (var b, c = 0; (b = this.outputRules[c++]); ) b.call(this, a)
- },
- getActionUrl: function (a) {
- var b = this.getOpt(a) || a,
- c = this.getOpt('imageUrl'),
- d = this.getOpt('serverUrl')
- return (
- !d &&
- c &&
- (d = c.replace(/^(.*[\/]).+([\.].+)$/, '$1controller$2')),
- d
- ? ((d =
- d +
- (d.indexOf('?') == -1 ? '?' : '&') +
- 'action=' +
- (b || '')),
- utils.formatUrl(d))
- : ''
- )
- }
- }),
- utils.inherits(f, EventBase)
- })(),
- (UE.Editor.defaultOptions = function (a) {
- var b = a.options.UEDITOR_HOME_URL
- return {
- isShow: !0,
- initialContent: '',
- initialStyle: '',
- autoClearinitialContent: !1,
- iframeCssUrl: b + 'themes/iframe.css',
- textarea: 'editorValue',
- focus: !1,
- focusInEnd: !0,
- autoClearEmptyNode: !0,
- fullscreen: !1,
- readonly: !1,
- zIndex: 999,
- imagePopup: !0,
- enterTag: 'p',
- customDomain: !1,
- lang: 'zh-cn',
- langPath: b + 'lang/',
- theme: 'default',
- themePath: b + 'themes/',
- allHtmlEnabled: !1,
- scaleEnabled: !1,
- tableNativeEditInFF: !1,
- autoSyncData: !0,
- fileNameFormat: '{time}{rand:6}'
- }
- }),
- (function () {
- ;(UE.Editor.prototype.loadServerConfig = function () {
- function showErrorMsg(a) {
- console && console.error(a)
- }
- var me = this
- setTimeout(function () {
- try {
- me.options.imageUrl &&
- me.setOpt(
- 'serverUrl',
- me.options.imageUrl.replace(
- /^(.*[\/]).+([\.].+)$/,
- '$1controller$2'
- )
- )
- var configUrl = me.getActionUrl('config'),
- isJsonp = utils.isCrossDomainUrl(configUrl)
- ;(me._serverConfigLoaded = !1),
- configUrl &&
- UE.ajax.request(configUrl, {
- method: 'GET',
- dataType: isJsonp ? 'jsonp' : '',
- onsuccess: function (r) {
- try {
- var config = isJsonp
- ? r
- : eval('(' + r.responseText + ')')
- utils.extend(me.options, config),
- me.fireEvent('serverConfigLoaded'),
- (me._serverConfigLoaded = !0)
- } catch (e) {
- showErrorMsg(me.getLang('loadconfigFormatError'))
- }
- },
- onerror: function () {
- showErrorMsg(me.getLang('loadconfigHttpError'))
- }
- })
- } catch (e) {
- showErrorMsg(me.getLang('loadconfigError'))
- }
- })
- }),
- (UE.Editor.prototype.isServerConfigLoaded = function () {
- var a = this
- return a._serverConfigLoaded || !1
- }),
- (UE.Editor.prototype.afterConfigReady = function (a) {
- if (a && utils.isFunction(a)) {
- var b = this,
- c = function () {
- a.apply(b, arguments), b.removeListener('serverConfigLoaded', c)
- }
- b.isServerConfigLoaded()
- ? a.call(b, 'serverConfigLoaded')
- : b.addListener('serverConfigLoaded', c)
- }
- })
- })(),
- (UE.ajax = (function () {
- function a(a) {
- var b = []
- for (var c in a)
- if (
- 'method' != c &&
- 'timeout' != c &&
- 'async' != c &&
- 'dataType' != c &&
- 'callback' != c &&
- void 0 != a[c] &&
- null != a[c]
- )
- if (
- 'function' != (typeof a[c]).toLowerCase() &&
- 'object' != (typeof a[c]).toLowerCase()
- )
- b.push(encodeURIComponent(c) + '=' + encodeURIComponent(a[c]))
- else if (utils.isArray(a[c]))
- for (var d = 0; d < a[c].length; d++)
- b.push(
- encodeURIComponent(c) + '[]=' + encodeURIComponent(a[c][d])
- )
- return b.join('&')
- }
- function b(b, c) {
- var d = f(),
- e = !1,
- g = {
- method: 'POST',
- timeout: 5e3,
- async: !0,
- data: {},
- onsuccess: function () {},
- onerror: function () {}
- }
- if (('object' == typeof b && ((c = b), (b = c.url)), d && b)) {
- var h = c ? utils.extend(g, c) : g,
- i = a(h)
- utils.isEmptyObject(h.data) || (i += (i ? '&' : '') + a(h.data))
- var j = setTimeout(function () {
- 4 != d.readyState && ((e = !0), d.abort(), clearTimeout(j))
- }, h.timeout),
- k = h.method.toUpperCase(),
- l =
- b +
- (b.indexOf('?') == -1 ? '?' : '&') +
- ('POST' == k ? '' : i + '&noCache=' + +new Date())
- d.open(k, l, h.async),
- (d.onreadystatechange = function () {
- 4 == d.readyState &&
- (e || 200 != d.status ? h.onerror(d) : h.onsuccess(d))
- }),
- 'POST' == k
- ? (d.setRequestHeader(
- 'Content-Type',
- 'application/x-www-form-urlencoded'
- ),
- d.send(i))
- : d.send(null)
- }
- }
- function c(b, c) {
- function d(a, b, c) {
- a.setAttribute('type', 'text/javascript'),
- a.setAttribute('defer', 'defer'),
- c && a.setAttribute('charset', c),
- a.setAttribute('src', b),
- document.getElementsByTagName('head')[0].appendChild(a)
- }
- function e(a) {
- return function () {
- try {
- if (a) k.onerror && k.onerror()
- else
- try {
- clearTimeout(g), i.apply(window, arguments)
- } catch (b) {}
- } catch (c) {
- k.onerror && k.onerror.call(window, c)
- } finally {
- k.oncomplete && k.oncomplete.apply(window, arguments),
- j.parentNode && j.parentNode.removeChild(j),
- (window[f] = null)
- try {
- delete window[f]
- } catch (b) {}
- }
- }
- }
- var f,
- g,
- h,
- i = c.onsuccess || function () {},
- j = document.createElement('SCRIPT'),
- k = c || {},
- l = k.charset,
- m = k.jsonp || 'callback',
- n = k.timeOut || 0,
- o = new RegExp('(\\?|&)' + m + '=([^&]*)')
- utils.isFunction(i)
- ? ((f =
- 'bd__editor__' +
- Math.floor(2147483648 * Math.random()).toString(36)),
- (window[f] = e(0)))
- : utils.isString(i)
- ? (f = i)
- : (h = o.exec(b)) && (f = h[2]),
- (b = b.replace(o, '$1' + m + '=' + f)),
- b.search(o) < 0 &&
- (b += (b.indexOf('?') < 0 ? '?' : '&') + m + '=' + f)
- var p = a(c)
- utils.isEmptyObject(c.data) || (p += (p ? '&' : '') + a(c.data)),
- p && (b = b.replace(/\?/, '?' + p + '&')),
- (j.onerror = e(1)),
- n && (g = setTimeout(e(1), n)),
- d(j, b, l)
- }
- var d = 'XMLHttpRequest()'
- try {
- new ActiveXObject('Msxml2.XMLHTTP'),
- (d = "ActiveXObject('Msxml2.XMLHTTP')")
- } catch (e) {
- try {
- new ActiveXObject('Microsoft.XMLHTTP'),
- (d = "ActiveXObject('Microsoft.XMLHTTP')")
- } catch (e) {}
- }
- var f = new Function('return new ' + d)
- return {
- request: function (a, d) {
- d && 'jsonp' == d.dataType ? c(a, d) : b(a, d)
- },
- getJSONP: function (a, b, d) {
- var e = { data: b, oncomplete: d }
- c(a, e)
- }
- }
- })())
- var filterWord = (UE.filterWord = (function () {
- function a(a) {
- return /(class="?Mso|style="[^"]*\bmso\-|w:WordDocument|<(v|o):|lang=)/gi.test(
- a
- )
- }
- function b(a) {
- return (a = a.replace(/[\d.]+\w+/g, function (a) {
- return utils.transUnitToPx(a)
- }))
- }
- function c(a) {
- return a
- .replace(/[\t\r\n]+/g, ' ')
- .replace(/<!--[\s\S]*?-->/gi, '')
- .replace(/<v:shape [^>]*>[\s\S]*?.<\/v:shape>/gi, function (a) {
- if (browser.opera) return ''
- try {
- if (/Bitmap/i.test(a)) return ''
- var c = a.match(/width:([ \d.]*p[tx])/i)[1],
- d = a.match(/height:([ \d.]*p[tx])/i)[1],
- e = a.match(/src=\s*"([^"]*)"/i)[1]
- return (
- '<img width="' +
- b(c) +
- '" height="' +
- b(d) +
- '" src="' +
- e +
- '" />'
- )
- } catch (f) {
- return ''
- }
- })
- .replace(/<\/?div[^>]*>/g, '')
- .replace(/v:\w+=(["']?)[^'"]+\1/g, '')
- .replace(
- /<(!|script[^>]*>.*?<\/script(?=[>\s])|\/?(\?xml(:\w+)?|xml|meta|link|style|\w+:\w+)(?=[\s\/>]))[^>]*>/gi,
- ''
- )
- .replace(
- /<p [^>]*class="?MsoHeading"?[^>]*>(.*?)<\/p>/gi,
- '<p><strong>$1</strong></p>'
- )
- .replace(
- /\s+(class|lang|align)\s*=\s*(['"]?)([\w-]+)\2/gi,
- function (a, b, c, d) {
- return 'class' == b && 'MsoListParagraph' == d ? a : ''
- }
- )
- .replace(/<(font|span)[^>]*>(\s*)<\/\1>/gi, function (a, b, c) {
- return c.replace(/[\t\r\n ]+/g, ' ')
- })
- .replace(
- /(<[a-z][^>]*)\sstyle=(["'])([^\2]*?)\2/gi,
- function (a, c, d, e) {
- for (
- var f,
- g = [],
- h = e
- .replace(/^\s+|\s+$/, '')
- .replace(/'/g, "'")
- .replace(/"/gi, "'")
- .replace(/[\d.]+(cm|pt)/g, function (a) {
- return utils.transUnitToPx(a)
- })
- .split(/;\s*/g),
- i = 0;
- (f = h[i]);
- i++
- ) {
- var j,
- k,
- l = f.split(':')
- if (2 == l.length) {
- if (
- ((j = l[0].toLowerCase()),
- (k = l[1].toLowerCase()),
- (/^(background)\w*/.test(j) &&
- 0 == k.replace(/(initial|\s)/g, '').length) ||
- (/^(margin)\w*/.test(j) && /^0\w+$/.test(k)))
- )
- continue
- switch (j) {
- case 'mso-padding-alt':
- case 'mso-padding-top-alt':
- case 'mso-padding-right-alt':
- case 'mso-padding-bottom-alt':
- case 'mso-padding-left-alt':
- case 'mso-margin-alt':
- case 'mso-margin-top-alt':
- case 'mso-margin-right-alt':
- case 'mso-margin-bottom-alt':
- case 'mso-margin-left-alt':
- case 'mso-height':
- case 'mso-width':
- case 'mso-vertical-align-alt':
- ;/<table/.test(c) ||
- (g[i] = j.replace(/^mso-|-alt$/g, '') + ':' + b(k))
- continue
- case 'horiz-align':
- g[i] = 'text-align:' + k
- continue
- case 'vert-align':
- g[i] = 'vertical-align:' + k
- continue
- case 'font-color':
- case 'mso-foreground':
- g[i] = 'color:' + k
- continue
- case 'mso-background':
- case 'mso-highlight':
- g[i] = 'background:' + k
- continue
- case 'mso-default-height':
- g[i] = 'min-height:' + b(k)
- continue
- case 'mso-default-width':
- g[i] = 'min-width:' + b(k)
- continue
- case 'mso-padding-between-alt':
- g[i] = 'border-collapse:separate;border-spacing:' + b(k)
- continue
- case 'text-line-through':
- ;('single' != k && 'double' != k) ||
- (g[i] = 'text-decoration:line-through')
- continue
- case 'mso-zero-height':
- 'yes' == k && (g[i] = 'display:none')
- continue
- case 'margin':
- if (!/[1-9]/.test(k)) continue
- }
- if (
- /^(mso|column|font-emph|lang|layout|line-break|list-image|nav|panose|punct|row|ruby|sep|size|src|tab-|table-border|text-(?:decor|trans)|top-bar|version|vnd|word-break)/.test(
- j
- ) ||
- (/text\-indent|padding|margin/.test(j) && /\-[\d.]+/.test(k))
- )
- continue
- g[i] = j + ':' + l[1]
- }
- }
- return (
- c +
- (g.length
- ? ' style="' + g.join(';').replace(/;{2,}/g, ';') + '"'
- : '')
- )
- }
- )
- }
- return function (b) {
- return a(b) ? c(b) : b
- }
- })())
- !(function () {
- function a(a, b, c) {
- return a.push(n), b + (c ? 1 : -1)
- }
- function b(a, b) {
- for (var c = 0; c < b; c++) a.push(m)
- }
- function c(g, h, i, j) {
- switch (g.type) {
- case 'root':
- for (var k, l = 0; (k = g.children[l++]); )
- i &&
- 'element' == k.type &&
- !dtd.$inlineWithA[k.tagName] &&
- l > 1 &&
- (a(h, j, !0), b(h, j)),
- c(k, h, i, j)
- break
- case 'text':
- d(g, h)
- break
- case 'element':
- e(g, h, i, j)
- break
- case 'comment':
- f(g, h, i)
- }
- return h
- }
- function d(a, b) {
- 'pre' == a.parentNode.tagName
- ? b.push(a.data)
- : b.push(
- l[a.parentNode.tagName]
- ? utils.html(a.data)
- : a.data.replace(/[ ]{2}/g, ' ')
- )
- }
- function e(d, e, f, g) {
- var h = ''
- if (d.attrs) {
- h = []
- var i = d.attrs
- for (var j in i)
- h.push(
- j +
- (void 0 !== i[j]
- ? '="' +
- (k[j]
- ? utils.html(i[j]).replace(/["]/g, function (a) {
- return '"'
- })
- : utils.unhtml(i[j])) +
- '"'
- : '')
- )
- h = h.join(' ')
- }
- if (
- (e.push(
- '<' +
- d.tagName +
- (h ? ' ' + h : '') +
- (dtd.$empty[d.tagName] ? '/' : '') +
- '>'
- ),
- f &&
- !dtd.$inlineWithA[d.tagName] &&
- 'pre' != d.tagName &&
- d.children &&
- d.children.length &&
- ((g = a(e, g, !0)), b(e, g)),
- d.children && d.children.length)
- )
- for (var l, m = 0; (l = d.children[m++]); )
- f &&
- 'element' == l.type &&
- !dtd.$inlineWithA[l.tagName] &&
- m > 1 &&
- (a(e, g), b(e, g)),
- c(l, e, f, g)
- dtd.$empty[d.tagName] ||
- (f &&
- !dtd.$inlineWithA[d.tagName] &&
- 'pre' != d.tagName &&
- d.children &&
- d.children.length &&
- ((g = a(e, g)), b(e, g)),
- e.push('</' + d.tagName + '>'))
- }
- function f(a, b) {
- b.push('<!--' + a.data + '-->')
- }
- function g(a, b) {
- var c
- if ('element' == a.type && a.getAttr('id') == b) return a
- if (a.children && a.children.length)
- for (var d, e = 0; (d = a.children[e++]); ) if ((c = g(d, b))) return c
- }
- function h(a, b, c) {
- if (
- ('element' == a.type && a.tagName == b && c.push(a),
- a.children && a.children.length)
- )
- for (var d, e = 0; (d = a.children[e++]); ) h(d, b, c)
- }
- function i(a, b) {
- if (a.children && a.children.length)
- for (var c, d = 0; (c = a.children[d]); )
- i(c, b),
- c.parentNode &&
- (c.children && c.children.length && b(c), c.parentNode && d++)
- else b(a)
- }
- var j = (UE.uNode = function (a) {
- ;(this.type = a.type),
- (this.data = a.data),
- (this.tagName = a.tagName),
- (this.parentNode = a.parentNode),
- (this.attrs = a.attrs || {}),
- (this.children = a.children)
- }),
- k = { href: 1, src: 1, _src: 1, _href: 1, cdata_data: 1 },
- l = { style: 1, script: 1 },
- m = ' ',
- n = '\n'
- ;(j.createElement = function (a) {
- return /[<>]/.test(a)
- ? UE.htmlparser(a).children[0]
- : new j({ type: 'element', children: [], tagName: a })
- }),
- (j.createText = function (a, b) {
- return new UE.uNode({
- type: 'text',
- data: b ? a : utils.unhtml(a || '')
- })
- }),
- (j.prototype = {
- toHtml: function (a) {
- var b = []
- return c(this, b, a, 0), b.join('')
- },
- innerHTML: function (a) {
- if ('element' != this.type || dtd.$empty[this.tagName]) return this
- if (utils.isString(a)) {
- if (this.children)
- for (var b, c = 0; (b = this.children[c++]); ) b.parentNode = null
- this.children = []
- for (var b, d = UE.htmlparser(a), c = 0; (b = d.children[c++]); )
- this.children.push(b), (b.parentNode = this)
- return this
- }
- var d = new UE.uNode({ type: 'root', children: this.children })
- return d.toHtml()
- },
- innerText: function (a, b) {
- if ('element' != this.type || dtd.$empty[this.tagName]) return this
- if (a) {
- if (this.children)
- for (var c, d = 0; (c = this.children[d++]); ) c.parentNode = null
- return (
- (this.children = []), this.appendChild(j.createText(a, b)), this
- )
- }
- return this.toHtml().replace(/<[^>]+>/g, '')
- },
- getData: function () {
- return 'element' == this.type ? '' : this.data
- },
- firstChild: function () {
- return this.children ? this.children[0] : null
- },
- lastChild: function () {
- return this.children ? this.children[this.children.length - 1] : null
- },
- previousSibling: function () {
- for (var a, b = this.parentNode, c = 0; (a = b.children[c]); c++)
- if (a === this) return 0 == c ? null : b.children[c - 1]
- },
- nextSibling: function () {
- for (var a, b = this.parentNode, c = 0; (a = b.children[c++]); )
- if (a === this) return b.children[c]
- },
- replaceChild: function (a, b) {
- if (this.children) {
- a.parentNode && a.parentNode.removeChild(a)
- for (var c, d = 0; (c = this.children[d]); d++)
- if (c === b)
- return (
- this.children.splice(d, 1, a),
- (b.parentNode = null),
- (a.parentNode = this),
- a
- )
- }
- },
- appendChild: function (a) {
- if (
- 'root' == this.type ||
- ('element' == this.type && !dtd.$empty[this.tagName])
- ) {
- this.children || (this.children = []),
- a.parentNode && a.parentNode.removeChild(a)
- for (var b, c = 0; (b = this.children[c]); c++)
- if (b === a) {
- this.children.splice(c, 1)
- break
- }
- return this.children.push(a), (a.parentNode = this), a
- }
- },
- insertBefore: function (a, b) {
- if (this.children) {
- a.parentNode && a.parentNode.removeChild(a)
- for (var c, d = 0; (c = this.children[d]); d++)
- if (c === b)
- return this.children.splice(d, 0, a), (a.parentNode = this), a
- }
- },
- insertAfter: function (a, b) {
- if (this.children) {
- a.parentNode && a.parentNode.removeChild(a)
- for (var c, d = 0; (c = this.children[d]); d++)
- if (c === b)
- return (
- this.children.splice(d + 1, 0, a), (a.parentNode = this), a
- )
- }
- },
- removeChild: function (a, b) {
- if (this.children)
- for (var c, d = 0; (c = this.children[d]); d++)
- if (c === a) {
- if (
- (this.children.splice(d, 1),
- (c.parentNode = null),
- b && c.children && c.children.length)
- )
- for (var e, f = 0; (e = c.children[f]); f++)
- this.children.splice(d + f, 0, e), (e.parentNode = this)
- return c
- }
- },
- getAttr: function (a) {
- return this.attrs && this.attrs[a.toLowerCase()]
- },
- setAttr: function (a, b) {
- if (!a) return void delete this.attrs
- if ((this.attrs || (this.attrs = {}), utils.isObject(a)))
- for (var c in a)
- a[c] ? (this.attrs[c.toLowerCase()] = a[c]) : delete this.attrs[c]
- else b ? (this.attrs[a.toLowerCase()] = b) : delete this.attrs[a]
- },
- getIndex: function () {
- for (var a, b = this.parentNode, c = 0; (a = b.children[c]); c++)
- if (a === this) return c
- return -1
- },
- getNodeById: function (a) {
- var b
- if (this.children && this.children.length)
- for (var c, d = 0; (c = this.children[d++]); )
- if ((b = g(c, a))) return b
- },
- getNodesByTagName: function (a) {
- a = utils
- .trim(a)
- .replace(/[ ]{2,}/g, ' ')
- .split(' ')
- var b = [],
- c = this
- return (
- utils.each(a, function (a) {
- if (c.children && c.children.length)
- for (var d, e = 0; (d = c.children[e++]); ) h(d, a, b)
- }),
- b
- )
- },
- getStyle: function (a) {
- var b = this.getAttr('style')
- if (!b) return ''
- var c = new RegExp('(^|;)\\s*' + a + ':([^;]+)', 'i'),
- d = b.match(c)
- return d && d[0] ? d[2] : ''
- },
- setStyle: function (a, b) {
- function c(a, b) {
- var c = new RegExp('(^|;)\\s*' + a + ':([^;]+;?)', 'gi')
- ;(d = d.replace(c, '$1')),
- b && (d = a + ':' + utils.unhtml(b) + ';' + d)
- }
- var d = this.getAttr('style')
- if ((d || (d = ''), utils.isObject(a))) for (var e in a) c(e, a[e])
- else c(a, b)
- this.setAttr('style', utils.trim(d))
- },
- traversal: function (a) {
- return this.children && this.children.length && i(this, a), this
- }
- })
- })()
- var htmlparser = (UE.htmlparser = function (a, b) {
- function c(a, b) {
- if (m[a.tagName]) {
- var c = k.createElement(m[a.tagName])
- a.appendChild(c), c.appendChild(k.createText(b)), (a = c)
- } else a.appendChild(k.createText(b))
- }
- function d(a, b, c) {
- var e
- if ((e = l[b])) {
- for (var f, h = a; 'root' != h.type; ) {
- if (
- utils.isArray(e)
- ? utils.indexOf(e, h.tagName) != -1
- : e == h.tagName
- ) {
- ;(a = h), (f = !0)
- break
- }
- h = h.parentNode
- }
- f || (a = d(a, utils.isArray(e) ? e[0] : e))
- }
- var i = new k({
- parentNode: a,
- type: 'element',
- tagName: b.toLowerCase(),
- children: dtd.$empty[b] ? null : []
- })
- if (c) {
- for (var m, n = {}; (m = g.exec(c)); )
- n[m[1].toLowerCase()] = j[m[1].toLowerCase()]
- ? m[2] || m[3] || m[4]
- : utils.unhtml(m[2] || m[3] || m[4])
- i.attrs = n
- }
- return a.children.push(i), dtd.$empty[b] ? a : i
- }
- function e(a, b) {
- a.children.push(new k({ type: 'comment', data: b, parentNode: a }))
- }
- var f =
- /<(?:(?:\/([^>]+)>)|(?:!--([\S|\s]*?)-->)|(?:([^\s\/<>]+)\s*((?:(?:"[^"]*")|(?:'[^']*')|[^"'<>])*)\/?>))/g,
- g =
- /([\w\-:.]+)(?:(?:\s*=\s*(?:(?:"([^"]*)")|(?:'([^']*)')|([^\s>]+)))|(?=\s|$))/g,
- h = {
- b: 1,
- code: 1,
- i: 1,
- u: 1,
- strike: 1,
- s: 1,
- tt: 1,
- strong: 1,
- q: 1,
- samp: 1,
- em: 1,
- span: 1,
- sub: 1,
- img: 1,
- sup: 1,
- font: 1,
- big: 1,
- small: 1,
- iframe: 1,
- a: 1,
- br: 1,
- pre: 1
- }
- ;(a = a.replace(new RegExp(domUtils.fillChar, 'g'), '')),
- b ||
- (a = a.replace(
- new RegExp(
- '[\\r\\t\\n' +
- (b ? '' : ' ') +
- ']*</?(\\w+)\\s*(?:[^>]*)>[\\r\\t\\n' +
- (b ? '' : ' ') +
- ']*',
- 'g'
- ),
- function (a, c) {
- return c && h[c.toLowerCase()]
- ? a.replace(/(^[\n\r]+)|([\n\r]+$)/g, '')
- : a
- .replace(new RegExp('^[\\r\\n' + (b ? '' : ' ') + ']+'), '')
- .replace(new RegExp('[\\r\\n' + (b ? '' : ' ') + ']+$'), '')
- }
- ))
- for (
- var i,
- j = { href: 1, src: 1 },
- k = UE.uNode,
- l = {
- td: 'tr',
- tr: ['tbody', 'thead', 'tfoot'],
- tbody: 'table',
- th: 'tr',
- thead: 'table',
- tfoot: 'table',
- caption: 'table',
- li: ['ul', 'ol'],
- dt: 'dl',
- dd: 'dl',
- option: 'select'
- },
- m = { ol: 'li', ul: 'li' },
- n = 0,
- o = 0,
- p = new k({ type: 'root', children: [] }),
- q = p;
- (i = f.exec(a));
- ) {
- n = i.index
- try {
- if ((n > o && c(q, a.slice(o, n)), i[3]))
- dtd.$cdata[q.tagName]
- ? c(q, i[0])
- : (q = d(q, i[3].toLowerCase(), i[4]))
- else if (i[1]) {
- if ('root' != q.type)
- if (dtd.$cdata[q.tagName] && !dtd.$cdata[i[1]]) c(q, i[0])
- else {
- for (
- var r = q;
- 'element' == q.type && q.tagName != i[1].toLowerCase();
- )
- if (((q = q.parentNode), 'root' == q.type))
- throw ((q = r), 'break')
- q = q.parentNode
- }
- } else i[2] && e(q, i[2])
- } catch (s) {}
- o = f.lastIndex
- }
- return o < a.length && c(q, a.slice(o)), p
- }),
- filterNode = (UE.filterNode = (function () {
- function a(b, c) {
- switch (b.type) {
- case 'text':
- break
- case 'element':
- var d
- if ((d = c[b.tagName]))
- if ('-' === d) b.parentNode.removeChild(b)
- else if (utils.isFunction(d)) {
- var e = b.parentNode,
- f = b.getIndex()
- if ((d(b), b.parentNode)) {
- if (b.children)
- for (var g, h = 0; (g = b.children[h]); )
- a(g, c), g.parentNode && h++
- } else
- for (var g, h = f; (g = e.children[h]); )
- a(g, c), g.parentNode && h++
- } else {
- var i = d.$
- if (i && b.attrs) {
- var j,
- k = {}
- for (var l in i) {
- if (
- ((j = b.getAttr(l)), 'style' == l && utils.isArray(i[l]))
- ) {
- var m = []
- utils.each(i[l], function (a) {
- var c
- ;(c = b.getStyle(a)) && m.push(a + ':' + c)
- }),
- (j = m.join(';'))
- }
- j && (k[l] = j)
- }
- b.attrs = k
- }
- if (b.children)
- for (var g, h = 0; (g = b.children[h]); )
- a(g, c), g.parentNode && h++
- }
- else if (dtd.$cdata[b.tagName]) b.parentNode.removeChild(b)
- else {
- var e = b.parentNode,
- f = b.getIndex()
- b.parentNode.removeChild(b, !0)
- for (var g, h = f; (g = e.children[h]); )
- a(g, c), g.parentNode && h++
- }
- break
- case 'comment':
- b.parentNode.removeChild(b)
- }
- }
- return function (b, c) {
- if (utils.isEmptyObject(c)) return b
- var d
- ;(d = c['-']) &&
- utils.each(d.split(' '), function (a) {
- c[a] = '-'
- })
- for (var e, f = 0; (e = b.children[f]); ) a(e, c), e.parentNode && f++
- return b
- }
- })())
- UE.plugin = (function () {
- var a = {}
- return {
- register: function (b, c, d, e) {
- d && utils.isFunction(d) && ((e = d), (d = null)),
- (a[b] = { optionName: d || b, execFn: c, afterDisabled: e })
- },
- load: function (b) {
- utils.each(a, function (a) {
- var c = a.execFn.call(b)
- b.options[a.optionName] !== !1
- ? c &&
- utils.each(c, function (a, c) {
- switch (c.toLowerCase()) {
- case 'shortcutkey':
- b.addshortcutkey(a)
- break
- case 'bindevents':
- utils.each(a, function (a, c) {
- b.addListener(c, a)
- })
- break
- case 'bindmultievents':
- utils.each(utils.isArray(a) ? a : [a], function (a) {
- var c = utils.trim(a.type).split(/\s+/)
- utils.each(c, function (c) {
- b.addListener(c, a.handler)
- })
- })
- break
- case 'commands':
- utils.each(a, function (a, c) {
- b.commands[c] = a
- })
- break
- case 'outputrule':
- b.addOutputRule(a)
- break
- case 'inputrule':
- b.addInputRule(a)
- break
- case 'defaultoptions':
- b.setOpt(a)
- }
- })
- : a.afterDisabled && a.afterDisabled.call(b)
- }),
- utils.each(UE.plugins, function (a) {
- a.call(b)
- })
- },
- run: function (b, c) {
- var d = a[b]
- d && d.exeFn.call(c)
- }
- }
- })()
- var keymap = (UE.keymap = {
- Backspace: 8,
- Tab: 9,
- Enter: 13,
- Shift: 16,
- Control: 17,
- Alt: 18,
- CapsLock: 20,
- Esc: 27,
- Spacebar: 32,
- PageUp: 33,
- PageDown: 34,
- End: 35,
- Home: 36,
- Left: 37,
- Up: 38,
- Right: 39,
- Down: 40,
- Insert: 45,
- Del: 46,
- NumLock: 144,
- Cmd: 91,
- '=': 187,
- '-': 189,
- b: 66,
- i: 73,
- z: 90,
- y: 89,
- v: 86,
- x: 88,
- s: 83,
- n: 78
- }),
- LocalStorage = (UE.LocalStorage = (function () {
- function a() {
- var a = document.createElement('div')
- return (
- (a.style.display = 'none'),
- a.addBehavior
- ? (a.addBehavior('#default#userdata'),
- {
- getItem: function (b) {
- var d = null
- try {
- document.body.appendChild(a),
- a.load(c),
- (d = a.getAttribute(b)),
- document.body.removeChild(a)
- } catch (e) {}
- return d
- },
- setItem: function (b, d) {
- document.body.appendChild(a),
- a.setAttribute(b, d),
- a.save(c),
- document.body.removeChild(a)
- },
- removeItem: function (b) {
- document.body.appendChild(a),
- a.removeAttribute(b),
- a.save(c),
- document.body.removeChild(a)
- }
- })
- : null
- )
- }
- var b = window.localStorage || a() || null,
- c = 'localStorage'
- return {
- saveLocalData: function (a, c) {
- return !(!b || !c) && (b.setItem(a, c), !0)
- },
- getLocalData: function (a) {
- return b ? b.getItem(a) : null
- },
- removeItem: function (a) {
- b && b.removeItem(a)
- }
- }
- })())
- !(function () {
- var a = 'ueditor_preference'
- ;(UE.Editor.prototype.setPreferences = function (b, c) {
- var d = {}
- utils.isString(b) ? (d[b] = c) : (d = b)
- var e = LocalStorage.getLocalData(a)
- e && (e = utils.str2json(e)) ? utils.extend(e, d) : (e = d),
- e && LocalStorage.saveLocalData(a, utils.json2str(e))
- }),
- (UE.Editor.prototype.getPreferences = function (b) {
- var c = LocalStorage.getLocalData(a)
- return c && (c = utils.str2json(c)) ? (b ? c[b] : c) : null
- }),
- (UE.Editor.prototype.removePreferences = function (b) {
- var c = LocalStorage.getLocalData(a)
- c && (c = utils.str2json(c)) && ((c[b] = void 0), delete c[b]),
- c && LocalStorage.saveLocalData(a, utils.json2str(c))
- })
- })(),
- (UE.plugins.defaultfilter = function () {
- var a = this
- a.setOpt({ allowDivTransToP: !0, disabledTableInTable: !0 }),
- a.addInputRule(function (b) {
- function c(a) {
- for (; a && 'element' == a.type; ) {
- if ('td' == a.tagName) return !0
- a = a.parentNode
- }
- return !1
- }
- var d,
- e = this.options.allowDivTransToP
- b.traversal(function (b) {
- if ('element' == b.type) {
- if (
- !dtd.$cdata[b.tagName] &&
- a.options.autoClearEmptyNode &&
- dtd.$inline[b.tagName] &&
- !dtd.$empty[b.tagName] &&
- (!b.attrs || utils.isEmptyObject(b.attrs))
- )
- return void (b.firstChild()
- ? 'span' != b.tagName ||
- (b.attrs && !utils.isEmptyObject(b.attrs)) ||
- b.parentNode.removeChild(b, !0)
- : b.parentNode.removeChild(b))
- switch (b.tagName) {
- case 'style':
- case 'script':
- b.setAttr({
- cdata_tag: b.tagName,
- cdata_data: b.innerHTML() || '',
- _ue_custom_node_: 'true'
- }),
- (b.tagName = 'div'),
- b.innerHTML('')
- break
- case 'a':
- ;(d = b.getAttr('href')) && b.setAttr('_href', d)
- break
- case 'img':
- if ((d = b.getAttr('src')) && /^data:/.test(d)) {
- b.parentNode.removeChild(b)
- break
- }
- b.setAttr('_src', b.getAttr('src'))
- break
- case 'span':
- browser.webkit &&
- (d = b.getStyle('white-space')) &&
- /nowrap|normal/.test(d) &&
- (b.setStyle('white-space', ''),
- a.options.autoClearEmptyNode &&
- utils.isEmptyObject(b.attrs) &&
- b.parentNode.removeChild(b, !0)),
- (d = b.getAttr('id')),
- d &&
- /^_baidu_bookmark_/i.test(d) &&
- b.parentNode.removeChild(b)
- break
- case 'p':
- ;(d = b.getAttr('align')) &&
- (b.setAttr('align'), b.setStyle('text-align', d)),
- utils.each(b.children, function (a) {
- if ('element' == a.type && 'p' == a.tagName) {
- var c = a.nextSibling()
- b.parentNode.insertAfter(a, b)
- for (var d = a; c; ) {
- var e = c.nextSibling()
- b.parentNode.insertAfter(c, d), (d = c), (c = e)
- }
- return !1
- }
- }),
- b.firstChild() ||
- b.innerHTML(browser.ie ? ' ' : '<br/>')
- break
- case 'div':
- if (b.getAttr('cdata_tag')) break
- if (
- ((d = b.getAttr('class')), d && /^line number\d+/.test(d))
- )
- break
- if (!e) break
- for (
- var f, g = UE.uNode.createElement('p');
- (f = b.firstChild());
- )
- 'text' != f.type && UE.dom.dtd.$block[f.tagName]
- ? g.firstChild()
- ? (b.parentNode.insertBefore(g, b),
- (g = UE.uNode.createElement('p')))
- : b.parentNode.insertBefore(f, b)
- : g.appendChild(f)
- g.firstChild() && b.parentNode.insertBefore(g, b),
- b.parentNode.removeChild(b)
- break
- case 'dl':
- b.tagName = 'ul'
- break
- case 'dt':
- case 'dd':
- b.tagName = 'li'
- break
- case 'li':
- var h = b.getAttr('class')
- ;(h && /list\-/.test(h)) || b.setAttr()
- var i = b.getNodesByTagName('ol ul')
- UE.utils.each(i, function (a) {
- b.parentNode.insertAfter(a, b)
- })
- break
- case 'td':
- case 'th':
- case 'caption':
- ;(b.children && b.children.length) ||
- b.appendChild(
- browser.ie11below
- ? UE.uNode.createText(' ')
- : UE.uNode.createElement('br')
- )
- break
- case 'table':
- a.options.disabledTableInTable &&
- c(b) &&
- (b.parentNode.insertBefore(
- UE.uNode.createText(b.innerText()),
- b
- ),
- b.parentNode.removeChild(b))
- }
- }
- })
- }),
- a.addOutputRule(function (b) {
- var c
- b.traversal(function (b) {
- if ('element' == b.type) {
- if (
- a.options.autoClearEmptyNode &&
- dtd.$inline[b.tagName] &&
- !dtd.$empty[b.tagName] &&
- (!b.attrs || utils.isEmptyObject(b.attrs))
- )
- return void (b.firstChild()
- ? 'span' != b.tagName ||
- (b.attrs && !utils.isEmptyObject(b.attrs)) ||
- b.parentNode.removeChild(b, !0)
- : b.parentNode.removeChild(b))
- switch (b.tagName) {
- case 'div':
- ;(c = b.getAttr('cdata_tag')) &&
- ((b.tagName = c),
- b.appendChild(UE.uNode.createText(b.getAttr('cdata_data'))),
- b.setAttr({
- cdata_tag: '',
- cdata_data: '',
- _ue_custom_node_: ''
- }))
- break
- case 'a':
- ;(c = b.getAttr('_href')) &&
- b.setAttr({ href: utils.html(c), _href: '' })
- break
- case 'span':
- ;(c = b.getAttr('id')),
- c &&
- /^_baidu_bookmark_/i.test(c) &&
- b.parentNode.removeChild(b)
- break
- case 'img':
- ;(c = b.getAttr('_src')) &&
- b.setAttr({ src: b.getAttr('_src'), _src: '' })
- }
- }
- })
- })
- }),
- (UE.commands.inserthtml = {
- execCommand: function (a, b, c) {
- var d,
- e,
- f = this
- if (b && f.fireEvent('beforeinserthtml', b) !== !0) {
- if (
- ((d = f.selection.getRange()),
- (e = d.document.createElement('div')),
- (e.style.display = 'inline'),
- !c)
- ) {
- var g = UE.htmlparser(b)
- f.options.filterRules && UE.filterNode(g, f.options.filterRules),
- f.filterInputRule(g),
- (b = g.toHtml())
- }
- if (((e.innerHTML = utils.trim(b)), !d.collapsed)) {
- var h = d.startContainer
- if (
- (domUtils.isFillChar(h) && d.setStartBefore(h),
- (h = d.endContainer),
- domUtils.isFillChar(h) && d.setEndAfter(h),
- d.txtToElmBoundary(),
- d.endContainer &&
- 1 == d.endContainer.nodeType &&
- ((h = d.endContainer.childNodes[d.endOffset]),
- h && domUtils.isBr(h) && d.setEndAfter(h)),
- 0 == d.startOffset &&
- ((h = d.startContainer),
- domUtils.isBoundaryNode(h, 'firstChild') &&
- ((h = d.endContainer),
- d.endOffset ==
- (3 == h.nodeType
- ? h.nodeValue.length
- : h.childNodes.length) &&
- domUtils.isBoundaryNode(h, 'lastChild') &&
- ((f.body.innerHTML =
- '<p>' + (browser.ie ? '' : '<br/>') + '</p>'),
- d.setStart(f.body.firstChild, 0).collapse(!0)))),
- !d.collapsed && d.deleteContents(),
- 1 == d.startContainer.nodeType)
- ) {
- var i,
- j = d.startContainer.childNodes[d.startOffset]
- if (
- j &&
- domUtils.isBlockElm(j) &&
- (i = j.previousSibling) &&
- domUtils.isBlockElm(i)
- ) {
- for (
- d.setEnd(i, i.childNodes.length).collapse();
- j.firstChild;
- )
- i.appendChild(j.firstChild)
- domUtils.remove(j)
- }
- }
- }
- var j,
- k,
- i,
- l,
- m,
- n = 0
- d.inFillChar() &&
- ((j = d.startContainer),
- domUtils.isFillChar(j)
- ? (d.setStartBefore(j).collapse(!0), domUtils.remove(j))
- : domUtils.isFillChar(j, !0) &&
- ((j.nodeValue = j.nodeValue.replace(fillCharReg, '')),
- d.startOffset--,
- d.collapsed && d.collapse(!0)))
- var o = domUtils.findParentByTagName(d.startContainer, 'li', !0)
- if (o) {
- for (var p, q; (j = e.firstChild); ) {
- for (
- ;
- j &&
- (3 == j.nodeType ||
- !domUtils.isBlockElm(j) ||
- 'HR' == j.tagName);
- )
- (p = j.nextSibling),
- d.insertNode(j).collapse(),
- (q = j),
- (j = p)
- if (j)
- if (/^(ol|ul)$/i.test(j.tagName)) {
- for (; j.firstChild; )
- (q = j.firstChild),
- domUtils.insertAfter(o, j.firstChild),
- (o = o.nextSibling)
- domUtils.remove(j)
- } else {
- var r
- ;(p = j.nextSibling),
- (r = f.document.createElement('li')),
- domUtils.insertAfter(o, r),
- r.appendChild(j),
- (q = j),
- (j = p),
- (o = r)
- }
- }
- ;(o = domUtils.findParentByTagName(d.startContainer, 'li', !0)),
- domUtils.isEmptyBlock(o) && domUtils.remove(o),
- q && d.setStartAfter(q).collapse(!0).select(!0)
- } else {
- for (; (j = e.firstChild); ) {
- if (n) {
- for (
- var s = f.document.createElement('p');
- j && (3 == j.nodeType || !dtd.$block[j.tagName]);
- )
- (m = j.nextSibling), s.appendChild(j), (j = m)
- s.firstChild && (j = s)
- }
- if (
- (d.insertNode(j),
- (m = j.nextSibling),
- !n &&
- j.nodeType == domUtils.NODE_ELEMENT &&
- domUtils.isBlockElm(j) &&
- ((k = domUtils.findParent(j, function (a) {
- return domUtils.isBlockElm(a)
- })),
- k &&
- 'body' != k.tagName.toLowerCase() &&
- (!dtd[k.tagName][j.nodeName] || j.parentNode !== k)))
- ) {
- if (dtd[k.tagName][j.nodeName])
- for (l = j.parentNode; l !== k; ) (i = l), (l = l.parentNode)
- else i = k
- domUtils.breakParent(j, i || l)
- var i = j.previousSibling
- domUtils.trimWhiteTextNode(i),
- i.childNodes.length || domUtils.remove(i),
- !browser.ie &&
- (p = j.nextSibling) &&
- domUtils.isBlockElm(p) &&
- p.lastChild &&
- !domUtils.isBr(p.lastChild) &&
- p.appendChild(f.document.createElement('br')),
- (n = 1)
- }
- var p = j.nextSibling
- if (!e.firstChild && p && domUtils.isBlockElm(p)) {
- d.setStart(p, 0).collapse(!0)
- break
- }
- d.setEndAfter(j).collapse()
- }
- if (
- ((j = d.startContainer),
- m && domUtils.isBr(m) && domUtils.remove(m),
- domUtils.isBlockElm(j) && domUtils.isEmptyNode(j))
- )
- if ((m = j.nextSibling))
- domUtils.remove(j),
- 1 == m.nodeType &&
- dtd.$block[m.tagName] &&
- d.setStart(m, 0).collapse(!0).shrinkBoundary()
- else
- try {
- j.innerHTML = browser.ie ? domUtils.fillChar : '<br/>'
- } catch (t) {
- d.setStartBefore(j), domUtils.remove(j)
- }
- try {
- d.select(!0)
- } catch (t) {}
- }
- setTimeout(function () {
- ;(d = f.selection.getRange()),
- d.scrollToView(
- f.autoHeightEnabled,
- f.autoHeightEnabled ? domUtils.getXY(f.iframe).y : 0
- ),
- f.fireEvent('afterinserthtml', b)
- }, 200)
- }
- }
- }),
- (UE.plugins.autotypeset = function () {
- function a(a, b) {
- return a && 3 != a.nodeType
- ? domUtils.isBr(a)
- ? 1
- : a && a.parentNode && l[a.tagName.toLowerCase()]
- ? (g && g.contains(a)) || a.getAttribute('pagebreak')
- ? 0
- : b
- ? !domUtils.isEmptyBlock(a)
- : domUtils.isEmptyBlock(
- a,
- new RegExp('[\\s' + domUtils.fillChar + ']', 'g')
- )
- : void 0
- : 0
- }
- function b(a) {
- a.style.cssText ||
- (domUtils.removeAttributes(a, ['style']),
- 'span' == a.tagName.toLowerCase() &&
- domUtils.hasNoAttributes(a) &&
- domUtils.remove(a, !0))
- }
- function c(c, f) {
- var h,
- l = this
- if (f) {
- if (!i.pasteFilter) return
- ;(h = l.document.createElement('div')), (h.innerHTML = f.html)
- } else h = l.document.body
- for (
- var m, n = domUtils.getElementsByTagName(h, '*'), o = 0;
- (m = n[o++]);
- )
- if (l.fireEvent('excludeNodeinautotype', m) !== !0) {
- if (
- (i.clearFontSize &&
- m.style.fontSize &&
- (domUtils.removeStyle(m, 'font-size'), b(m)),
- i.clearFontFamily &&
- m.style.fontFamily &&
- (domUtils.removeStyle(m, 'font-family'), b(m)),
- a(m))
- ) {
- if (i.mergeEmptyline)
- for (
- var p, q = m.nextSibling, r = domUtils.isBr(m);
- a(q) &&
- ((p = q),
- (q = p.nextSibling),
- !r || (q && (!q || domUtils.isBr(q))));
- )
- domUtils.remove(p)
- if (
- i.removeEmptyline &&
- domUtils.inDoc(m, h) &&
- !k[m.parentNode.tagName.toLowerCase()]
- ) {
- if (
- domUtils.isBr(m) &&
- ((q = m.nextSibling), q && !domUtils.isBr(q))
- )
- continue
- domUtils.remove(m)
- continue
- }
- }
- if (
- (a(m, !0) &&
- 'SPAN' != m.tagName &&
- (i.indent && (m.style.textIndent = i.indentValue),
- i.textAlign && (m.style.textAlign = i.textAlign)),
- i.removeClass && m.className && !j[m.className.toLowerCase()])
- ) {
- if (g && g.contains(m)) continue
- domUtils.removeAttributes(m, ['class'])
- }
- if (
- i.imageBlockLine &&
- 'img' == m.tagName.toLowerCase() &&
- !m.getAttribute('emotion')
- )
- if (f) {
- var s = m
- switch (i.imageBlockLine) {
- case 'left':
- case 'right':
- case 'none':
- for (
- var p, t, q, u = s.parentNode;
- dtd.$inline[u.tagName] || 'A' == u.tagName;
- )
- u = u.parentNode
- if (
- ((p = u),
- 'P' == p.tagName &&
- 'center' == domUtils.getStyle(p, 'text-align') &&
- !domUtils.isBody(p) &&
- 1 ==
- domUtils.getChildCount(p, function (a) {
- return (
- !domUtils.isBr(a) && !domUtils.isWhitespace(a)
- )
- }))
- )
- if (
- ((t = p.previousSibling),
- (q = p.nextSibling),
- t &&
- q &&
- 1 == t.nodeType &&
- 1 == q.nodeType &&
- t.tagName == q.tagName &&
- domUtils.isBlockElm(t))
- ) {
- for (t.appendChild(p.firstChild); q.firstChild; )
- t.appendChild(q.firstChild)
- domUtils.remove(p), domUtils.remove(q)
- } else domUtils.setStyle(p, 'text-align', '')
- domUtils.setStyle(s, 'float', i.imageBlockLine)
- break
- case 'center':
- if ('center' != l.queryCommandValue('imagefloat')) {
- for (
- u = s.parentNode,
- domUtils.setStyle(s, 'float', 'none'),
- p = s;
- u &&
- 1 ==
- domUtils.getChildCount(u, function (a) {
- return (
- !domUtils.isBr(a) && !domUtils.isWhitespace(a)
- )
- }) &&
- (dtd.$inline[u.tagName] || 'A' == u.tagName);
- )
- (p = u), (u = u.parentNode)
- var v = l.document.createElement('p')
- domUtils.setAttributes(v, { style: 'text-align:center' }),
- p.parentNode.insertBefore(v, p),
- v.appendChild(p),
- domUtils.setStyle(p, 'float', '')
- }
- }
- } else {
- var w = l.selection.getRange()
- w.selectNode(m).select(),
- l.execCommand('imagefloat', i.imageBlockLine)
- }
- i.removeEmptyNode &&
- i.removeTagNames[m.tagName.toLowerCase()] &&
- domUtils.hasNoAttributes(m) &&
- domUtils.isEmptyBlock(m) &&
- domUtils.remove(m)
- }
- if (i.tobdc) {
- var x = UE.htmlparser(h.innerHTML)
- x.traversal(function (a) {
- 'text' == a.type && (a.data = e(a.data))
- }),
- (h.innerHTML = x.toHtml())
- }
- if (i.bdc2sb) {
- var x = UE.htmlparser(h.innerHTML)
- x.traversal(function (a) {
- 'text' == a.type && (a.data = d(a.data))
- }),
- (h.innerHTML = x.toHtml())
- }
- f && (f.html = h.innerHTML)
- }
- function d(a) {
- for (var b = '', c = 0; c < a.length; c++) {
- var d = a.charCodeAt(c)
- b +=
- d >= 65281 && d <= 65373
- ? String.fromCharCode(a.charCodeAt(c) - 65248)
- : 12288 == d
- ? String.fromCharCode(a.charCodeAt(c) - 12288 + 32)
- : a.charAt(c)
- }
- return b
- }
- function e(a) {
- a = utils.html(a)
- for (var b = '', c = 0; c < a.length; c++)
- b +=
- 32 == a.charCodeAt(c)
- ? String.fromCharCode(12288)
- : a.charCodeAt(c) < 127
- ? String.fromCharCode(a.charCodeAt(c) + 65248)
- : a.charAt(c)
- return b
- }
- function f() {
- var a = h.getPreferences('autotypeset')
- utils.extend(h.options.autotypeset, a)
- }
- this.setOpt({
- autotypeset: {
- mergeEmptyline: !0,
- removeClass: !0,
- removeEmptyline: !1,
- textAlign: 'left',
- imageBlockLine: 'center',
- pasteFilter: !1,
- clearFontSize: !1,
- clearFontFamily: !1,
- removeEmptyNode: !1,
- removeTagNames: utils.extend({ div: 1 }, dtd.$removeEmpty),
- indent: !1,
- indentValue: '2em',
- bdc2sb: !1,
- tobdc: !1
- }
- })
- var g,
- h = this,
- i = h.options.autotypeset,
- j = { selectTdClass: 1, pagebreak: 1, anchorclass: 1 },
- k = { li: 1 },
- l = {
- div: 1,
- p: 1,
- blockquote: 1,
- center: 1,
- h1: 1,
- h2: 1,
- h3: 1,
- h4: 1,
- h5: 1,
- h6: 1,
- span: 1
- }
- i &&
- (f(),
- i.pasteFilter && h.addListener('beforepaste', c),
- (h.commands.autotypeset = {
- execCommand: function () {
- h.removeListener('beforepaste', c),
- i.pasteFilter && h.addListener('beforepaste', c),
- c.call(h)
- }
- }))
- }),
- UE.plugin.register('autosubmit', function () {
- return {
- shortcutkey: { autosubmit: 'ctrl+13' },
- commands: {
- autosubmit: {
- execCommand: function () {
- var a = this,
- b = domUtils.findParentByTagName(a.iframe, 'form', !1)
- if (b) {
- if (a.fireEvent('beforesubmit') === !1) return
- a.sync(), b.submit()
- }
- }
- }
- }
- }
- }),
- UE.plugin.register('background', function () {
- function a(a) {
- var b = {},
- c = a.split(';')
- return (
- utils.each(c, function (a) {
- var c = a.indexOf(':'),
- d = utils.trim(a.substr(0, c)).toLowerCase()
- d && (b[d] = utils.trim(a.substr(c + 1) || ''))
- }),
- b
- )
- }
- function b(a) {
- if (a) {
- var b = []
- for (var c in a) a.hasOwnProperty(c) && b.push(c + ':' + a[c] + '; ')
- utils.cssRule(
- e,
- b.length ? 'body{' + b.join('') + '}' : '',
- d.document
- )
- } else utils.cssRule(e, '', d.document)
- }
- var c,
- d = this,
- e = 'editor_background',
- f = new RegExp('body[\\s]*\\{(.+)\\}', 'i'),
- g = d.hasContents
- return (
- (d.hasContents = function () {
- return !!d.queryCommandValue('background') || g.apply(d, arguments)
- }),
- {
- bindEvents: {
- getAllHtml: function (a, b) {
- var c = this.body,
- e = domUtils.getComputedStyle(c, 'background-image'),
- f = ''
- f =
- e.indexOf(d.options.imagePath) > 0
- ? e
- .substring(e.indexOf(d.options.imagePath), e.length - 1)
- .replace(/"|\(|\)/gi, '')
- : 'none' != e
- ? e.replace(/url\("?|"?\)/gi, '')
- : ''
- var g = '<style type="text/css">body{',
- h = {
- 'background-color':
- domUtils.getComputedStyle(c, 'background-color') ||
- '#ffffff',
- 'background-image': f ? 'url(' + f + ')' : '',
- 'background-repeat':
- domUtils.getComputedStyle(c, 'background-repeat') || '',
- 'background-position': browser.ie
- ? domUtils.getComputedStyle(c, 'background-position-x') +
- ' ' +
- domUtils.getComputedStyle(c, 'background-position-y')
- : domUtils.getComputedStyle(c, 'background-position'),
- height: domUtils.getComputedStyle(c, 'height')
- }
- for (var i in h)
- h.hasOwnProperty(i) && (g += i + ':' + h[i] + '; ')
- ;(g += '}</style> '), b.push(g)
- },
- aftersetcontent: function () {
- 0 == c && b()
- }
- },
- inputRule: function (d) {
- ;(c = !1),
- utils.each(d.getNodesByTagName('p'), function (d) {
- var e = d.getAttr('data-background')
- e && ((c = !0), b(a(e)), d.parentNode.removeChild(d))
- })
- },
- outputRule: function (a) {
- var b = this,
- c = (utils.cssRule(e, b.document) || '')
- .replace(/[\n\r]+/g, '')
- .match(f)
- c &&
- a.appendChild(
- UE.uNode.createElement(
- '<p style="display:none;" data-background="' +
- utils.trim(c[1].replace(/"/g, '').replace(/[\s]+/g, ' ')) +
- '"><br/></p>'
- )
- )
- },
- commands: {
- background: {
- execCommand: function (a, c) {
- b(c)
- },
- queryCommandValue: function () {
- var b = this,
- c = (utils.cssRule(e, b.document) || '')
- .replace(/[\n\r]+/g, '')
- .match(f)
- return c ? a(c[1]) : null
- },
- notNeedUndo: !0
- }
- }
- }
- )
- }),
- (UE.commands.imagefloat = {
- execCommand: function (a, b) {
- var c = this,
- d = c.selection.getRange()
- if (!d.collapsed) {
- var e = d.getClosedNode()
- if (e && 'IMG' == e.tagName)
- switch (b) {
- case 'left':
- case 'right':
- case 'none':
- for (
- var f, g, h, i = e.parentNode;
- dtd.$inline[i.tagName] || 'A' == i.tagName;
- )
- i = i.parentNode
- if (
- ((f = i),
- 'P' == f.tagName &&
- 'center' == domUtils.getStyle(f, 'text-align'))
- ) {
- if (
- !domUtils.isBody(f) &&
- 1 ==
- domUtils.getChildCount(f, function (a) {
- return !domUtils.isBr(a) && !domUtils.isWhitespace(a)
- })
- )
- if (
- ((g = f.previousSibling),
- (h = f.nextSibling),
- g &&
- h &&
- 1 == g.nodeType &&
- 1 == h.nodeType &&
- g.tagName == h.tagName &&
- domUtils.isBlockElm(g))
- ) {
- for (g.appendChild(f.firstChild); h.firstChild; )
- g.appendChild(h.firstChild)
- domUtils.remove(f), domUtils.remove(h)
- } else domUtils.setStyle(f, 'text-align', '')
- d.selectNode(e).select()
- }
- domUtils.setStyle(e, 'float', 'none' == b ? '' : b),
- 'none' == b && domUtils.removeAttributes(e, 'align')
- break
- case 'center':
- if ('center' != c.queryCommandValue('imagefloat')) {
- for (
- i = e.parentNode,
- domUtils.setStyle(e, 'float', ''),
- domUtils.removeAttributes(e, 'align'),
- f = e;
- i &&
- 1 ==
- domUtils.getChildCount(i, function (a) {
- return !domUtils.isBr(a) && !domUtils.isWhitespace(a)
- }) &&
- (dtd.$inline[i.tagName] || 'A' == i.tagName);
- )
- (f = i), (i = i.parentNode)
- d.setStartBefore(f).setCursor(!1),
- (i = c.document.createElement('div')),
- i.appendChild(f),
- domUtils.setStyle(f, 'float', ''),
- c.execCommand(
- 'insertHtml',
- '<p id="_img_parent_tmp" style="text-align:center">' +
- i.innerHTML +
- '</p>'
- ),
- (f = c.document.getElementById('_img_parent_tmp')),
- f.removeAttribute('id'),
- (f = f.firstChild),
- d.selectNode(f).select(),
- (h = f.parentNode.nextSibling),
- h && domUtils.isEmptyNode(h) && domUtils.remove(h)
- }
- }
- }
- },
- queryCommandValue: function () {
- var a,
- b,
- c = this.selection.getRange()
- return c.collapsed
- ? 'none'
- : ((a = c.getClosedNode()),
- a && 1 == a.nodeType && 'IMG' == a.tagName
- ? ((b =
- domUtils.getComputedStyle(a, 'float') ||
- a.getAttribute('align')),
- 'none' == b &&
- (b =
- 'center' ==
- domUtils.getComputedStyle(a.parentNode, 'text-align')
- ? 'center'
- : b),
- { left: 1, right: 1, center: 1 }[b] ? b : 'none')
- : 'none')
- },
- queryCommandState: function () {
- var a,
- b = this.selection.getRange()
- return b.collapsed
- ? -1
- : ((a = b.getClosedNode()),
- a && 1 == a.nodeType && 'IMG' == a.tagName ? 0 : -1)
- }
- }),
- (UE.commands.insertimage = {
- execCommand: function (a, b) {
- function c(a) {
- utils.each(
- 'width,height,border,hspace,vspace'.split(','),
- function (b) {
- a[b] && (a[b] = parseInt(a[b], 10) || 0)
- }
- ),
- utils.each('src,_src'.split(','), function (b) {
- a[b] && (a[b] = utils.unhtmlForUrl(a[b]))
- }),
- utils.each('title,alt'.split(','), function (b) {
- a[b] && (a[b] = utils.unhtml(a[b]))
- })
- }
- if (((b = utils.isArray(b) ? b : [b]), b.length)) {
- var d = this,
- e = d.selection.getRange(),
- f = e.getClosedNode()
- if (d.fireEvent('beforeinsertimage', b) !== !0) {
- if (
- !f ||
- !/img/i.test(f.tagName) ||
- ('edui-faked-video' == f.className &&
- f.className.indexOf('edui-upload-video') == -1) ||
- f.getAttribute('word_img')
- ) {
- var g,
- h = [],
- i = ''
- if (((g = b[0]), 1 == b.length))
- c(g),
- (i =
- '<img src="' +
- g.src +
- '" ' +
- (g._src ? ' _src="' + g._src + '" ' : '') +
- (g.width ? 'width="' + g.width + '" ' : '') +
- (g.height ? ' height="' + g.height + '" ' : '') +
- ('left' == g.floatStyle || 'right' == g.floatStyle
- ? ' style="float:' + g.floatStyle + ';"'
- : '') +
- (g.title && '' != g.title
- ? ' title="' + g.title + '"'
- : '') +
- (g.border && '0' != g.border
- ? ' border="' + g.border + '"'
- : '') +
- (g.alt && '' != g.alt ? ' alt="' + g.alt + '"' : '') +
- (g.hspace && '0' != g.hspace
- ? ' hspace = "' + g.hspace + '"'
- : '') +
- (g.vspace && '0' != g.vspace
- ? ' vspace = "' + g.vspace + '"'
- : '') +
- '/>'),
- 'center' == g.floatStyle &&
- (i = '<p style="text-align: center">' + i + '</p>'),
- h.push(i)
- else
- for (var j = 0; (g = b[j++]); )
- c(g),
- (i =
- '<p ' +
- ('center' == g.floatStyle
- ? 'style="text-align: center" '
- : '') +
- '><img src="' +
- g.src +
- '" ' +
- (g.width ? 'width="' + g.width + '" ' : '') +
- (g._src ? ' _src="' + g._src + '" ' : '') +
- (g.height ? ' height="' + g.height + '" ' : '') +
- ' style="' +
- (g.floatStyle && 'center' != g.floatStyle
- ? 'float:' + g.floatStyle + ';'
- : '') +
- (g.border || '') +
- '" ' +
- (g.title ? ' title="' + g.title + '"' : '') +
- ' /></p>'),
- h.push(i)
- d.execCommand('insertHtml', h.join(''))
- } else {
- var k = b.shift(),
- l = k.floatStyle
- delete k.floatStyle,
- domUtils.setAttributes(f, k),
- d.execCommand('imagefloat', l),
- b.length > 0 &&
- (e.setStartAfter(f).setCursor(!1, !0),
- d.execCommand('insertimage', b))
- }
- d.fireEvent('afterinsertimage', b)
- }
- }
- }
- }),
- (UE.plugins.justify = function () {
- var a = domUtils.isBlockElm,
- b = { left: 1, right: 1, center: 1, justify: 1 },
- c = function (b, c) {
- var d = b.createBookmark(),
- e = function (a) {
- return 1 == a.nodeType
- ? 'br' != a.tagName.toLowerCase() && !domUtils.isBookmarkNode(a)
- : !domUtils.isWhitespace(a)
- }
- b.enlarge(!0)
- for (
- var f,
- g = b.createBookmark(),
- h = domUtils.getNextDomNode(g.start, !1, e),
- i = b.cloneRange();
- h &&
- !(domUtils.getPosition(h, g.end) & domUtils.POSITION_FOLLOWING);
- )
- if (3 != h.nodeType && a(h)) h = domUtils.getNextDomNode(h, !0, e)
- else {
- for (i.setStartBefore(h); h && h !== g.end && !a(h); )
- (f = h),
- (h = domUtils.getNextDomNode(h, !1, null, function (b) {
- return !a(b)
- }))
- i.setEndAfter(f)
- var j = i.getCommonAncestor()
- if (!domUtils.isBody(j) && a(j))
- domUtils.setStyles(
- j,
- utils.isString(c) ? { 'text-align': c } : c
- ),
- (h = j)
- else {
- var k = b.document.createElement('p')
- domUtils.setStyles(
- k,
- utils.isString(c) ? { 'text-align': c } : c
- )
- var l = i.extractContents()
- k.appendChild(l), i.insertNode(k), (h = k)
- }
- h = domUtils.getNextDomNode(h, !1, e)
- }
- return b.moveToBookmark(g).moveToBookmark(d)
- }
- UE.commands.justify = {
- execCommand: function (a, b) {
- var d,
- e = this.selection.getRange()
- return (
- e.collapsed &&
- ((d = this.document.createTextNode('p')), e.insertNode(d)),
- c(e, b),
- d && (e.setStartBefore(d).collapse(!0), domUtils.remove(d)),
- e.select(),
- !0
- )
- },
- queryCommandValue: function () {
- var a = this.selection.getStart(),
- c = domUtils.getComputedStyle(a, 'text-align')
- return b[c] ? c : 'left'
- },
- queryCommandState: function () {
- var a = this.selection.getStart(),
- b =
- a && domUtils.findParentByTagName(a, ['td', 'th', 'caption'], !0)
- return b ? -1 : 0
- }
- }
- }),
- (UE.plugins.font = function () {
- function a(a) {
- for (
- var b;
- (b = a.parentNode) &&
- 'SPAN' == b.tagName &&
- 1 ==
- domUtils.getChildCount(b, function (a) {
- return !domUtils.isBookmarkNode(a) && !domUtils.isBr(a)
- });
- )
- (b.style.cssText += a.style.cssText), domUtils.remove(a, !0), (a = b)
- }
- function b(a, b, c) {
- if (
- g[b] &&
- (a.adjustmentBoundary(),
- !a.collapsed && 1 == a.startContainer.nodeType)
- ) {
- var d = a.startContainer.childNodes[a.startOffset]
- if (d && domUtils.isTagNode(d, 'span')) {
- var e = a.createBookmark()
- utils.each(domUtils.getElementsByTagName(d, 'span'), function (a) {
- a.parentNode &&
- !domUtils.isBookmarkNode(a) &&
- (('backcolor' == b &&
- domUtils
- .getComputedStyle(a, 'background-color')
- .toLowerCase() === c) ||
- (domUtils.removeStyle(a, g[b]),
- 0 == a.style.cssText.replace(/^\s+$/, '').length &&
- domUtils.remove(a, !0)))
- }),
- a.moveToBookmark(e)
- }
- }
- }
- function c(c, d, e) {
- var f,
- g = c.collapsed,
- h = c.createBookmark()
- if (g)
- for (f = h.start.parentNode; dtd.$inline[f.tagName]; )
- f = f.parentNode
- else f = domUtils.getCommonAncestor(h.start, h.end)
- utils.each(domUtils.getElementsByTagName(f, 'span'), function (b) {
- if (b.parentNode && !domUtils.isBookmarkNode(b)) {
- if (/\s*border\s*:\s*none;?\s*/i.test(b.style.cssText))
- return void (/^\s*border\s*:\s*none;?\s*$/.test(b.style.cssText)
- ? domUtils.remove(b, !0)
- : domUtils.removeStyle(b, 'border'))
- if (
- (/border/i.test(b.style.cssText) &&
- 'SPAN' == b.parentNode.tagName &&
- /border/i.test(b.parentNode.style.cssText) &&
- (b.style.cssText = b.style.cssText.replace(
- /border[^:]*:[^;]+;?/gi,
- ''
- )),
- 'fontborder' != d || 'none' != e)
- )
- for (
- var c = b.nextSibling;
- c && 1 == c.nodeType && 'SPAN' == c.tagName;
- )
- if (domUtils.isBookmarkNode(c) && 'fontborder' == d)
- b.appendChild(c), (c = b.nextSibling)
- else {
- if (
- (c.style.cssText == b.style.cssText &&
- (domUtils.moveChild(c, b), domUtils.remove(c)),
- b.nextSibling === c)
- )
- break
- c = b.nextSibling
- }
- if ((a(b), browser.ie && browser.version > 8)) {
- var f = domUtils.findParent(b, function (a) {
- return (
- 'SPAN' == a.tagName &&
- /background-color/.test(a.style.cssText)
- )
- })
- f &&
- !/background-color/.test(b.style.cssText) &&
- (b.style.backgroundColor = f.style.backgroundColor)
- }
- }
- }),
- c.moveToBookmark(h),
- b(c, d, e)
- }
- var d = this,
- e = {
- forecolor: 'color',
- backcolor: 'background-color',
- fontsize: 'font-size',
- fontfamily: 'font-family',
- underline: 'text-decoration',
- strikethrough: 'text-decoration',
- fontborder: 'border'
- },
- f = { underline: 1, strikethrough: 1, fontborder: 1 },
- g = {
- forecolor: 'color',
- backcolor: 'background-color',
- fontsize: 'font-size',
- fontfamily: 'font-family'
- }
- d.setOpt({
- fontfamily: [
- { name: 'songti', val: '宋体,SimSun' },
- { name: 'yahei', val: '微软雅黑,Microsoft YaHei' },
- { name: 'kaiti', val: '楷体,楷体_GB2312, SimKai' },
- { name: 'heiti', val: '黑体, SimHei' },
- { name: 'lishu', val: '隶书, SimLi' },
- { name: 'andaleMono', val: 'andale mono' },
- { name: 'arial', val: 'arial, helvetica,sans-serif' },
- { name: 'arialBlack', val: 'arial black,avant garde' },
- { name: 'comicSansMs', val: 'comic sans ms' },
- { name: 'impact', val: 'impact,chicago' },
- { name: 'timesNewRoman', val: 'times new roman' }
- ],
- fontsize: [10, 11, 12, 14, 16, 18, 20, 24, 36]
- }),
- d.addInputRule(function (a) {
- utils.each(a.getNodesByTagName('u s del font strike'), function (a) {
- if ('font' == a.tagName) {
- var b = []
- for (var c in a.attrs)
- switch (c) {
- case 'size':
- b.push(
- 'font-size:' +
- ({
- 1: '10',
- 2: '12',
- 3: '16',
- 4: '18',
- 5: '24',
- 6: '32',
- 7: '48'
- }[a.attrs[c]] || a.attrs[c]) +
- 'px'
- )
- break
- case 'color':
- b.push('color:' + a.attrs[c])
- break
- case 'face':
- b.push('font-family:' + a.attrs[c])
- break
- case 'style':
- b.push(a.attrs[c])
- }
- a.attrs = { style: b.join(';') }
- } else {
- var d = 'u' == a.tagName ? 'underline' : 'line-through'
- a.attrs = {
- style: (a.getAttr('style') || '') + 'text-decoration:' + d + ';'
- }
- }
- a.tagName = 'span'
- })
- })
- for (var h in e)
- !(function (a, b) {
- UE.commands[a] = {
- execCommand: function (d, e) {
- e =
- e ||
- (this.queryCommandState(d)
- ? 'none'
- : 'underline' == d
- ? 'underline'
- : 'fontborder' == d
- ? '1px solid #000'
- : 'line-through')
- var g,
- h = this,
- i = this.selection.getRange()
- if ('default' == e)
- i.collapsed &&
- ((g = h.document.createTextNode('font')),
- i.insertNode(g).select()),
- h.execCommand('removeFormat', 'span,a', b),
- g && (i.setStartBefore(g).collapse(!0), domUtils.remove(g)),
- c(i, d, e),
- i.select()
- else if (i.collapsed) {
- var j = domUtils.findParentByTagName(
- i.startContainer,
- 'span',
- !0
- )
- if (
- ((g = h.document.createTextNode('font')),
- !j ||
- j.children.length ||
- j[browser.ie ? 'innerText' : 'textContent'].replace(
- fillCharReg,
- ''
- ).length)
- ) {
- if (
- (i.insertNode(g),
- i.selectNode(g).select(),
- (j = i.document.createElement('span')),
- f[a])
- ) {
- if (domUtils.findParentByTagName(g, 'a', !0))
- return (
- i.setStartBefore(g).setCursor(), void domUtils.remove(g)
- )
- h.execCommand('removeFormat', 'span,a', b)
- }
- if (
- ((j.style.cssText = b + ':' + e),
- g.parentNode.insertBefore(j, g),
- !browser.ie || (browser.ie && 9 == browser.version))
- )
- for (var k = j.parentNode; !domUtils.isBlockElm(k); )
- 'SPAN' == k.tagName &&
- (j.style.cssText =
- k.style.cssText + ';' + j.style.cssText),
- (k = k.parentNode)
- opera
- ? setTimeout(function () {
- i.setStart(j, 0).collapse(!0), c(i, d, e), i.select()
- })
- : (i.setStart(j, 0).collapse(!0), c(i, d, e), i.select())
- } else
- i.insertNode(g),
- f[a] &&
- (i.selectNode(g).select(),
- h.execCommand('removeFormat', 'span,a', b, null),
- (j = domUtils.findParentByTagName(g, 'span', !0)),
- i.setStartBefore(g)),
- j && (j.style.cssText += ';' + b + ':' + e),
- i.collapse(!0).select()
- domUtils.remove(g)
- } else
- f[a] &&
- h.queryCommandValue(a) &&
- h.execCommand('removeFormat', 'span,a', b),
- (i = h.selection.getRange()),
- i.applyInlineStyle('span', { style: b + ':' + e }),
- c(i, d, e),
- i.select()
- return !0
- },
- queryCommandValue: function (a) {
- var c = this.selection.getStart()
- if ('underline' == a || 'strikethrough' == a) {
- for (
- var d, e = c;
- e && !domUtils.isBlockElm(e) && !domUtils.isBody(e);
- ) {
- if (
- 1 == e.nodeType &&
- ((d = domUtils.getComputedStyle(e, b)), 'none' != d)
- )
- return d
- e = e.parentNode
- }
- return 'none'
- }
- if ('fontborder' == a) {
- for (var f, g = c; g && dtd.$inline[g.tagName]; ) {
- if (
- (f = domUtils.getComputedStyle(g, 'border')) &&
- /1px/.test(f) &&
- /solid/.test(f)
- )
- return f
- g = g.parentNode
- }
- return ''
- }
- if ('FontSize' == a) {
- var h = domUtils.getComputedStyle(c, b),
- g = /^([\d\.]+)(\w+)$/.exec(h)
- return g ? Math.floor(g[1]) + g[2] : h
- }
- return domUtils.getComputedStyle(c, b)
- },
- queryCommandState: function (a) {
- if (!f[a]) return 0
- var b = this.queryCommandValue(a)
- return 'fontborder' == a
- ? /1px/.test(b) && /solid/.test(b)
- : 'underline' == a
- ? /underline/.test(b)
- : /line\-through/.test(b)
- }
- }
- })(h, e[h])
- }),
- (UE.plugins.link = function () {
- function a(a) {
- var b = a.startContainer,
- c = a.endContainer
- ;(b = domUtils.findParentByTagName(b, 'a', !0)) && a.setStartBefore(b),
- (c = domUtils.findParentByTagName(c, 'a', !0)) && a.setEndAfter(c)
- }
- function b(b, c, d) {
- var e = b.cloneRange(),
- f = d.queryCommandValue('link')
- a((b = b.adjustmentBoundary()))
- var g = b.startContainer
- if (
- (1 == g.nodeType &&
- f &&
- ((g = g.childNodes[b.startOffset]),
- g &&
- 1 == g.nodeType &&
- 'A' == g.tagName &&
- /^(?:https?|ftp|file)\s*:\s*\/\//.test(
- g[browser.ie ? 'innerText' : 'textContent']
- ) &&
- (g[browser.ie ? 'innerText' : 'textContent'] = utils.html(
- c.textValue || c.href
- ))),
- (e.collapsed && !f) ||
- (b.removeInlineStyle('a'), (e = b.cloneRange())),
- e.collapsed)
- ) {
- var h = b.document.createElement('a'),
- i = ''
- c.textValue
- ? ((i = utils.html(c.textValue)), delete c.textValue)
- : (i = utils.html(c.href)),
- domUtils.setAttributes(h, c),
- (g = domUtils.findParentByTagName(e.startContainer, 'a', !0)),
- g &&
- domUtils.isInNodeEndBoundary(e, g) &&
- b.setStartAfter(g).collapse(!0),
- (h[browser.ie ? 'innerText' : 'textContent'] = i),
- b.insertNode(h).selectNode(h)
- } else b.applyInlineStyle('a', c)
- }
- ;(UE.commands.unlink = {
- execCommand: function () {
- var b,
- c = this.selection.getRange()
- ;(c.collapsed &&
- !domUtils.findParentByTagName(c.startContainer, 'a', !0)) ||
- ((b = c.createBookmark()),
- a(c),
- c.removeInlineStyle('a').moveToBookmark(b).select())
- },
- queryCommandState: function () {
- return !this.highlight && this.queryCommandValue('link') ? 0 : -1
- }
- }),
- (UE.commands.link = {
- execCommand: function (a, c) {
- var d
- c._href && (c._href = utils.unhtml(c._href, /[<">]/g)),
- c.href && (c.href = utils.unhtml(c.href, /[<">]/g)),
- c.textValue &&
- (c.textValue = utils.unhtml(c.textValue, /[<">]/g)),
- b((d = this.selection.getRange()), c, this),
- d.collapse().select(!0)
- },
- queryCommandValue: function () {
- var a,
- b = this.selection.getRange()
- if (!b.collapsed) {
- b.shrinkBoundary()
- var c =
- 3 != b.startContainer.nodeType &&
- b.startContainer.childNodes[b.startOffset]
- ? b.startContainer.childNodes[b.startOffset]
- : b.startContainer,
- d =
- 3 == b.endContainer.nodeType || 0 == b.endOffset
- ? b.endContainer
- : b.endContainer.childNodes[b.endOffset - 1],
- e = b.getCommonAncestor()
- if (
- ((a = domUtils.findParentByTagName(e, 'a', !0)),
- !a && 1 == e.nodeType)
- )
- for (
- var f, g, h, i = e.getElementsByTagName('a'), j = 0;
- (h = i[j++]);
- )
- if (
- ((f = domUtils.getPosition(h, c)),
- (g = domUtils.getPosition(h, d)),
- (f & domUtils.POSITION_FOLLOWING ||
- f & domUtils.POSITION_CONTAINS) &&
- (g & domUtils.POSITION_PRECEDING ||
- g & domUtils.POSITION_CONTAINS))
- ) {
- a = h
- break
- }
- return a
- }
- if (
- ((a = b.startContainer),
- (a = 1 == a.nodeType ? a : a.parentNode),
- a &&
- (a = domUtils.findParentByTagName(a, 'a', !0)) &&
- !domUtils.isInNodeEndBoundary(b, a))
- )
- return a
- },
- queryCommandState: function () {
- var a = this.selection.getRange().getClosedNode(),
- b =
- a &&
- ('edui-faked-video' == a.className ||
- a.className.indexOf('edui-upload-video') != -1)
- return b ? -1 : 0
- }
- })
- }),
- (UE.plugins.insertframe = function () {
- function a() {
- b._iframe && delete b._iframe
- }
- var b = this
- b.addListener('selectionchange', function () {
- a()
- })
- }),
- (UE.commands.scrawl = {
- queryCommandState: function () {
- return browser.ie && browser.version <= 8 ? -1 : 0
- }
- }),
- (UE.plugins.removeformat = function () {
- var a = this
- a.setOpt({
- removeFormatTags:
- 'b,big,code,del,dfn,em,font,i,ins,kbd,q,samp,small,span,strike,strong,sub,sup,tt,u,var',
- removeFormatAttributes:
- 'class,style,lang,width,height,align,hspace,valign'
- }),
- (a.commands.removeformat = {
- execCommand: function (a, b, c, d, e) {
- function f(a) {
- if (3 == a.nodeType || 'span' != a.tagName.toLowerCase()) return 0
- if (browser.ie) {
- var b = a.attributes
- if (b.length) {
- for (var c = 0, d = b.length; c < d; c++)
- if (b[c].specified) return 0
- return 1
- }
- }
- return !a.attributes.length
- }
- function g(a) {
- var b = a.createBookmark()
- if ((a.collapsed && a.enlarge(!0), !e)) {
- var d = domUtils.findParentByTagName(a.startContainer, 'a', !0)
- d && a.setStartBefore(d),
- (d = domUtils.findParentByTagName(a.endContainer, 'a', !0)),
- d && a.setEndAfter(d)
- }
- for (
- h = a.createBookmark(), p = h.start;
- (i = p.parentNode) && !domUtils.isBlockElm(i);
- )
- domUtils.breakParent(p, i), domUtils.clearEmptySibling(p)
- if (h.end) {
- for (p = h.end; (i = p.parentNode) && !domUtils.isBlockElm(i); )
- domUtils.breakParent(p, i), domUtils.clearEmptySibling(p)
- for (
- var g, l = domUtils.getNextDomNode(h.start, !1, m);
- l && l != h.end;
- )
- (g = domUtils.getNextDomNode(l, !0, m)),
- dtd.$empty[l.tagName.toLowerCase()] ||
- domUtils.isBookmarkNode(l) ||
- (j.test(l.tagName)
- ? c
- ? (domUtils.removeStyle(l, c),
- f(l) &&
- 'text-decoration' != c &&
- domUtils.remove(l, !0))
- : domUtils.remove(l, !0)
- : dtd.$tableContent[l.tagName] ||
- dtd.$list[l.tagName] ||
- (domUtils.removeAttributes(l, k),
- f(l) && domUtils.remove(l, !0))),
- (l = g)
- }
- var n = h.start.parentNode
- !domUtils.isBlockElm(n) ||
- dtd.$tableContent[n.tagName] ||
- dtd.$list[n.tagName] ||
- domUtils.removeAttributes(n, k),
- (n = h.end.parentNode),
- h.end &&
- domUtils.isBlockElm(n) &&
- !dtd.$tableContent[n.tagName] &&
- !dtd.$list[n.tagName] &&
- domUtils.removeAttributes(n, k),
- a.moveToBookmark(h).moveToBookmark(b)
- for (
- var o, p = a.startContainer, q = a.collapsed;
- 1 == p.nodeType &&
- domUtils.isEmptyNode(p) &&
- dtd.$removeEmpty[p.tagName];
- )
- (o = p.parentNode),
- a.setStartBefore(p),
- a.startContainer === a.endContainer && a.endOffset--,
- domUtils.remove(p),
- (p = o)
- if (!q)
- for (
- p = a.endContainer;
- 1 == p.nodeType &&
- domUtils.isEmptyNode(p) &&
- dtd.$removeEmpty[p.tagName];
- )
- (o = p.parentNode),
- a.setEndBefore(p),
- domUtils.remove(p),
- (p = o)
- }
- var h,
- i,
- j = new RegExp(
- '^(?:' +
- (b || this.options.removeFormatTags).replace(/,/g, '|') +
- ')$',
- 'i'
- ),
- k = c
- ? []
- : (d || this.options.removeFormatAttributes).split(','),
- l = new dom.Range(this.document),
- m = function (a) {
- return 1 == a.nodeType
- }
- ;(l = this.selection.getRange()), g(l), l.select()
- }
- })
- }),
- (UE.plugins.blockquote = function () {
- function a(a) {
- return domUtils.filterNodeList(
- a.selection.getStartElementPath(),
- 'blockquote'
- )
- }
- var b = this
- b.commands.blockquote = {
- execCommand: function (b, c) {
- var d = this.selection.getRange(),
- e = a(this),
- f = dtd.blockquote,
- g = d.createBookmark()
- if (e) {
- var h = d.startContainer,
- i = domUtils.isBlockElm(h)
- ? h
- : domUtils.findParent(h, function (a) {
- return domUtils.isBlockElm(a)
- }),
- j = d.endContainer,
- k = domUtils.isBlockElm(j)
- ? j
- : domUtils.findParent(j, function (a) {
- return domUtils.isBlockElm(a)
- })
- ;(i = domUtils.findParentByTagName(i, 'li', !0) || i),
- (k = domUtils.findParentByTagName(k, 'li', !0) || k),
- 'LI' == i.tagName ||
- 'TD' == i.tagName ||
- i === e ||
- domUtils.isBody(i)
- ? domUtils.remove(e, !0)
- : domUtils.breakParent(i, e),
- i !== k &&
- ((e = domUtils.findParentByTagName(k, 'blockquote')),
- e &&
- ('LI' == k.tagName || 'TD' == k.tagName || domUtils.isBody(k)
- ? e.parentNode && domUtils.remove(e, !0)
- : domUtils.breakParent(k, e)))
- for (
- var l,
- m = domUtils.getElementsByTagName(this.document, 'blockquote'),
- n = 0;
- (l = m[n++]);
- )
- l.childNodes.length
- ? domUtils.getPosition(l, i) & domUtils.POSITION_FOLLOWING &&
- domUtils.getPosition(l, k) & domUtils.POSITION_PRECEDING &&
- domUtils.remove(l, !0)
- : domUtils.remove(l)
- } else {
- for (
- var o = d.cloneRange(),
- p =
- 1 == o.startContainer.nodeType
- ? o.startContainer
- : o.startContainer.parentNode,
- q = p,
- r = 1;
- ;
- ) {
- if (domUtils.isBody(p)) {
- q !== p
- ? d.collapsed
- ? (o.selectNode(q), (r = 0))
- : o.setStartBefore(q)
- : o.setStart(p, 0)
- break
- }
- if (!f[p.tagName]) {
- d.collapsed ? o.selectNode(q) : o.setStartBefore(q)
- break
- }
- ;(q = p), (p = p.parentNode)
- }
- if (r)
- for (
- q =
- p =
- p =
- 1 == o.endContainer.nodeType
- ? o.endContainer
- : o.endContainer.parentNode;
- ;
- ) {
- if (domUtils.isBody(p)) {
- q !== p ? o.setEndAfter(q) : o.setEnd(p, p.childNodes.length)
- break
- }
- if (!f[p.tagName]) {
- o.setEndAfter(q)
- break
- }
- ;(q = p), (p = p.parentNode)
- }
- ;(p = d.document.createElement('blockquote')),
- domUtils.setAttributes(p, c),
- p.appendChild(o.extractContents()),
- o.insertNode(p)
- for (
- var s, t = domUtils.getElementsByTagName(p, 'blockquote'), n = 0;
- (s = t[n++]);
- )
- s.parentNode && domUtils.remove(s, !0)
- }
- d.moveToBookmark(g).select()
- },
- queryCommandState: function () {
- return a(this) ? 1 : 0
- }
- }
- }),
- (UE.commands.touppercase = UE.commands.tolowercase =
- {
- execCommand: function (a) {
- var b = this,
- c = b.selection.getRange()
- if (c.collapsed) return c
- for (
- var d = c.createBookmark(),
- e = d.end,
- f = function (a) {
- return !domUtils.isBr(a) && !domUtils.isWhitespace(a)
- },
- g = domUtils.getNextDomNode(d.start, !1, f);
- g &&
- domUtils.getPosition(g, e) & domUtils.POSITION_PRECEDING &&
- (3 == g.nodeType &&
- (g.nodeValue =
- g.nodeValue[
- 'touppercase' == a ? 'toUpperCase' : 'toLowerCase'
- ]()),
- (g = domUtils.getNextDomNode(g, !0, f)),
- g !== e);
- );
- c.moveToBookmark(d).select()
- }
- }),
- (UE.commands.indent = {
- execCommand: function () {
- var a = this,
- b = a.queryCommandState('indent')
- ? '0em'
- : a.options.indentValue || '2em'
- a.execCommand('Paragraph', 'p', { style: 'text-indent:' + b })
- },
- queryCommandState: function () {
- var a = domUtils.filterNodeList(
- this.selection.getStartElementPath(),
- 'p h1 h2 h3 h4 h5 h6'
- )
- return a && a.style.textIndent && parseInt(a.style.textIndent) ? 1 : 0
- }
- }),
- (UE.commands.print = {
- execCommand: function () {
- this.window.print()
- },
- notNeedUndo: 1
- }),
- (UE.commands.preview = {
- execCommand: function () {
- var a = window.open('', '_blank', ''),
- b = a.document
- b.open(),
- b.write(
- '<!DOCTYPE html><html><head><meta charset="utf-8"/><script src="' +
- this.options.UEDITOR_HOME_URL +
- "ueditor.parse.js\"></script><script>setTimeout(function(){uParse('div',{rootPath: '" +
- this.options.UEDITOR_HOME_URL +
- "'})},300)</script></head><body><div>" +
- this.getContent(null, null, !0) +
- '</div></body></html>'
- ),
- b.close()
- },
- notNeedUndo: 1
- }),
- (UE.plugins.selectall = function () {
- var a = this
- ;(a.commands.selectall = {
- execCommand: function () {
- var a = this,
- b = a.body,
- c = a.selection.getRange()
- c.selectNodeContents(b),
- domUtils.isEmptyBlock(b) &&
- (browser.opera &&
- b.firstChild &&
- 1 == b.firstChild.nodeType &&
- c.setStartAtFirst(b.firstChild),
- c.collapse(!0)),
- c.select(!0)
- },
- notNeedUndo: 1
- }),
- a.addshortcutkey({ selectAll: 'ctrl+65' })
- }),
- (UE.plugins.paragraph = function () {
- var a = this,
- b = domUtils.isBlockElm,
- c = ['TD', 'LI', 'PRE'],
- d = function (a, d, e, f) {
- var g,
- h = a.createBookmark(),
- i = function (a) {
- return 1 == a.nodeType
- ? 'br' != a.tagName.toLowerCase() && !domUtils.isBookmarkNode(a)
- : !domUtils.isWhitespace(a)
- }
- a.enlarge(!0)
- for (
- var j,
- k = a.createBookmark(),
- l = domUtils.getNextDomNode(k.start, !1, i),
- m = a.cloneRange();
- l &&
- !(domUtils.getPosition(l, k.end) & domUtils.POSITION_FOLLOWING);
- )
- if (3 != l.nodeType && b(l)) l = domUtils.getNextDomNode(l, !0, i)
- else {
- for (m.setStartBefore(l); l && l !== k.end && !b(l); )
- (j = l),
- (l = domUtils.getNextDomNode(l, !1, null, function (a) {
- return !b(a)
- }))
- m.setEndAfter(j),
- (g = a.document.createElement(d)),
- e &&
- (domUtils.setAttributes(g, e),
- f &&
- 'customstyle' == f &&
- e.style &&
- (g.style.cssText = e.style)),
- g.appendChild(m.extractContents()),
- domUtils.isEmptyNode(g) && domUtils.fillChar(a.document, g),
- m.insertNode(g)
- var n = g.parentNode
- b(n) &&
- !domUtils.isBody(g.parentNode) &&
- utils.indexOf(c, n.tagName) == -1 &&
- ((f && 'customstyle' == f) ||
- (n.getAttribute('dir') &&
- g.setAttribute('dir', n.getAttribute('dir')),
- n.style.cssText &&
- (g.style.cssText = n.style.cssText + ';' + g.style.cssText),
- n.style.textAlign &&
- !g.style.textAlign &&
- (g.style.textAlign = n.style.textAlign),
- n.style.textIndent &&
- !g.style.textIndent &&
- (g.style.textIndent = n.style.textIndent),
- n.style.padding &&
- !g.style.padding &&
- (g.style.padding = n.style.padding)),
- e && /h\d/i.test(n.tagName) && !/h\d/i.test(g.tagName)
- ? (domUtils.setAttributes(n, e),
- f &&
- 'customstyle' == f &&
- e.style &&
- (n.style.cssText = e.style),
- domUtils.remove(g, !0),
- (g = n))
- : domUtils.remove(g.parentNode, !0)),
- (l = utils.indexOf(c, n.tagName) != -1 ? n : g),
- (l = domUtils.getNextDomNode(l, !1, i))
- }
- return a.moveToBookmark(k).moveToBookmark(h)
- }
- a.setOpt('paragraph', {
- p: '',
- h1: '',
- h2: '',
- h3: '',
- h4: '',
- h5: '',
- h6: ''
- }),
- (a.commands.paragraph = {
- execCommand: function (a, b, c, e) {
- var f = this.selection.getRange()
- if (f.collapsed) {
- var g = this.document.createTextNode('p')
- if ((f.insertNode(g), browser.ie)) {
- var h = g.previousSibling
- h && domUtils.isWhitespace(h) && domUtils.remove(h),
- (h = g.nextSibling),
- h && domUtils.isWhitespace(h) && domUtils.remove(h)
- }
- }
- if (
- ((f = d(f, b, c, e)),
- g &&
- (f.setStartBefore(g).collapse(!0),
- (pN = g.parentNode),
- domUtils.remove(g),
- domUtils.isBlockElm(pN) &&
- domUtils.isEmptyNode(pN) &&
- domUtils.fillNode(this.document, pN)),
- browser.gecko && f.collapsed && 1 == f.startContainer.nodeType)
- ) {
- var i = f.startContainer.childNodes[f.startOffset]
- i &&
- 1 == i.nodeType &&
- i.tagName.toLowerCase() == b &&
- f.setStart(i, 0).collapse(!0)
- }
- return f.select(), !0
- },
- queryCommandValue: function () {
- var a = domUtils.filterNodeList(
- this.selection.getStartElementPath(),
- 'p h1 h2 h3 h4 h5 h6'
- )
- return a ? a.tagName.toLowerCase() : ''
- }
- })
- }),
- (function () {
- var a = domUtils.isBlockElm,
- b = function (a) {
- return domUtils.filterNodeList(
- a.selection.getStartElementPath(),
- function (a) {
- return a && 1 == a.nodeType && a.getAttribute('dir')
- }
- )
- },
- c = function (c, d, e) {
- var f,
- g = function (a) {
- return 1 == a.nodeType
- ? !domUtils.isBookmarkNode(a)
- : !domUtils.isWhitespace(a)
- },
- h = b(d)
- if (h && c.collapsed) return h.setAttribute('dir', e), c
- ;(f = c.createBookmark()), c.enlarge(!0)
- for (
- var i,
- j = c.createBookmark(),
- k = domUtils.getNextDomNode(j.start, !1, g),
- l = c.cloneRange();
- k &&
- !(domUtils.getPosition(k, j.end) & domUtils.POSITION_FOLLOWING);
- )
- if (3 != k.nodeType && a(k)) k = domUtils.getNextDomNode(k, !0, g)
- else {
- for (l.setStartBefore(k); k && k !== j.end && !a(k); )
- (i = k),
- (k = domUtils.getNextDomNode(k, !1, null, function (b) {
- return !a(b)
- }))
- l.setEndAfter(i)
- var m = l.getCommonAncestor()
- if (!domUtils.isBody(m) && a(m)) m.setAttribute('dir', e), (k = m)
- else {
- var n = c.document.createElement('p')
- n.setAttribute('dir', e)
- var o = l.extractContents()
- n.appendChild(o), l.insertNode(n), (k = n)
- }
- k = domUtils.getNextDomNode(k, !1, g)
- }
- return c.moveToBookmark(j).moveToBookmark(f)
- }
- UE.commands.directionality = {
- execCommand: function (a, b) {
- var d = this.selection.getRange()
- if (d.collapsed) {
- var e = this.document.createTextNode('d')
- d.insertNode(e)
- }
- return (
- c(d, this, b),
- e && (d.setStartBefore(e).collapse(!0), domUtils.remove(e)),
- d.select(),
- !0
- )
- },
- queryCommandValue: function () {
- var a = b(this)
- return a ? a.getAttribute('dir') : 'ltr'
- }
- }
- })(),
- (UE.plugins.horizontal = function () {
- var a = this
- ;(a.commands.horizontal = {
- execCommand: function (a) {
- var b = this
- if (b.queryCommandState(a) !== -1) {
- b.execCommand('insertHtml', '<hr>')
- var c = b.selection.getRange(),
- d = c.startContainer
- if (1 == d.nodeType && !d.childNodes[c.startOffset]) {
- var e
- ;(e = d.childNodes[c.startOffset - 1]) &&
- 1 == e.nodeType &&
- 'HR' == e.tagName &&
- ('p' == b.options.enterTag
- ? ((e = b.document.createElement('p')),
- c.insertNode(e),
- c.setStart(e, 0).setCursor())
- : ((e = b.document.createElement('br')),
- c.insertNode(e),
- c.setStartBefore(e).setCursor()))
- }
- return !0
- }
- },
- queryCommandState: function () {
- return domUtils.filterNodeList(
- this.selection.getStartElementPath(),
- 'table'
- )
- ? -1
- : 0
- }
- }),
- a.addListener('delkeydown', function (a, b) {
- var c = this.selection.getRange()
- if ((c.txtToElmBoundary(!0), domUtils.isStartInblock(c))) {
- var d = c.startContainer,
- e = d.previousSibling
- if (e && domUtils.isTagNode(e, 'hr'))
- return (
- domUtils.remove(e), c.select(), domUtils.preventDefault(b), !0
- )
- }
- })
- }),
- (UE.commands.time = UE.commands.date =
- {
- execCommand: function (a, b) {
- function c(a, b) {
- var c = ('0' + a.getHours()).slice(-2),
- d = ('0' + a.getMinutes()).slice(-2),
- e = ('0' + a.getSeconds()).slice(-2)
- return (
- (b = b || 'hh:ii:ss'),
- b.replace(/hh/gi, c).replace(/ii/gi, d).replace(/ss/gi, e)
- )
- }
- function d(a, b) {
- var c = ('000' + a.getFullYear()).slice(-4),
- d = c.slice(-2),
- e = ('0' + (a.getMonth() + 1)).slice(-2),
- f = ('0' + a.getDate()).slice(-2)
- return (
- (b = b || 'yyyy-mm-dd'),
- b
- .replace(/yyyy/gi, c)
- .replace(/yy/gi, d)
- .replace(/mm/gi, e)
- .replace(/dd/gi, f)
- )
- }
- var e = new Date()
- this.execCommand('insertHtml', 'time' == a ? c(e, b) : d(e, b))
- }
- }),
- (UE.plugins.rowspacing = function () {
- var a = this
- a.setOpt({
- rowspacingtop: ['5', '10', '15', '20', '25'],
- rowspacingbottom: ['5', '10', '15', '20', '25']
- }),
- (a.commands.rowspacing = {
- execCommand: function (a, b, c) {
- return (
- this.execCommand('paragraph', 'p', {
- style: 'margin-' + c + ':' + b + 'px'
- }),
- !0
- )
- },
- queryCommandValue: function (a, b) {
- var c,
- d = domUtils.filterNodeList(
- this.selection.getStartElementPath(),
- function (a) {
- return domUtils.isBlockElm(a)
- }
- )
- return d
- ? ((c = domUtils
- .getComputedStyle(d, 'margin-' + b)
- .replace(/[^\d]/g, '')),
- c ? c : 0)
- : 0
- }
- })
- }),
- (UE.plugins.lineheight = function () {
- var a = this
- a.setOpt({ lineheight: ['1', '1.5', '1.75', '2', '3', '4', '5'] }),
- (a.commands.lineheight = {
- execCommand: function (a, b) {
- return (
- this.execCommand('paragraph', 'p', {
- style: 'line-height:' + ('1' == b ? 'normal' : b + 'em')
- }),
- !0
- )
- },
- queryCommandValue: function () {
- var a = domUtils.filterNodeList(
- this.selection.getStartElementPath(),
- function (a) {
- return domUtils.isBlockElm(a)
- }
- )
- if (a) {
- var b = domUtils.getComputedStyle(a, 'line-height')
- return 'normal' == b ? 1 : b.replace(/[^\d.]*/gi, '')
- }
- }
- })
- }),
- (UE.plugins.insertcode = function () {
- var a = this
- a.ready(function () {
- utils.cssRule(
- 'pre',
- 'pre{margin:.5em 0;padding:.4em .6em;border-radius:8px;background:#f8f8f8;}',
- a.document
- )
- }),
- a.setOpt('insertcode', {
- as3: 'ActionScript3',
- bash: 'Bash/Shell',
- cpp: 'C/C++',
- css: 'Css',
- cf: 'CodeFunction',
- 'c#': 'C#',
- delphi: 'Delphi',
- diff: 'Diff',
- erlang: 'Erlang',
- groovy: 'Groovy',
- html: 'Html',
- java: 'Java',
- jfx: 'JavaFx',
- js: 'Javascript',
- pl: 'Perl',
- php: 'Php',
- plain: 'Plain Text',
- ps: 'PowerShell',
- python: 'Python',
- ruby: 'Ruby',
- scala: 'Scala',
- sql: 'Sql',
- vb: 'Vb',
- xml: 'Xml'
- }),
- (a.commands.insertcode = {
- execCommand: function (a, b) {
- var c = this,
- d = c.selection.getRange(),
- e = domUtils.findParentByTagName(d.startContainer, 'pre', !0)
- if (e) e.className = 'brush:' + b + ';toolbar:false;'
- else {
- var f = ''
- if (d.collapsed)
- f =
- browser.ie && browser.ie11below
- ? browser.version <= 8
- ? ' '
- : ''
- : '<br/>'
- else {
- var g = d.extractContents(),
- h = c.document.createElement('div')
- h.appendChild(g),
- utils.each(
- UE.filterNode(
- UE.htmlparser(h.innerHTML.replace(/[\r\t]/g, '')),
- c.options.filterTxtRules
- ).children,
- function (a) {
- if (
- browser.ie &&
- browser.ie11below &&
- browser.version > 8
- )
- 'element' == a.type
- ? 'br' == a.tagName
- ? (f += '\n')
- : dtd.$empty[a.tagName] ||
- (utils.each(a.children, function (b) {
- 'element' == b.type
- ? 'br' == b.tagName
- ? (f += '\n')
- : dtd.$empty[a.tagName] ||
- (f += b.innerText())
- : (f += b.data)
- }),
- /\n$/.test(f) || (f += '\n'))
- : (f += a.data + '\n'),
- !a.nextSibling() &&
- /\n$/.test(f) &&
- (f = f.replace(/\n$/, ''))
- else if (browser.ie && browser.ie11below)
- 'element' == a.type
- ? 'br' == a.tagName
- ? (f += '<br>')
- : dtd.$empty[a.tagName] ||
- (utils.each(a.children, function (b) {
- 'element' == b.type
- ? 'br' == b.tagName
- ? (f += '<br>')
- : dtd.$empty[a.tagName] ||
- (f += b.innerText())
- : (f += b.data)
- }),
- /br>$/.test(f) || (f += '<br>'))
- : (f += a.data + '<br>'),
- !a.nextSibling() &&
- /<br>$/.test(f) &&
- (f = f.replace(/<br>$/, ''))
- else if (
- ((f +=
- 'element' == a.type
- ? dtd.$empty[a.tagName]
- ? ''
- : a.innerText()
- : a.data),
- !/br\/?\s*>$/.test(f))
- ) {
- if (!a.nextSibling()) return
- f += '<br>'
- }
- }
- )
- }
- c.execCommand(
- 'inserthtml',
- '<pre id="coder"class="brush:' +
- b +
- ';toolbar:false">' +
- f +
- '</pre>',
- !0
- ),
- (e = c.document.getElementById('coder')),
- domUtils.removeAttributes(e, 'id')
- var i = e.previousSibling
- i &&
- ((3 == i.nodeType &&
- 1 == i.nodeValue.length &&
- browser.ie &&
- 6 == browser.version) ||
- domUtils.isEmptyBlock(i)) &&
- domUtils.remove(i)
- var d = c.selection.getRange()
- domUtils.isEmptyBlock(e)
- ? d.setStart(e, 0).setCursor(!1, !0)
- : d.selectNodeContents(e).select()
- }
- },
- queryCommandValue: function () {
- var a = this.selection.getStartElementPath(),
- b = ''
- return (
- utils.each(a, function (a) {
- if ('PRE' == a.nodeName) {
- var c = a.className.match(/brush:([^;]+)/)
- return (b = c && c[1] ? c[1] : ''), !1
- }
- }),
- b
- )
- }
- }),
- a.addInputRule(function (a) {
- utils.each(a.getNodesByTagName('pre'), function (a) {
- var b = a.getNodesByTagName('br')
- if (b.length)
- return void (
- browser.ie &&
- browser.ie11below &&
- browser.version > 8 &&
- utils.each(b, function (a) {
- var b = UE.uNode.createText('\n')
- a.parentNode.insertBefore(b, a), a.parentNode.removeChild(a)
- })
- )
- if (!(browser.ie && browser.ie11below && browser.version > 8)) {
- var c = a.innerText().split(/\n/)
- a.innerHTML(''),
- utils.each(c, function (b) {
- b.length && a.appendChild(UE.uNode.createText(b)),
- a.appendChild(UE.uNode.createElement('br'))
- })
- }
- })
- }),
- a.addOutputRule(function (a) {
- utils.each(a.getNodesByTagName('pre'), function (a) {
- var b = ''
- utils.each(a.children, function (a) {
- b +=
- 'text' == a.type
- ? a.data.replace(/[ ]/g, ' ').replace(/\n$/, '')
- : 'br' == a.tagName
- ? '\n'
- : dtd.$empty[a.tagName]
- ? a.innerText()
- : ''
- }),
- a.innerText(b.replace(/( |\n)+$/, ''))
- })
- }),
- (a.notNeedCodeQuery = {
- help: 1,
- undo: 1,
- redo: 1,
- source: 1,
- print: 1,
- searchreplace: 1,
- fullscreen: 1,
- preview: 1,
- insertparagraph: 1,
- elementpath: 1,
- insertcode: 1,
- inserthtml: 1,
- selectall: 1
- })
- a.queryCommandState
- ;(a.queryCommandState = function (a) {
- var b = this
- return !b.notNeedCodeQuery[a.toLowerCase()] &&
- b.selection &&
- b.queryCommandValue('insertcode')
- ? -1
- : UE.Editor.prototype.queryCommandState.apply(this, arguments)
- }),
- a.addListener('beforeenterkeydown', function () {
- var b = a.selection.getRange(),
- c = domUtils.findParentByTagName(b.startContainer, 'pre', !0)
- if (c) {
- if (
- (a.fireEvent('saveScene'),
- b.collapsed || b.deleteContents(),
- !browser.ie || browser.ie9above)
- ) {
- var c,
- d = a.document.createElement('br')
- b.insertNode(d).setStartAfter(d).collapse(!0)
- var e = d.nextSibling
- e || (browser.ie && !(browser.version > 10))
- ? b.setStartAfter(d)
- : b.insertNode(d.cloneNode(!1)),
- (c = d.previousSibling)
- for (var f; c; )
- if (
- ((f = c), (c = c.previousSibling), !c || 'BR' == c.nodeName)
- ) {
- c = f
- break
- }
- if (c) {
- for (
- var g = '';
- c &&
- 'BR' != c.nodeName &&
- new RegExp('^[\\s' + domUtils.fillChar + ']*$').test(
- c.nodeValue
- );
- )
- (g += c.nodeValue), (c = c.nextSibling)
- if ('BR' != c.nodeName) {
- var h = c.nodeValue.match(
- new RegExp('^([\\s' + domUtils.fillChar + ']+)')
- )
- h && h[1] && (g += h[1])
- }
- g &&
- ((g = a.document.createTextNode(g)),
- b.insertNode(g).setStartAfter(g))
- }
- b.collapse(!0).select(!0)
- } else if (browser.version > 8) {
- var i = a.document.createTextNode('\n'),
- j = b.startContainer
- if (0 == b.startOffset) {
- var k = j.previousSibling
- if (k) {
- b.insertNode(i)
- var l = a.document.createTextNode(' ')
- b.setStartAfter(i)
- .insertNode(l)
- .setStart(l, 0)
- .collapse(!0)
- .select(!0)
- }
- } else {
- b.insertNode(i).setStartAfter(i)
- var l = a.document.createTextNode(' ')
- ;(j = b.startContainer.childNodes[b.startOffset]),
- j && !/^\n/.test(j.nodeValue) && b.setStartBefore(i),
- b.insertNode(l).setStart(l, 0).collapse(!0).select(!0)
- }
- } else {
- var d = a.document.createElement('br')
- b.insertNode(d),
- b.insertNode(a.document.createTextNode(domUtils.fillChar)),
- b.setStartAfter(d),
- (c = d.previousSibling)
- for (var f; c; )
- if (
- ((f = c), (c = c.previousSibling), !c || 'BR' == c.nodeName)
- ) {
- c = f
- break
- }
- if (c) {
- for (
- var g = '';
- c &&
- 'BR' != c.nodeName &&
- new RegExp('^[ ' + domUtils.fillChar + ']*$').test(
- c.nodeValue
- );
- )
- (g += c.nodeValue), (c = c.nextSibling)
- if ('BR' != c.nodeName) {
- var h = c.nodeValue.match(
- new RegExp('^([ ' + domUtils.fillChar + ']+)')
- )
- h && h[1] && (g += h[1])
- }
- ;(g = a.document.createTextNode(g)),
- b.insertNode(g).setStartAfter(g)
- }
- b.collapse(!0).select()
- }
- return a.fireEvent('saveScene'), !0
- }
- }),
- a.addListener('tabkeydown', function (b, c) {
- var d = a.selection.getRange(),
- e = domUtils.findParentByTagName(d.startContainer, 'pre', !0)
- if (e) {
- if ((a.fireEvent('saveScene'), c.shiftKey));
- else if (d.collapsed) {
- var f = a.document.createTextNode(' ')
- d.insertNode(f).setStartAfter(f).collapse(!0).select(!0)
- } else {
- for (
- var g = d.createBookmark(), h = g.start.previousSibling;
- h;
- ) {
- if (e.firstChild === h && !domUtils.isBr(h)) {
- e.insertBefore(a.document.createTextNode(' '), h)
- break
- }
- if (domUtils.isBr(h)) {
- e.insertBefore(
- a.document.createTextNode(' '),
- h.nextSibling
- )
- break
- }
- h = h.previousSibling
- }
- var i = g.end
- for (
- h = g.start.nextSibling,
- e.firstChild === g.start &&
- e.insertBefore(
- a.document.createTextNode(' '),
- h.nextSibling
- );
- h && h !== i;
- ) {
- if (domUtils.isBr(h) && h.nextSibling) {
- if (h.nextSibling === i) break
- e.insertBefore(
- a.document.createTextNode(' '),
- h.nextSibling
- )
- }
- h = h.nextSibling
- }
- d.moveToBookmark(g).select()
- }
- return a.fireEvent('saveScene'), !0
- }
- }),
- a.addListener('beforeinserthtml', function (a, b) {
- var c = this,
- d = c.selection.getRange(),
- e = domUtils.findParentByTagName(d.startContainer, 'pre', !0)
- if (e) {
- d.collapsed || d.deleteContents()
- var f = ''
- if (browser.ie && browser.version > 8) {
- utils.each(
- UE.filterNode(UE.htmlparser(b), c.options.filterTxtRules)
- .children,
- function (a) {
- 'element' == a.type
- ? 'br' == a.tagName
- ? (f += '\n')
- : dtd.$empty[a.tagName] ||
- (utils.each(a.children, function (b) {
- 'element' == b.type
- ? 'br' == b.tagName
- ? (f += '\n')
- : dtd.$empty[a.tagName] || (f += b.innerText())
- : (f += b.data)
- }),
- /\n$/.test(f) || (f += '\n'))
- : (f += a.data + '\n'),
- !a.nextSibling() &&
- /\n$/.test(f) &&
- (f = f.replace(/\n$/, ''))
- }
- )
- var g = c.document.createTextNode(
- utils.html(f.replace(/ /g, ' '))
- )
- d.insertNode(g).selectNode(g).select()
- } else {
- var h = c.document.createDocumentFragment()
- utils.each(
- UE.filterNode(UE.htmlparser(b), c.options.filterTxtRules)
- .children,
- function (a) {
- 'element' == a.type
- ? 'br' == a.tagName
- ? h.appendChild(c.document.createElement('br'))
- : dtd.$empty[a.tagName] ||
- (utils.each(a.children, function (b) {
- 'element' == b.type
- ? 'br' == b.tagName
- ? h.appendChild(c.document.createElement('br'))
- : dtd.$empty[a.tagName] ||
- h.appendChild(
- c.document.createTextNode(
- utils.html(
- b.innerText().replace(/ /g, ' ')
- )
- )
- )
- : h.appendChild(
- c.document.createTextNode(
- utils.html(b.data.replace(/ /g, ' '))
- )
- )
- }),
- 'BR' != h.lastChild.nodeName &&
- h.appendChild(c.document.createElement('br')))
- : h.appendChild(
- c.document.createTextNode(
- utils.html(a.data.replace(/ /g, ' '))
- )
- ),
- a.nextSibling() ||
- 'BR' != h.lastChild.nodeName ||
- h.removeChild(h.lastChild)
- }
- ),
- d.insertNode(h).select()
- }
- return !0
- }
- }),
- a.addListener('keydown', function (a, b) {
- var c = this,
- d = b.keyCode || b.which
- if (40 == d) {
- var e,
- f = c.selection.getRange(),
- g = f.startContainer
- if (
- f.collapsed &&
- (e = domUtils.findParentByTagName(f.startContainer, 'pre', !0)) &&
- !e.nextSibling
- ) {
- for (var h = e.lastChild; h && 'BR' == h.nodeName; )
- h = h.previousSibling
- ;(h === g ||
- (f.startContainer === e &&
- f.startOffset == e.childNodes.length)) &&
- (c.execCommand('insertparagraph'), domUtils.preventDefault(b))
- }
- }
- }),
- a.addListener('delkeydown', function (b, c) {
- var d = this.selection.getRange()
- d.txtToElmBoundary(!0)
- var e = d.startContainer
- if (
- domUtils.isTagNode(e, 'pre') &&
- d.collapsed &&
- domUtils.isStartInblock(d)
- ) {
- var f = a.document.createElement('p')
- return (
- domUtils.fillNode(a.document, f),
- e.parentNode.insertBefore(f, e),
- domUtils.remove(e),
- d.setStart(f, 0).setCursor(!1, !0),
- domUtils.preventDefault(c),
- !0
- )
- }
- })
- }),
- (UE.commands.cleardoc = {
- execCommand: function (a) {
- var b = this,
- c = b.options.enterTag,
- d = b.selection.getRange()
- 'br' == c
- ? ((b.body.innerHTML = '<br/>'), d.setStart(b.body, 0).setCursor())
- : ((b.body.innerHTML = '<p>' + (ie ? '' : '<br/>') + '</p>'),
- d.setStart(b.body.firstChild, 0).setCursor(!1, !0)),
- setTimeout(function () {
- b.fireEvent('clearDoc')
- }, 0)
- }
- }),
- UE.plugin.register('anchor', function () {
- return {
- bindEvents: {
- ready: function () {
- utils.cssRule(
- 'anchor',
- ".anchorclass{background: url('" +
- this.options.themePath +
- this.options.theme +
- "/images/anchor.gif') no-repeat scroll left center transparent;cursor: auto;display: inline-block;height: 16px;width: 15px;}",
- this.document
- )
- }
- },
- outputRule: function (a) {
- utils.each(a.getNodesByTagName('img'), function (a) {
- var b
- ;(b = a.getAttr('anchorname')) &&
- ((a.tagName = 'a'),
- a.setAttr({ anchorname: '', name: b, class: '' }))
- })
- },
- inputRule: function (a) {
- utils.each(a.getNodesByTagName('a'), function (a) {
- var b
- ;(b = a.getAttr('name')) &&
- !a.getAttr('href') &&
- ((a.tagName = 'img'),
- a.setAttr({
- anchorname: a.getAttr('name'),
- class: 'anchorclass'
- }),
- a.setAttr('name'))
- })
- },
- commands: {
- anchor: {
- execCommand: function (a, b) {
- var c = this.selection.getRange(),
- d = c.getClosedNode()
- if (d && d.getAttribute('anchorname'))
- b
- ? d.setAttribute('anchorname', b)
- : (c.setStartBefore(d).setCursor(), domUtils.remove(d))
- else if (b) {
- var e = this.document.createElement('img')
- c.collapse(!0),
- domUtils.setAttributes(e, {
- anchorname: b,
- class: 'anchorclass'
- }),
- c.insertNode(e).setStartAfter(e).setCursor(!1, !0)
- }
- }
- }
- }
- }
- }),
- (UE.plugins.wordcount = function () {
- var a = this
- a.setOpt('wordCount', !0),
- a.addListener('contentchange', function () {
- a.fireEvent('wordcount')
- })
- var b
- a.addListener('ready', function () {
- var a = this
- domUtils.on(a.body, 'keyup', function (c) {
- var d = c.keyCode || c.which,
- e = { 16: 1, 18: 1, 20: 1, 37: 1, 38: 1, 39: 1, 40: 1 }
- d in e ||
- (clearTimeout(b),
- (b = setTimeout(function () {
- a.fireEvent('wordcount')
- }, 200)))
- })
- })
- }),
- (UE.plugins.pagebreak = function () {
- function a(a) {
- if (domUtils.isEmptyBlock(a)) {
- for (
- var b, d = a.firstChild;
- d && 1 == d.nodeType && domUtils.isEmptyBlock(d);
- )
- (b = d), (d = d.firstChild)
- !b && (b = a), domUtils.fillNode(c.document, b)
- }
- }
- function b(a) {
- return (
- a &&
- 1 == a.nodeType &&
- 'HR' == a.tagName &&
- 'pagebreak' == a.className
- )
- }
- var c = this,
- d = ['td']
- c.setOpt('pageBreakTag', '_ueditor_page_break_tag_'),
- c.ready(function () {
- utils.cssRule(
- 'pagebreak',
- '.pagebreak{display:block;clear:both !important;cursor:default !important;width: 100% !important;margin:0;}',
- c.document
- )
- }),
- c.addInputRule(function (a) {
- a.traversal(function (a) {
- if ('text' == a.type && a.data == c.options.pageBreakTag) {
- var b = UE.uNode.createElement(
- '<hr class="pagebreak" noshade="noshade" size="5" style="-webkit-user-select: none;">'
- )
- a.parentNode.insertBefore(b, a), a.parentNode.removeChild(a)
- }
- })
- }),
- c.addOutputRule(function (a) {
- utils.each(a.getNodesByTagName('hr'), function (a) {
- if ('pagebreak' == a.getAttr('class')) {
- var b = UE.uNode.createText(c.options.pageBreakTag)
- a.parentNode.insertBefore(b, a), a.parentNode.removeChild(a)
- }
- })
- }),
- (c.commands.pagebreak = {
- execCommand: function () {
- var e = c.selection.getRange(),
- f = c.document.createElement('hr')
- domUtils.setAttributes(f, {
- class: 'pagebreak',
- noshade: 'noshade',
- size: '5'
- }),
- domUtils.unSelectable(f)
- var g,
- h = domUtils.findParentByTagName(e.startContainer, d, !0),
- i = []
- if (h)
- switch (h.tagName) {
- case 'TD':
- if (((g = h.parentNode), g.previousSibling))
- g.parentNode.insertBefore(f, g),
- (i = domUtils.findParents(f))
- else {
- var j = domUtils.findParentByTagName(g, 'table')
- j.parentNode.insertBefore(f, j),
- (i = domUtils.findParents(f, !0))
- }
- ;(g = i[1]),
- f !== g && domUtils.breakParent(f, g),
- c.fireEvent('afteradjusttable', c.document)
- }
- else {
- if (!e.collapsed) {
- e.deleteContents()
- for (
- var k = e.startContainer;
- !domUtils.isBody(k) &&
- domUtils.isBlockElm(k) &&
- domUtils.isEmptyNode(k);
- )
- e.setStartBefore(k).collapse(!0),
- domUtils.remove(k),
- (k = e.startContainer)
- }
- e.insertNode(f)
- for (var l, g = f.parentNode; !domUtils.isBody(g); )
- domUtils.breakParent(f, g),
- (l = f.nextSibling),
- l && domUtils.isEmptyBlock(l) && domUtils.remove(l),
- (g = f.parentNode)
- l = f.nextSibling
- var m = f.previousSibling
- if ((b(m) ? domUtils.remove(m) : m && a(m), l))
- b(l) ? domUtils.remove(l) : a(l), e.setEndAfter(f).collapse(!1)
- else {
- var n = c.document.createElement('p')
- f.parentNode.appendChild(n),
- domUtils.fillNode(c.document, n),
- e.setStart(n, 0).collapse(!0)
- }
- e.select(!0)
- }
- }
- })
- }),
- UE.plugin.register('wordimage', function () {
- var a = this,
- b = []
- return {
- commands: {
- wordimage: {
- execCommand: function () {
- for (
- var b,
- c = domUtils.getElementsByTagName(a.body, 'img'),
- d = [],
- e = 0;
- (b = c[e++]);
- ) {
- var f = b.getAttribute('word_img')
- f && d.push(f)
- }
- return d
- },
- queryCommandState: function () {
- b = domUtils.getElementsByTagName(a.body, 'img')
- for (var c, d = 0; (c = b[d++]); )
- if (c.getAttribute('word_img')) return 1
- return -1
- },
- notNeedUndo: !0
- }
- },
- inputRule: function (b) {
- utils.each(b.getNodesByTagName('img'), function (b) {
- var c = b.attrs,
- d = parseInt(c.width) < 128 || parseInt(c.height) < 43,
- e = a.options,
- f = e.UEDITOR_HOME_URL + 'themes/default/images/spacer.gif'
- c.src &&
- /^(?:(file:\/+))/.test(c.src) &&
- b.setAttr({
- width: c.width,
- height: c.height,
- alt: c.alt,
- word_img: c.src,
- src: f,
- style:
- 'background:url(' +
- (d
- ? e.themePath + e.theme + '/images/word.gif'
- : e.langPath + e.lang + '/images/localimage.png') +
- ') no-repeat center center;border:1px solid #ddd'
- })
- })
- }
- }
- }),
- (UE.plugins.dragdrop = function () {
- var a = this
- a.ready(function () {
- domUtils.on(this.body, 'dragend', function () {
- var b = a.selection.getRange(),
- c = b.getClosedNode() || a.selection.getStart()
- if (c && 'IMG' == c.tagName) {
- for (
- var d, e = c.previousSibling;
- (d = c.nextSibling) &&
- 1 == d.nodeType &&
- 'SPAN' == d.tagName &&
- !d.firstChild;
- )
- domUtils.remove(d)
- ;((!e || 1 != e.nodeType || domUtils.isEmptyBlock(e)) && e) ||
- (d && (!d || domUtils.isEmptyBlock(d))) ||
- (e && 'P' == e.tagName && !domUtils.isEmptyBlock(e)
- ? (e.appendChild(c),
- domUtils.moveChild(d, e),
- domUtils.remove(d))
- : d &&
- 'P' == d.tagName &&
- !domUtils.isEmptyBlock(d) &&
- d.insertBefore(c, d.firstChild),
- e &&
- 'P' == e.tagName &&
- domUtils.isEmptyBlock(e) &&
- domUtils.remove(e),
- d &&
- 'P' == d.tagName &&
- domUtils.isEmptyBlock(d) &&
- domUtils.remove(d),
- b.selectNode(c).select(),
- a.fireEvent('saveScene'))
- }
- })
- }),
- a.addListener('keyup', function (b, c) {
- var d = c.keyCode || c.which
- if (13 == d) {
- var e,
- f = a.selection.getRange()
- ;(e = domUtils.findParentByTagName(f.startContainer, 'p', !0)) &&
- 'center' == domUtils.getComputedStyle(e, 'text-align') &&
- domUtils.removeStyle(e, 'text-align')
- }
- })
- }),
- (UE.plugins.undo = function () {
- function a(a, b) {
- if (a.length != b.length) return 0
- for (var c = 0, d = a.length; c < d; c++) if (a[c] != b[c]) return 0
- return 1
- }
- function b(b, c) {
- return b.collapsed != c.collapsed
- ? 0
- : a(b.startAddress, c.startAddress) && a(b.endAddress, c.endAddress)
- ? 1
- : 0
- }
- function c() {
- ;(this.list = []),
- (this.index = 0),
- (this.hasUndo = !1),
- (this.hasRedo = !1),
- (this.undo = function () {
- if (this.hasUndo) {
- if (!this.list[this.index - 1] && 1 == this.list.length)
- return void this.reset()
- for (
- ;
- this.list[this.index].content ==
- this.list[this.index - 1].content;
- )
- if ((this.index--, 0 == this.index)) return this.restore(0)
- this.restore(--this.index)
- }
- }),
- (this.redo = function () {
- if (this.hasRedo) {
- for (
- ;
- this.list[this.index].content ==
- this.list[this.index + 1].content;
- )
- if ((this.index++, this.index == this.list.length - 1))
- return this.restore(this.index)
- this.restore(++this.index)
- }
- }),
- (this.restore = function () {
- var a = this.editor,
- b = this.list[this.index],
- c = UE.htmlparser(b.content.replace(h, ''))
- ;(a.options.autoClearEmptyNode = !1),
- a.filterInputRule(c),
- (a.options.autoClearEmptyNode = j),
- (a.document.body.innerHTML = c.toHtml()),
- a.fireEvent('afterscencerestore'),
- browser.ie &&
- utils.each(
- domUtils.getElementsByTagName(a.document, 'td th caption p'),
- function (b) {
- domUtils.isEmptyNode(b) && domUtils.fillNode(a.document, b)
- }
- )
- try {
- var d = new dom.Range(a.document).moveToAddress(b.address)
- d.select(i[d.startContainer.nodeName.toLowerCase()])
- } catch (e) {}
- this.update(), this.clearKey(), a.fireEvent('reset', !0)
- }),
- (this.getScene = function () {
- var a = this.editor,
- b = a.selection.getRange(),
- c = b.createAddress(!1, !0)
- a.fireEvent('beforegetscene')
- var d = UE.htmlparser(a.body.innerHTML)
- ;(a.options.autoClearEmptyNode = !1),
- a.filterOutputRule(d),
- (a.options.autoClearEmptyNode = j)
- var e = d.toHtml()
- return a.fireEvent('aftergetscene'), { address: c, content: e }
- }),
- (this.save = function (a, c) {
- clearTimeout(d)
- var g = this.getScene(c),
- h = this.list[this.index]
- h && h.content != g.content && e.trigger('contentchange'),
- (h &&
- h.content == g.content &&
- (a ? 1 : b(h.address, g.address))) ||
- ((this.list = this.list.slice(0, this.index + 1)),
- this.list.push(g),
- this.list.length > f && this.list.shift(),
- (this.index = this.list.length - 1),
- this.clearKey(),
- this.update())
- }),
- (this.update = function () {
- ;(this.hasRedo = !!this.list[this.index + 1]),
- (this.hasUndo = !!this.list[this.index - 1])
- }),
- (this.reset = function () {
- ;(this.list = []),
- (this.index = 0),
- (this.hasUndo = !1),
- (this.hasRedo = !1),
- this.clearKey()
- }),
- (this.clearKey = function () {
- ;(m = 0), (k = null)
- })
- }
- var d,
- e = this,
- f = e.options.maxUndoCount || 20,
- g = e.options.maxInputCount || 20,
- h = new RegExp(domUtils.fillChar + '|</hr>', 'gi'),
- i = { ol: 1, ul: 1, table: 1, tbody: 1, tr: 1, body: 1 },
- j = e.options.autoClearEmptyNode
- ;(e.undoManger = new c()),
- (e.undoManger.editor = e),
- e.addListener('saveScene', function () {
- var a = Array.prototype.splice.call(arguments, 1)
- this.undoManger.save.apply(this.undoManger, a)
- }),
- e.addListener('reset', function (a, b) {
- b || this.undoManger.reset()
- }),
- (e.commands.redo = e.commands.undo =
- {
- execCommand: function (a) {
- this.undoManger[a]()
- },
- queryCommandState: function (a) {
- return this.undoManger[
- 'has' + ('undo' == a.toLowerCase() ? 'Undo' : 'Redo')
- ]
- ? 0
- : -1
- },
- notNeedUndo: 1
- })
- var k,
- l = { 16: 1, 17: 1, 18: 1, 37: 1, 38: 1, 39: 1, 40: 1 },
- m = 0,
- n = !1
- e.addListener('ready', function () {
- domUtils.on(this.body, 'compositionstart', function () {
- n = !0
- }),
- domUtils.on(this.body, 'compositionend', function () {
- n = !1
- })
- }),
- e.addshortcutkey({ Undo: 'ctrl+90', Redo: 'ctrl+89' })
- var o = !0
- e.addListener('keydown', function (a, b) {
- function c(a) {
- a.undoManger.save(!1, !0), a.fireEvent('selectionchange')
- }
- var e = this,
- f = b.keyCode || b.which
- if (!(l[f] || b.ctrlKey || b.metaKey || b.shiftKey || b.altKey)) {
- if (n) return
- if (!e.selection.getRange().collapsed)
- return e.undoManger.save(!1, !0), void (o = !1)
- 0 == e.undoManger.list.length && e.undoManger.save(!0),
- clearTimeout(d),
- (d = setTimeout(function () {
- if (n)
- var a = setInterval(function () {
- n || (c(e), clearInterval(a))
- }, 300)
- else c(e)
- }, 200)),
- (k = f),
- m++,
- m >= g && c(e)
- }
- }),
- e.addListener('keyup', function (a, b) {
- var c = b.keyCode || b.which
- if (!(l[c] || b.ctrlKey || b.metaKey || b.shiftKey || b.altKey)) {
- if (n) return
- o || (this.undoManger.save(!1, !0), (o = !0))
- }
- }),
- (e.stopCmdUndo = function () {
- e.__hasEnterExecCommand = !0
- }),
- (e.startCmdUndo = function () {
- e.__hasEnterExecCommand = !1
- })
- }),
- UE.plugin.register('copy', function () {
- function a() {
- ZeroClipboard.config({
- debug: !1,
- swfPath:
- b.options.UEDITOR_HOME_URL +
- 'third-party/zeroclipboard/ZeroClipboard.swf'
- })
- var a = (b.zeroclipboard = new ZeroClipboard())
- a.on('copy', function (a) {
- var c = a.client,
- d = b.selection.getRange(),
- e = document.createElement('div')
- e.appendChild(d.cloneContents()),
- c.setText(e.innerText || e.textContent),
- c.setHtml(e.innerHTML),
- d.select()
- }),
- a.on('mouseover mouseout', function (a) {
- var b = a.target
- 'mouseover' == a.type
- ? domUtils.addClass(b, 'edui-state-hover')
- : 'mouseout' == a.type &&
- domUtils.removeClasses(b, 'edui-state-hover')
- }),
- a.on('wrongflash noflash', function () {
- ZeroClipboard.destroy()
- })
- }
- var b = this
- return {
- bindEvents: {
- ready: function () {
- browser.ie ||
- (window.ZeroClipboard
- ? a()
- : utils.loadFile(
- document,
- {
- src:
- b.options.UEDITOR_HOME_URL +
- 'third-party/zeroclipboard/ZeroClipboard.js',
- tag: 'script',
- type: 'text/javascript',
- defer: 'defer'
- },
- function () {
- a()
- }
- ))
- }
- },
- commands: {
- copy: {
- execCommand: function (a) {
- b.document.execCommand('copy') || alert(b.getLang('copymsg'))
- }
- }
- }
- }
- }),
- (UE.plugins.paste = function () {
- function a(a) {
- var b = this.document
- if (!b.getElementById('baidu_pastebin')) {
- var c = this.selection.getRange(),
- d = c.createBookmark(),
- e = b.createElement('div')
- ;(e.id = 'baidu_pastebin'),
- browser.webkit &&
- e.appendChild(
- b.createTextNode(domUtils.fillChar + domUtils.fillChar)
- ),
- b.body.appendChild(e),
- (d.start.style.display = ''),
- (e.style.cssText =
- 'position:absolute;width:1px;height:1px;overflow:hidden;left:-1000px;white-space:nowrap;top:' +
- domUtils.getXY(d.start).y +
- 'px'),
- c.selectNodeContents(e).select(!0),
- setTimeout(function () {
- if (browser.webkit)
- for (
- var f, g = 0, h = b.querySelectorAll('#baidu_pastebin');
- (f = h[g++]);
- ) {
- if (!domUtils.isEmptyNode(f)) {
- e = f
- break
- }
- domUtils.remove(f)
- }
- try {
- e.parentNode.removeChild(e)
- } catch (i) {}
- c.moveToBookmark(d).select(!0), a(e)
- }, 0)
- }
- }
- function b(a) {
- return a.replace(/<(\/?)([\w\-]+)([^>]*)>/gi, function (a, b, c, d) {
- return (
- (c = c.toLowerCase()),
- { img: 1 }[c]
- ? a
- : ((d = d.replace(
- /([\w\-]*?)\s*=\s*(("([^"]*)")|('([^']*)')|([^\s>]+))/gi,
- function (a, b, c) {
- return { src: 1, href: 1, name: 1 }[b.toLowerCase()]
- ? b + '=' + c + ' '
- : ''
- }
- )),
- { span: 1, div: 1 }[c]
- ? ''
- : '<' + b + c + ' ' + utils.trim(d) + '>')
- )
- })
- }
- function c(a) {
- var c
- if (a.firstChild) {
- for (
- var h, i = domUtils.getElementsByTagName(a, 'span'), j = 0;
- (h = i[j++]);
- )
- ('_baidu_cut_start' != h.id && '_baidu_cut_end' != h.id) ||
- domUtils.remove(h)
- if (browser.webkit) {
- for (
- var k, l = a.querySelectorAll('div br'), j = 0;
- (k = l[j++]);
- ) {
- var m = k.parentNode
- 'DIV' == m.tagName &&
- 1 == m.childNodes.length &&
- ((m.innerHTML = '<p><br/></p>'), domUtils.remove(m))
- }
- for (
- var n, o = a.querySelectorAll('#baidu_pastebin'), j = 0;
- (n = o[j++]);
- ) {
- var p = d.document.createElement('p')
- for (n.parentNode.insertBefore(p, n); n.firstChild; )
- p.appendChild(n.firstChild)
- domUtils.remove(n)
- }
- for (var q, r = a.querySelectorAll('meta'), j = 0; (q = r[j++]); )
- domUtils.remove(q)
- var l = a.querySelectorAll('br')
- for (j = 0; (q = l[j++]); )
- /^apple-/i.test(q.className) && domUtils.remove(q)
- }
- if (browser.gecko) {
- var s = a.querySelectorAll('[_moz_dirty]')
- for (j = 0; (q = s[j++]); ) q.removeAttribute('_moz_dirty')
- }
- if (!browser.ie)
- for (
- var q, t = a.querySelectorAll('span.Apple-style-span'), j = 0;
- (q = t[j++]);
- )
- domUtils.remove(q, !0)
- ;(c = a.innerHTML), (c = UE.filterWord(c))
- var u = UE.htmlparser(c)
- if (
- (d.options.filterRules && UE.filterNode(u, d.options.filterRules),
- d.filterInputRule(u),
- browser.webkit)
- ) {
- var v = u.lastChild()
- v && 'element' == v.type && 'br' == v.tagName && u.removeChild(v),
- utils.each(d.body.querySelectorAll('div'), function (a) {
- domUtils.isEmptyBlock(a) && domUtils.remove(a, !0)
- })
- }
- if (
- ((c = { html: u.toHtml() }),
- d.fireEvent('beforepaste', c, u),
- !c.html)
- )
- return
- ;(u = UE.htmlparser(c.html, !0)),
- 1 === d.queryCommandState('pasteplain')
- ? d.execCommand(
- 'insertHtml',
- UE.filterNode(u, d.options.filterTxtRules).toHtml(),
- !0
- )
- : (UE.filterNode(u, d.options.filterTxtRules),
- (e = u.toHtml()),
- (f = c.html),
- (g = d.selection.getRange().createAddress(!0)),
- d.execCommand(
- 'insertHtml',
- d.getOpt('retainOnlyLabelPasted') === !0 ? b(f) : f,
- !0
- )),
- d.fireEvent('afterpaste', c)
- }
- }
- var d = this
- d.setOpt({ retainOnlyLabelPasted: !1 })
- var e, f, g
- d.addListener('pasteTransfer', function (a, c) {
- if (g && e && f && e != f) {
- var h = d.selection.getRange()
- if ((h.moveToAddress(g, !0), !h.collapsed)) {
- for (; !domUtils.isBody(h.startContainer); ) {
- var i = h.startContainer
- if (1 == i.nodeType) {
- if (((i = i.childNodes[h.startOffset]), !i)) {
- h.setStartBefore(h.startContainer)
- continue
- }
- var j = i.previousSibling
- j &&
- 3 == j.nodeType &&
- new RegExp('^[\n\r\t ' + domUtils.fillChar + ']*$').test(
- j.nodeValue
- ) &&
- h.setStartBefore(j)
- }
- if (0 != h.startOffset) break
- h.setStartBefore(h.startContainer)
- }
- for (; !domUtils.isBody(h.endContainer); ) {
- var k = h.endContainer
- if (1 == k.nodeType) {
- if (((k = k.childNodes[h.endOffset]), !k)) {
- h.setEndAfter(h.endContainer)
- continue
- }
- var l = k.nextSibling
- l &&
- 3 == l.nodeType &&
- new RegExp('^[\n\r\t' + domUtils.fillChar + ']*$').test(
- l.nodeValue
- ) &&
- h.setEndAfter(l)
- }
- if (
- h.endOffset !=
- h.endContainer[
- 3 == h.endContainer.nodeType ? 'nodeValue' : 'childNodes'
- ].length
- )
- break
- h.setEndAfter(h.endContainer)
- }
- }
- h.deleteContents(), h.select(!0), (d.__hasEnterExecCommand = !0)
- var m = f
- 2 === c ? (m = b(m)) : c && (m = e),
- d.execCommand('inserthtml', m, !0),
- (d.__hasEnterExecCommand = !1)
- for (
- var n = d.selection.getRange();
- !domUtils.isBody(n.startContainer) &&
- !n.startOffset &&
- n.startContainer[
- 3 == n.startContainer.nodeType ? 'nodeValue' : 'childNodes'
- ].length;
- )
- n.setStartBefore(n.startContainer)
- var o = n.createAddress(!0)
- g.endAddress = o.startAddress
- }
- }),
- d.addListener('ready', function () {
- domUtils.on(d.body, 'cut', function () {
- var a = d.selection.getRange()
- !a.collapsed && d.undoManger && d.undoManger.save()
- }),
- domUtils.on(
- d.body,
- browser.ie || browser.opera ? 'keydown' : 'paste',
- function (b) {
- ;((!browser.ie && !browser.opera) ||
- ((b.ctrlKey || b.metaKey) && '86' == b.keyCode)) &&
- a.call(d, function (a) {
- c(a)
- })
- }
- )
- }),
- (d.commands.paste = {
- execCommand: function (b) {
- browser.ie
- ? (a.call(d, function (a) {
- c(a)
- }),
- d.document.execCommand('paste'))
- : alert(d.getLang('pastemsg'))
- }
- })
- }),
- (UE.plugins.pasteplain = function () {
- var a = this
- a.setOpt({
- pasteplain: !1,
- filterTxtRules: (function () {
- function a(a) {
- ;(a.tagName = 'p'), a.setStyle()
- }
- function b(a) {
- a.parentNode.removeChild(a, !0)
- }
- return {
- '-': 'script style object iframe embed input select',
- p: { $: {} },
- br: { $: {} },
- div: function (a) {
- for (
- var b, c = UE.uNode.createElement('p');
- (b = a.firstChild());
- )
- 'text' != b.type && UE.dom.dtd.$block[b.tagName]
- ? c.firstChild()
- ? (a.parentNode.insertBefore(c, a),
- (c = UE.uNode.createElement('p')))
- : a.parentNode.insertBefore(b, a)
- : c.appendChild(b)
- c.firstChild() && a.parentNode.insertBefore(c, a),
- a.parentNode.removeChild(a)
- },
- ol: b,
- ul: b,
- dl: b,
- dt: b,
- dd: b,
- li: b,
- caption: a,
- th: a,
- tr: a,
- h1: a,
- h2: a,
- h3: a,
- h4: a,
- h5: a,
- h6: a,
- td: function (a) {
- var b = !!a.innerText()
- b &&
- a.parentNode.insertAfter(
- UE.uNode.createText(' '),
- a
- ),
- a.parentNode.removeChild(a, a.innerText())
- }
- }
- })()
- })
- var b = a.options.pasteplain
- a.commands.pasteplain = {
- queryCommandState: function () {
- return b ? 1 : 0
- },
- execCommand: function () {
- b = 0 | !b
- },
- notNeedUndo: 1
- }
- }),
- (UE.plugins.list = function () {
- function a(a) {
- var b = []
- for (var c in a) b.push(c)
- return b
- }
- function b(a) {
- var b = a.className
- return domUtils.hasClass(a, /custom_/)
- ? b.match(/custom_(\w+)/)[1]
- : domUtils.getStyle(a, 'list-style-type')
- }
- function c(a, c) {
- utils.each(domUtils.getElementsByTagName(a, 'ol ul'), function (f) {
- if (domUtils.inDoc(f, a)) {
- var g = f.parentNode
- if (g.tagName == f.tagName) {
- var h = b(f) || ('OL' == f.tagName ? 'decimal' : 'disc'),
- i = b(g) || ('OL' == g.tagName ? 'decimal' : 'disc')
- if (h == i) {
- var l = utils.indexOf(k[f.tagName], h)
- ;(l = l + 1 == k[f.tagName].length ? 0 : l + 1),
- e(f, k[f.tagName][l])
- }
- }
- var m = 0,
- n = 2
- domUtils.hasClass(f, /custom_/)
- ? (/[ou]l/i.test(g.tagName) && domUtils.hasClass(g, /custom_/)) ||
- (n = 1)
- : /[ou]l/i.test(g.tagName) &&
- domUtils.hasClass(g, /custom_/) &&
- (n = 3)
- var o = domUtils.getStyle(f, 'list-style-type')
- o && (f.style.cssText = 'list-style-type:' + o),
- (f.className =
- utils.trim(f.className.replace(/list-paddingleft-\w+/, '')) +
- ' list-paddingleft-' +
- n),
- utils.each(domUtils.getElementsByTagName(f, 'li'), function (a) {
- if ((a.style.cssText && (a.style.cssText = ''), !a.firstChild))
- return void domUtils.remove(a)
- if (a.parentNode === f) {
- if ((m++, domUtils.hasClass(f, /custom_/))) {
- var c = 1,
- d = b(f)
- if ('OL' == f.tagName) {
- if (d)
- switch (d) {
- case 'cn':
- case 'cn1':
- case 'cn2':
- m > 10 && (m % 10 == 0 || (m > 10 && m < 20))
- ? (c = 2)
- : m > 20 && (c = 3)
- break
- case 'num2':
- m > 9 && (c = 2)
- }
- a.className =
- 'list-' + j[d] + m + ' list-' + d + '-paddingleft-' + c
- } else
- a.className =
- 'list-' + j[d] + ' list-' + d + '-paddingleft'
- } else a.className = a.className.replace(/list-[\w\-]+/gi, '')
- var e = a.getAttribute('class')
- null === e ||
- e.replace(/\s/g, '') ||
- domUtils.removeAttributes(a, 'class')
- }
- }),
- !c &&
- d(
- f,
- f.tagName.toLowerCase(),
- b(f) || domUtils.getStyle(f, 'list-style-type'),
- !0
- )
- }
- })
- }
- function d(a, d, e, f) {
- var g = a.nextSibling
- g &&
- 1 == g.nodeType &&
- g.tagName.toLowerCase() == d &&
- (b(g) ||
- domUtils.getStyle(g, 'list-style-type') ||
- ('ol' == d ? 'decimal' : 'disc')) == e &&
- (domUtils.moveChild(g, a),
- 0 == g.childNodes.length && domUtils.remove(g)),
- g && domUtils.isFillChar(g) && domUtils.remove(g)
- var h = a.previousSibling
- h &&
- 1 == h.nodeType &&
- h.tagName.toLowerCase() == d &&
- (b(h) ||
- domUtils.getStyle(h, 'list-style-type') ||
- ('ol' == d ? 'decimal' : 'disc')) == e &&
- domUtils.moveChild(a, h),
- h && domUtils.isFillChar(h) && domUtils.remove(h),
- !f && domUtils.isEmptyBlock(a) && domUtils.remove(a),
- b(a) && c(a.ownerDocument, !0)
- }
- function e(a, b) {
- j[b] && (a.className = 'custom_' + b)
- try {
- domUtils.setStyle(a, 'list-style-type', b)
- } catch (c) {}
- }
- function f(a) {
- var b = a.previousSibling
- b && domUtils.isEmptyBlock(b) && domUtils.remove(b),
- (b = a.nextSibling),
- b && domUtils.isEmptyBlock(b) && domUtils.remove(b)
- }
- function g(a) {
- for (; a && !domUtils.isBody(a); ) {
- if ('TABLE' == a.nodeName) return null
- if ('LI' == a.nodeName) return a
- a = a.parentNode
- }
- }
- var h = this,
- i = { TD: 1, PRE: 1, BLOCKQUOTE: 1 },
- j = {
- cn: 'cn-1-',
- cn1: 'cn-2-',
- cn2: 'cn-3-',
- num: 'num-1-',
- num1: 'num-2-',
- num2: 'num-3-',
- dash: 'dash',
- dot: 'dot'
- }
- h.setOpt({
- autoTransWordToList: !1,
- insertorderedlist: {
- num: '',
- num1: '',
- num2: '',
- cn: '',
- cn1: '',
- cn2: '',
- decimal: '',
- 'lower-alpha': '',
- 'lower-roman': '',
- 'upper-alpha': '',
- 'upper-roman': ''
- },
- insertunorderedlist: {
- circle: '',
- disc: '',
- square: '',
- dash: '',
- dot: ''
- },
- listDefaultPaddingLeft: '30',
- listiconpath: 'http://bs.baidu.com/listicon/',
- maxListLevel: -1,
- disablePInList: !1
- })
- var k = {
- OL: a(h.options.insertorderedlist),
- UL: a(h.options.insertunorderedlist)
- },
- l = h.options.listiconpath
- for (var m in j)
- h.options.insertorderedlist.hasOwnProperty(m) ||
- h.options.insertunorderedlist.hasOwnProperty(m) ||
- delete j[m]
- h.ready(function () {
- var a = []
- for (var b in j) {
- if ('dash' == b || 'dot' == b)
- a.push(
- 'li.list-' + j[b] + '{background-image:url(' + l + j[b] + '.gif)}'
- ),
- a.push(
- 'ul.custom_' +
- b +
- '{list-style:none;}ul.custom_' +
- b +
- ' li{background-position:0 3px;background-repeat:no-repeat}'
- )
- else {
- for (var c = 0; c < 99; c++)
- a.push(
- 'li.list-' +
- j[b] +
- c +
- '{background-image:url(' +
- l +
- 'list-' +
- j[b] +
- c +
- '.gif)}'
- )
- a.push(
- 'ol.custom_' +
- b +
- '{list-style:none;}ol.custom_' +
- b +
- ' li{background-position:0 3px;background-repeat:no-repeat}'
- )
- }
- switch (b) {
- case 'cn':
- a.push('li.list-' + b + '-paddingleft-1{padding-left:25px}'),
- a.push('li.list-' + b + '-paddingleft-2{padding-left:40px}'),
- a.push('li.list-' + b + '-paddingleft-3{padding-left:55px}')
- break
- case 'cn1':
- a.push('li.list-' + b + '-paddingleft-1{padding-left:30px}'),
- a.push('li.list-' + b + '-paddingleft-2{padding-left:40px}'),
- a.push('li.list-' + b + '-paddingleft-3{padding-left:55px}')
- break
- case 'cn2':
- a.push('li.list-' + b + '-paddingleft-1{padding-left:40px}'),
- a.push('li.list-' + b + '-paddingleft-2{padding-left:55px}'),
- a.push('li.list-' + b + '-paddingleft-3{padding-left:68px}')
- break
- case 'num':
- case 'num1':
- a.push('li.list-' + b + '-paddingleft-1{padding-left:25px}')
- break
- case 'num2':
- a.push('li.list-' + b + '-paddingleft-1{padding-left:35px}'),
- a.push('li.list-' + b + '-paddingleft-2{padding-left:40px}')
- break
- case 'dash':
- a.push('li.list-' + b + '-paddingleft{padding-left:35px}')
- break
- case 'dot':
- a.push('li.list-' + b + '-paddingleft{padding-left:20px}')
- }
- }
- a.push('.list-paddingleft-1{padding-left:0}'),
- a.push(
- '.list-paddingleft-2{padding-left:' +
- h.options.listDefaultPaddingLeft +
- 'px}'
- ),
- a.push(
- '.list-paddingleft-3{padding-left:' +
- 2 * h.options.listDefaultPaddingLeft +
- 'px}'
- ),
- utils.cssRule(
- 'list',
- 'ol,ul{margin:0;pading:0;' +
- (browser.ie ? '' : 'width:95%') +
- '}li{clear:both;}' +
- a.join('\n'),
- h.document
- )
- }),
- h.ready(function () {
- domUtils.on(h.body, 'cut', function () {
- setTimeout(function () {
- var a,
- b = h.selection.getRange()
- if (
- !b.collapsed &&
- (a = domUtils.findParentByTagName(
- b.startContainer,
- 'li',
- !0
- )) &&
- !a.nextSibling &&
- domUtils.isEmptyBlock(a)
- ) {
- var c,
- d = a.parentNode
- if ((c = d.previousSibling))
- domUtils.remove(d),
- b.setStartAtLast(c).collapse(!0),
- b.select(!0)
- else if ((c = d.nextSibling))
- domUtils.remove(d),
- b.setStartAtFirst(c).collapse(!0),
- b.select(!0)
- else {
- var e = h.document.createElement('p')
- domUtils.fillNode(h.document, e),
- d.parentNode.insertBefore(e, d),
- domUtils.remove(d),
- b.setStart(e, 0).collapse(!0),
- b.select(!0)
- }
- }
- })
- })
- }),
- h.addListener('beforepaste', function (a, c) {
- var d,
- e = this,
- f = e.selection.getRange(),
- g = UE.htmlparser(c.html, !0)
- if ((d = domUtils.findParentByTagName(f.startContainer, 'li', !0))) {
- var h = d.parentNode,
- i = 'OL' == h.tagName ? 'ul' : 'ol'
- utils.each(g.getNodesByTagName(i), function (c) {
- if (((c.tagName = h.tagName), c.setAttr(), c.parentNode === g))
- a = b(h) || ('OL' == h.tagName ? 'decimal' : 'disc')
- else {
- var d = c.parentNode.getAttr('class')
- ;(a =
- d && /custom_/.test(d)
- ? d.match(/custom_(\w+)/)[1]
- : c.parentNode.getStyle('list-style-type')),
- a || (a = 'OL' == h.tagName ? 'decimal' : 'disc')
- }
- var e = utils.indexOf(k[h.tagName], a)
- c.parentNode !== g &&
- (e = e + 1 == k[h.tagName].length ? 0 : e + 1)
- var f = k[h.tagName][e]
- j[f]
- ? c.setAttr('class', 'custom_' + f)
- : c.setStyle('list-style-type', f)
- })
- }
- c.html = g.toHtml()
- }),
- h.getOpt('disablePInList') === !0 &&
- h.addOutputRule(function (a) {
- utils.each(a.getNodesByTagName('li'), function (a) {
- var b = [],
- c = 0
- utils.each(a.children, function (d) {
- if ('p' == d.tagName) {
- for (var e; (e = d.children.pop()); )
- b.splice(c, 0, e), (e.parentNode = a), (lastNode = e)
- if (
- ((e = b[b.length - 1]),
- !e || 'element' != e.type || 'br' != e.tagName)
- ) {
- var f = UE.uNode.createElement('br')
- ;(f.parentNode = a), b.push(f)
- }
- c = b.length
- }
- }),
- b.length && (a.children = b)
- })
- }),
- h.addInputRule(function (a) {
- function b(a, b) {
- var e = b.firstChild()
- if (
- e &&
- 'element' == e.type &&
- 'span' == e.tagName &&
- /Wingdings|Symbol/.test(e.getStyle('font-family'))
- ) {
- for (var f in d) if (d[f] == e.data) return f
- return 'disc'
- }
- for (var f in c) if (c[f].test(a)) return f
- }
- if (
- (utils.each(a.getNodesByTagName('li'), function (a) {
- for (
- var b, c = UE.uNode.createElement('p'), d = 0;
- (b = a.children[d]);
- )
- 'text' == b.type || dtd.p[b.tagName]
- ? c.appendChild(b)
- : c.firstChild()
- ? (a.insertBefore(c, b),
- (c = UE.uNode.createElement('p')),
- (d += 2))
- : d++
- ;((c.firstChild() && !c.parentNode) || !a.firstChild()) &&
- a.appendChild(c),
- c.firstChild() || c.innerHTML(browser.ie ? ' ' : '<br/>')
- var e = a.firstChild(),
- f = e.lastChild()
- f && 'text' == f.type && /^\s*$/.test(f.data) && e.removeChild(f)
- }),
- h.options.autoTransWordToList)
- ) {
- var c = {
- num1: /^\d+\)/,
- decimal: /^\d+\./,
- 'lower-alpha': /^[a-z]+\)/,
- 'upper-alpha': /^[A-Z]+\./,
- cn: /^[\u4E00\u4E8C\u4E09\u56DB\u516d\u4e94\u4e03\u516b\u4e5d]+[\u3001]/,
- cn2: /^\([\u4E00\u4E8C\u4E09\u56DB\u516d\u4e94\u4e03\u516b\u4e5d]+\)/
- },
- d = { square: 'n' }
- utils.each(a.getNodesByTagName('p'), function (a) {
- function d(a, b, d) {
- if ('ol' == a.tagName)
- if (browser.ie) {
- var e = b.firstChild()
- 'element' == e.type &&
- 'span' == e.tagName &&
- c[d].test(e.innerText()) &&
- b.removeChild(e)
- } else b.innerHTML(b.innerHTML().replace(c[d], ''))
- else b.removeChild(b.firstChild())
- var f = UE.uNode.createElement('li')
- f.appendChild(b), a.appendChild(f)
- }
- if ('MsoListParagraph' == a.getAttr('class')) {
- a.setStyle('margin', ''),
- a.setStyle('margin-left', ''),
- a.setAttr('class', '')
- var e,
- f = a,
- g = a
- if ('li' != a.parentNode.tagName && (e = b(a.innerText(), a))) {
- var i = UE.uNode.createElement(
- h.options.insertorderedlist.hasOwnProperty(e) ? 'ol' : 'ul'
- )
- for (
- j[e]
- ? i.setAttr('class', 'custom_' + e)
- : i.setStyle('list-style-type', e);
- a && 'li' != a.parentNode.tagName && b(a.innerText(), a);
- )
- (f = a.nextSibling()),
- f || a.parentNode.insertBefore(i, a),
- d(i, a, e),
- (a = f)
- !i.parentNode &&
- a &&
- a.parentNode &&
- a.parentNode.insertBefore(i, a)
- }
- var k = g.firstChild()
- k &&
- 'element' == k.type &&
- 'span' == k.tagName &&
- /^\s*( )+\s*$/.test(k.innerText()) &&
- k.parentNode.removeChild(k)
- }
- })
- }
- }),
- h.addListener('contentchange', function () {
- c(h.document)
- }),
- h.addListener('keydown', function (a, b) {
- function c() {
- b.preventDefault ? b.preventDefault() : (b.returnValue = !1),
- h.fireEvent('contentchange'),
- h.undoManger && h.undoManger.save()
- }
- function d(a, b) {
- for (; a && !domUtils.isBody(a); ) {
- if (b(a)) return null
- if (1 == a.nodeType && /[ou]l/i.test(a.tagName)) return a
- a = a.parentNode
- }
- return null
- }
- var e = b.keyCode || b.which
- if (13 == e && !b.shiftKey) {
- var g = h.selection.getRange(),
- i = domUtils.findParent(
- g.startContainer,
- function (a) {
- return domUtils.isBlockElm(a)
- },
- !0
- ),
- j = domUtils.findParentByTagName(g.startContainer, 'li', !0)
- if (i && 'PRE' != i.tagName && !j) {
- var k = i.innerHTML.replace(
- new RegExp(domUtils.fillChar, 'g'),
- ''
- )
- ;/^\s*1\s*\.[^\d]/.test(k) &&
- ((i.innerHTML = k.replace(/^\s*1\s*\./, '')),
- g.setStartAtLast(i).collapse(!0).select(),
- (h.__hasEnterExecCommand = !0),
- h.execCommand('insertorderedlist'),
- (h.__hasEnterExecCommand = !1))
- }
- var l = h.selection.getRange(),
- m = d(l.startContainer, function (a) {
- return 'TABLE' == a.tagName
- }),
- n = l.collapsed
- ? m
- : d(l.endContainer, function (a) {
- return 'TABLE' == a.tagName
- })
- if (m && n && m === n) {
- if (!l.collapsed) {
- if (
- ((m = domUtils.findParentByTagName(
- l.startContainer,
- 'li',
- !0
- )),
- (n = domUtils.findParentByTagName(l.endContainer, 'li', !0)),
- !m || !n || m !== n)
- ) {
- var o = l.cloneRange(),
- p = o.collapse(!1).createBookmark()
- l.deleteContents(), o.moveToBookmark(p)
- var j = domUtils.findParentByTagName(
- o.startContainer,
- 'li',
- !0
- )
- return f(j), o.select(), void c()
- }
- if (
- (l.deleteContents(),
- (j = domUtils.findParentByTagName(
- l.startContainer,
- 'li',
- !0
- )),
- j && domUtils.isEmptyBlock(j))
- )
- return (
- (v = j.previousSibling),
- (next = j.nextSibling),
- (s = h.document.createElement('p')),
- domUtils.fillNode(h.document, s),
- (q = j.parentNode),
- v && next
- ? (l.setStart(next, 0).collapse(!0).select(!0),
- domUtils.remove(j))
- : ((v || next) && v
- ? j.parentNode.parentNode.insertBefore(
- s,
- q.nextSibling
- )
- : q.parentNode.insertBefore(s, q),
- domUtils.remove(j),
- q.firstChild || domUtils.remove(q),
- l.setStart(s, 0).setCursor()),
- void c()
- )
- }
- if (
- (j = domUtils.findParentByTagName(l.startContainer, 'li', !0))
- ) {
- if (domUtils.isEmptyBlock(j)) {
- p = l.createBookmark()
- var q = j.parentNode
- if (
- (j !== q.lastChild
- ? (domUtils.breakParent(j, q), f(j))
- : (q.parentNode.insertBefore(j, q.nextSibling),
- domUtils.isEmptyNode(q) && domUtils.remove(q)),
- !dtd.$list[j.parentNode.tagName])
- )
- if (domUtils.isBlockElm(j.firstChild))
- domUtils.remove(j, !0)
- else {
- for (
- s = h.document.createElement('p'),
- j.parentNode.insertBefore(s, j);
- j.firstChild;
- )
- s.appendChild(j.firstChild)
- domUtils.remove(j)
- }
- l.moveToBookmark(p).select()
- } else {
- var r = j.firstChild
- if (!r || !domUtils.isBlockElm(r)) {
- var s = h.document.createElement('p')
- for (
- !j.firstChild && domUtils.fillNode(h.document, s);
- j.firstChild;
- )
- s.appendChild(j.firstChild)
- j.appendChild(s), (r = s)
- }
- var t = h.document.createElement('span')
- l.insertNode(t), domUtils.breakParent(t, j)
- var u = t.nextSibling
- ;(r = u.firstChild),
- r ||
- ((s = h.document.createElement('p')),
- domUtils.fillNode(h.document, s),
- u.appendChild(s),
- (r = s)),
- domUtils.isEmptyNode(r) &&
- ((r.innerHTML = ''), domUtils.fillNode(h.document, r)),
- l.setStart(r, 0).collapse(!0).shrinkBoundary().select(),
- domUtils.remove(t)
- var v = u.previousSibling
- v &&
- domUtils.isEmptyBlock(v) &&
- ((v.innerHTML = '<p></p>'),
- domUtils.fillNode(h.document, v.firstChild))
- }
- c()
- }
- }
- }
- if (
- 8 == e &&
- ((l = h.selection.getRange()),
- l.collapsed &&
- domUtils.isStartInblock(l) &&
- ((o = l.cloneRange().trimBoundary()),
- (j = domUtils.findParentByTagName(l.startContainer, 'li', !0)),
- j && domUtils.isStartInblock(o)))
- ) {
- if (
- ((m = domUtils.findParentByTagName(l.startContainer, 'p', !0)),
- m && m !== j.firstChild)
- ) {
- var q = domUtils.findParentByTagName(m, ['ol', 'ul'])
- return (
- domUtils.breakParent(m, q),
- f(m),
- h.fireEvent('contentchange'),
- l.setStart(m, 0).setCursor(!1, !0),
- h.fireEvent('saveScene'),
- void domUtils.preventDefault(b)
- )
- }
- if (j && (v = j.previousSibling)) {
- if (46 == e && j.childNodes.length) return
- if (
- (dtd.$list[v.tagName] && (v = v.lastChild),
- h.undoManger && h.undoManger.save(),
- (r = j.firstChild),
- domUtils.isBlockElm(r))
- )
- if (domUtils.isEmptyNode(r))
- for (
- v.appendChild(r), l.setStart(r, 0).setCursor(!1, !0);
- j.firstChild;
- )
- v.appendChild(j.firstChild)
- else
- (t = h.document.createElement('span')),
- l.insertNode(t),
- domUtils.isEmptyBlock(v) && (v.innerHTML = ''),
- domUtils.moveChild(j, v),
- l.setStartBefore(t).collapse(!0).select(!0),
- domUtils.remove(t)
- else if (domUtils.isEmptyNode(j)) {
- var s = h.document.createElement('p')
- v.appendChild(s), l.setStart(s, 0).setCursor()
- } else
- for (
- l.setEnd(v, v.childNodes.length).collapse().select(!0);
- j.firstChild;
- )
- v.appendChild(j.firstChild)
- return (
- domUtils.remove(j),
- h.fireEvent('contentchange'),
- h.fireEvent('saveScene'),
- void domUtils.preventDefault(b)
- )
- }
- if (j && !j.previousSibling) {
- var q = j.parentNode,
- p = l.createBookmark()
- if (domUtils.isTagNode(q.parentNode, 'ol ul'))
- q.parentNode.insertBefore(j, q),
- domUtils.isEmptyNode(q) && domUtils.remove(q)
- else {
- for (; j.firstChild; )
- q.parentNode.insertBefore(j.firstChild, q)
- domUtils.remove(j),
- domUtils.isEmptyNode(q) && domUtils.remove(q)
- }
- return (
- l.moveToBookmark(p).setCursor(!1, !0),
- h.fireEvent('contentchange'),
- h.fireEvent('saveScene'),
- void domUtils.preventDefault(b)
- )
- }
- }
- }),
- h.addListener('keyup', function (a, c) {
- var e = c.keyCode || c.which
- if (8 == e) {
- var f,
- g = h.selection.getRange()
- ;(f = domUtils.findParentByTagName(
- g.startContainer,
- ['ol', 'ul'],
- !0
- )) &&
- d(
- f,
- f.tagName.toLowerCase(),
- b(f) || domUtils.getComputedStyle(f, 'list-style-type'),
- !0
- )
- }
- }),
- h.addListener('tabkeydown', function () {
- function a(a) {
- if (h.options.maxListLevel != -1) {
- for (var b = a.parentNode, c = 0; /[ou]l/i.test(b.tagName); )
- c++, (b = b.parentNode)
- if (c >= h.options.maxListLevel) return !0
- }
- }
- var c = h.selection.getRange(),
- f = domUtils.findParentByTagName(c.startContainer, 'li', !0)
- if (f) {
- var g
- if (!c.collapsed) {
- h.fireEvent('saveScene'), (g = c.createBookmark())
- for (var i, j, l = 0, m = domUtils.findParents(f); (j = m[l++]); )
- if (domUtils.isTagNode(j, 'ol ul')) {
- i = j
- break
- }
- var n = f
- if (g.end)
- for (
- ;
- n &&
- !(
- domUtils.getPosition(n, g.end) & domUtils.POSITION_FOLLOWING
- );
- )
- if (a(n))
- n = domUtils.getNextDomNode(n, !1, null, function (a) {
- return a !== i
- })
- else {
- var o = n.parentNode,
- p = h.document.createElement(o.tagName),
- q = utils.indexOf(
- k[p.tagName],
- b(o) || domUtils.getComputedStyle(o, 'list-style-type')
- ),
- r = q + 1 == k[p.tagName].length ? 0 : q + 1,
- s = k[p.tagName][r]
- for (
- e(p, s), o.insertBefore(p, n);
- n &&
- !(
- domUtils.getPosition(n, g.end) &
- domUtils.POSITION_FOLLOWING
- );
- ) {
- if (
- ((f = n.nextSibling),
- p.appendChild(n),
- !f || domUtils.isTagNode(f, 'ol ul'))
- ) {
- if (f)
- for (; (f = f.firstChild) && 'LI' != f.tagName; );
- else
- f = domUtils.getNextDomNode(
- n,
- !1,
- null,
- function (a) {
- return a !== i
- }
- )
- break
- }
- n = f
- }
- d(p, p.tagName.toLowerCase(), s), (n = f)
- }
- return (
- h.fireEvent('contentchange'), c.moveToBookmark(g).select(), !0
- )
- }
- if (a(f)) return !0
- var o = f.parentNode,
- p = h.document.createElement(o.tagName),
- q = utils.indexOf(
- k[p.tagName],
- b(o) || domUtils.getComputedStyle(o, 'list-style-type')
- )
- q = q + 1 == k[p.tagName].length ? 0 : q + 1
- var s = k[p.tagName][q]
- if ((e(p, s), domUtils.isStartInblock(c)))
- return (
- h.fireEvent('saveScene'),
- (g = c.createBookmark()),
- o.insertBefore(p, f),
- p.appendChild(f),
- d(p, p.tagName.toLowerCase(), s),
- h.fireEvent('contentchange'),
- c.moveToBookmark(g).select(!0),
- !0
- )
- }
- }),
- (h.commands.insertorderedlist = h.commands.insertunorderedlist =
- {
- execCommand: function (a, c) {
- c ||
- (c =
- 'insertorderedlist' == a.toLowerCase() ? 'decimal' : 'disc')
- var f = this,
- h = this.selection.getRange(),
- j = function (a) {
- return 1 == a.nodeType
- ? 'br' != a.tagName.toLowerCase()
- : !domUtils.isWhitespace(a)
- },
- k = 'insertorderedlist' == a.toLowerCase() ? 'ol' : 'ul',
- l = f.document.createDocumentFragment()
- h.adjustmentBoundary().shrinkBoundary()
- var m,
- n,
- o,
- p,
- q = h.createBookmark(!0),
- r = g(f.document.getElementById(q.start)),
- s = 0,
- t = g(f.document.getElementById(q.end)),
- u = 0
- if (r || t) {
- if (
- (r && (m = r.parentNode),
- q.end || (t = r),
- t && (n = t.parentNode),
- m === n)
- ) {
- for (; r !== t; ) {
- if (
- ((p = r),
- (r = r.nextSibling),
- !domUtils.isBlockElm(p.firstChild))
- ) {
- for (
- var v = f.document.createElement('p');
- p.firstChild;
- )
- v.appendChild(p.firstChild)
- p.appendChild(v)
- }
- l.appendChild(p)
- }
- if (
- ((p = f.document.createElement('span')),
- m.insertBefore(p, t),
- !domUtils.isBlockElm(t.firstChild))
- ) {
- for (v = f.document.createElement('p'); t.firstChild; )
- v.appendChild(t.firstChild)
- t.appendChild(v)
- }
- l.appendChild(t),
- domUtils.breakParent(p, m),
- domUtils.isEmptyNode(p.previousSibling) &&
- domUtils.remove(p.previousSibling),
- domUtils.isEmptyNode(p.nextSibling) &&
- domUtils.remove(p.nextSibling)
- var w =
- b(m) ||
- domUtils.getComputedStyle(m, 'list-style-type') ||
- ('insertorderedlist' == a.toLowerCase()
- ? 'decimal'
- : 'disc')
- if (m.tagName.toLowerCase() == k && w == c) {
- for (
- var x, y = 0, z = f.document.createDocumentFragment();
- (x = l.firstChild);
- )
- if (domUtils.isTagNode(x, 'ol ul')) z.appendChild(x)
- else
- for (; x.firstChild; )
- z.appendChild(x.firstChild), domUtils.remove(x)
- p.parentNode.insertBefore(z, p)
- } else
- (o = f.document.createElement(k)),
- e(o, c),
- o.appendChild(l),
- p.parentNode.insertBefore(o, p)
- return (
- domUtils.remove(p),
- o && d(o, k, c),
- void h.moveToBookmark(q).select()
- )
- }
- if (r) {
- for (; r; ) {
- if (((p = r.nextSibling), domUtils.isTagNode(r, 'ol ul')))
- l.appendChild(r)
- else {
- for (
- var A = f.document.createDocumentFragment(), B = 0;
- r.firstChild;
- )
- domUtils.isBlockElm(r.firstChild) && (B = 1),
- A.appendChild(r.firstChild)
- if (B) l.appendChild(A)
- else {
- var C = f.document.createElement('p')
- C.appendChild(A), l.appendChild(C)
- }
- domUtils.remove(r)
- }
- r = p
- }
- m.parentNode.insertBefore(l, m.nextSibling),
- domUtils.isEmptyNode(m)
- ? (h.setStartBefore(m), domUtils.remove(m))
- : h.setStartAfter(m),
- (s = 1)
- }
- if (t && domUtils.inDoc(n, f.document)) {
- for (r = n.firstChild; r && r !== t; ) {
- if (((p = r.nextSibling), domUtils.isTagNode(r, 'ol ul')))
- l.appendChild(r)
- else {
- for (
- A = f.document.createDocumentFragment(), B = 0;
- r.firstChild;
- )
- domUtils.isBlockElm(r.firstChild) && (B = 1),
- A.appendChild(r.firstChild)
- B
- ? l.appendChild(A)
- : ((C = f.document.createElement('p')),
- C.appendChild(A),
- l.appendChild(C)),
- domUtils.remove(r)
- }
- r = p
- }
- var D = domUtils.createElement(f.document, 'div', {
- tmpDiv: 1
- })
- domUtils.moveChild(t, D),
- l.appendChild(D),
- domUtils.remove(t),
- n.parentNode.insertBefore(l, n),
- h.setEndBefore(n),
- domUtils.isEmptyNode(n) && domUtils.remove(n),
- (u = 1)
- }
- }
- s || h.setStartBefore(f.document.getElementById(q.start)),
- q.end && !u && h.setEndAfter(f.document.getElementById(q.end)),
- h.enlarge(!0, function (a) {
- return i[a.tagName]
- }),
- (l = f.document.createDocumentFragment())
- for (
- var E,
- F = h.createBookmark(),
- G = domUtils.getNextDomNode(F.start, !1, j),
- H = h.cloneRange(),
- I = domUtils.isBlockElm;
- G &&
- G !== F.end &&
- domUtils.getPosition(G, F.end) & domUtils.POSITION_PRECEDING;
- )
- if (3 == G.nodeType || dtd.li[G.tagName]) {
- if (1 == G.nodeType && dtd.$list[G.tagName]) {
- for (; G.firstChild; ) l.appendChild(G.firstChild)
- ;(E = domUtils.getNextDomNode(G, !1, j)),
- domUtils.remove(G),
- (G = E)
- continue
- }
- for (
- E = G, H.setStartBefore(G);
- G && G !== F.end && (!I(G) || domUtils.isBookmarkNode(G));
- )
- (E = G),
- (G = domUtils.getNextDomNode(G, !1, null, function (a) {
- return !i[a.tagName]
- }))
- G &&
- I(G) &&
- ((p = domUtils.getNextDomNode(E, !1, j)),
- p &&
- domUtils.isBookmarkNode(p) &&
- ((G = domUtils.getNextDomNode(p, !1, j)), (E = p))),
- H.setEndAfter(E),
- (G = domUtils.getNextDomNode(E, !1, j))
- var J = h.document.createElement('li')
- if (
- (J.appendChild(H.extractContents()),
- domUtils.isEmptyNode(J))
- ) {
- for (var E = h.document.createElement('p'); J.firstChild; )
- E.appendChild(J.firstChild)
- J.appendChild(E)
- }
- l.appendChild(J)
- } else G = domUtils.getNextDomNode(G, !0, j)
- h.moveToBookmark(F).collapse(!0),
- (o = f.document.createElement(k)),
- e(o, c),
- o.appendChild(l),
- h.insertNode(o),
- d(o, k, c)
- for (
- var x, y = 0, K = domUtils.getElementsByTagName(o, 'div');
- (x = K[y++]);
- )
- x.getAttribute('tmpDiv') && domUtils.remove(x, !0)
- h.moveToBookmark(q).select()
- },
- queryCommandState: function (a) {
- for (
- var b,
- c = 'insertorderedlist' == a.toLowerCase() ? 'ol' : 'ul',
- d = this.selection.getStartElementPath(),
- e = 0;
- (b = d[e++]);
- ) {
- if ('TABLE' == b.nodeName) return 0
- if (c == b.nodeName.toLowerCase()) return 1
- }
- return 0
- },
- queryCommandValue: function (a) {
- for (
- var c,
- d,
- e = 'insertorderedlist' == a.toLowerCase() ? 'ol' : 'ul',
- f = this.selection.getStartElementPath(),
- g = 0;
- (d = f[g++]);
- ) {
- if ('TABLE' == d.nodeName) {
- c = null
- break
- }
- if (e == d.nodeName.toLowerCase()) {
- c = d
- break
- }
- }
- return c
- ? b(c) || domUtils.getComputedStyle(c, 'list-style-type')
- : null
- }
- })
- }),
- (function () {
- var a = {
- textarea: function (a, b) {
- var c = b.ownerDocument.createElement('textarea')
- return (
- (c.style.cssText =
- 'position:absolute;resize:none;width:100%;height:100%;border:0;padding:0;margin:0;overflow-y:auto;'),
- browser.ie &&
- browser.version < 8 &&
- ((c.style.width = b.offsetWidth + 'px'),
- (c.style.height = b.offsetHeight + 'px'),
- (b.onresize = function () {
- ;(c.style.width = b.offsetWidth + 'px'),
- (c.style.height = b.offsetHeight + 'px')
- })),
- b.appendChild(c),
- {
- setContent: function (a) {
- c.value = a
- },
- getContent: function () {
- return c.value
- },
- select: function () {
- var a
- browser.ie
- ? ((a = c.createTextRange()), a.collapse(!0), a.select())
- : (c.setSelectionRange(0, 0), c.focus())
- },
- dispose: function () {
- b.removeChild(c), (b.onresize = null), (c = null), (b = null)
- }
- }
- )
- },
- codemirror: function (a, b) {
- var c = window.CodeMirror(b, {
- mode: 'text/html',
- tabMode: 'indent',
- lineNumbers: !0,
- lineWrapping: !0
- }),
- d = c.getWrapperElement()
- return (
- (d.style.cssText =
- 'position:absolute;left:0;top:0;width:100%;height:100%;font-family:consolas,"Courier new",monospace;font-size:13px;'),
- (c.getScrollerElement().style.cssText =
- 'position:absolute;left:0;top:0;width:100%;height:100%;'),
- c.refresh(),
- {
- getCodeMirror: function () {
- return c
- },
- setContent: function (a) {
- c.setValue(a)
- },
- getContent: function () {
- return c.getValue()
- },
- select: function () {
- c.focus()
- },
- dispose: function () {
- b.removeChild(d), (d = null), (c = null)
- }
- }
- )
- }
- }
- UE.plugins.source = function () {
- function b(b) {
- return a[
- 'codemirror' == f.sourceEditor && window.CodeMirror
- ? 'codemirror'
- : 'textarea'
- ](e, b)
- }
- var c,
- d,
- e = this,
- f = this.options,
- g = !1
- ;(f.sourceEditor = browser.ie
- ? 'textarea'
- : f.sourceEditor || 'codemirror'),
- e.setOpt({ sourceEditorFirst: !1 })
- var h, i, j
- e.commands.source = {
- execCommand: function () {
- if ((g = !g)) {
- ;(j = e.selection.getRange().createAddress(!1, !0)),
- e.undoManger && e.undoManger.save(!0),
- browser.gecko && (e.body.contentEditable = !1),
- (h = e.iframe.style.cssText),
- (e.iframe.style.cssText +=
- 'position:absolute;left:-32768px;top:-32768px;'),
- e.fireEvent('beforegetcontent')
- var a = UE.htmlparser(e.body.innerHTML)
- e.filterOutputRule(a),
- a.traversal(function (a) {
- if ('element' == a.type)
- switch (a.tagName) {
- case 'td':
- case 'th':
- case 'caption':
- a.children &&
- 1 == a.children.length &&
- 'br' == a.firstChild().tagName &&
- a.removeChild(a.firstChild())
- break
- case 'pre':
- a.innerText(a.innerText().replace(/ /g, ' '))
- }
- }),
- e.fireEvent('aftergetcontent')
- var f = a.toHtml(!0)
- ;(c = b(e.iframe.parentNode)),
- c.setContent(f),
- (d = e.setContent),
- (e.setContent = function (a) {
- var b = UE.htmlparser(a)
- e.filterInputRule(b), (a = b.toHtml()), c.setContent(a)
- }),
- setTimeout(function () {
- c.select(),
- e.addListener('fullscreenchanged', function () {
- try {
- c.getCodeMirror().refresh()
- } catch (a) {}
- })
- }),
- (i = e.getContent),
- (e.getContent = function () {
- return (
- c.getContent() ||
- '<p>' + (browser.ie ? '' : '<br/>') + '</p>'
- )
- })
- } else {
- e.iframe.style.cssText = h
- var k =
- c.getContent() || '<p>' + (browser.ie ? '' : '<br/>') + '</p>'
- ;(k = k.replace(
- new RegExp('[\\r\\t\\n ]*</?(\\w+)\\s*(?:[^>]*)>', 'g'),
- function (a, b) {
- return b && !dtd.$inlineWithA[b.toLowerCase()]
- ? a.replace(/(^[\n\r\t ]*)|([\n\r\t ]*$)/g, '')
- : a.replace(/(^[\n\r\t]*)|([\n\r\t]*$)/g, '')
- }
- )),
- (e.setContent = d),
- e.setContent(k),
- c.dispose(),
- (c = null),
- (e.getContent = i)
- var l = e.body.firstChild
- if (
- (l ||
- ((e.body.innerHTML =
- '<p>' + (browser.ie ? '' : '<br/>') + '</p>'),
- (l = e.body.firstChild)),
- e.undoManger && e.undoManger.save(!0),
- browser.gecko)
- ) {
- var m = document.createElement('input')
- ;(m.style.cssText = 'position:absolute;left:0;top:-32768px'),
- document.body.appendChild(m),
- (e.body.contentEditable = !1),
- setTimeout(function () {
- domUtils.setViewportOffset(m, { left: -32768, top: 0 }),
- m.focus(),
- setTimeout(function () {
- ;(e.body.contentEditable = !0),
- e.selection.getRange().moveToAddress(j).select(!0),
- domUtils.remove(m)
- })
- })
- } else
- try {
- e.selection.getRange().moveToAddress(j).select(!0)
- } catch (n) {}
- }
- this.fireEvent('sourcemodechanged', g)
- },
- queryCommandState: function () {
- return 0 | g
- },
- notNeedUndo: 1
- }
- var k = e.queryCommandState
- ;(e.queryCommandState = function (a) {
- return (
- (a = a.toLowerCase()),
- g
- ? a in { source: 1, fullscreen: 1 }
- ? 1
- : -1
- : k.apply(this, arguments)
- )
- }),
- 'codemirror' == f.sourceEditor &&
- e.addListener('ready', function () {
- utils.loadFile(
- document,
- {
- src:
- f.codeMirrorJsUrl ||
- f.UEDITOR_HOME_URL + 'third-party/codemirror/codemirror.js',
- tag: 'script',
- type: 'text/javascript',
- defer: 'defer'
- },
- function () {
- f.sourceEditorFirst &&
- setTimeout(function () {
- e.execCommand('source')
- }, 0)
- }
- ),
- utils.loadFile(document, {
- tag: 'link',
- rel: 'stylesheet',
- type: 'text/css',
- href:
- f.codeMirrorCssUrl ||
- f.UEDITOR_HOME_URL + 'third-party/codemirror/codemirror.css'
- })
- })
- }
- })(),
- (UE.plugins.enterkey = function () {
- var a,
- b = this,
- c = b.options.enterTag
- b.addListener('keyup', function (c, d) {
- var e = d.keyCode || d.which
- if (13 == e) {
- var f,
- g = b.selection.getRange(),
- h = g.startContainer
- if (browser.ie) b.fireEvent('saveScene', !0, !0)
- else {
- if (/h\d/i.test(a)) {
- if (browser.gecko) {
- var i = domUtils.findParentByTagName(
- h,
- [
- 'h1',
- 'h2',
- 'h3',
- 'h4',
- 'h5',
- 'h6',
- 'blockquote',
- 'caption',
- 'table'
- ],
- !0
- )
- i || (b.document.execCommand('formatBlock', !1, '<p>'), (f = 1))
- } else if (1 == h.nodeType) {
- var j,
- k = b.document.createTextNode('')
- if (
- (g.insertNode(k),
- (j = domUtils.findParentByTagName(k, 'div', !0)))
- ) {
- for (var l = b.document.createElement('p'); j.firstChild; )
- l.appendChild(j.firstChild)
- j.parentNode.insertBefore(l, j),
- domUtils.remove(j),
- g.setStartBefore(k).setCursor(),
- (f = 1)
- }
- domUtils.remove(k)
- }
- b.undoManger && f && b.undoManger.save()
- }
- browser.opera && g.select()
- }
- }
- }),
- b.addListener('keydown', function (d, e) {
- var f = e.keyCode || e.which
- if (13 == f) {
- if (b.fireEvent('beforeenterkeydown'))
- return void domUtils.preventDefault(e)
- b.fireEvent('saveScene', !0, !0), (a = '')
- var g = b.selection.getRange()
- if (!g.collapsed) {
- var h = g.startContainer,
- i = g.endContainer,
- j = domUtils.findParentByTagName(h, 'td', !0),
- k = domUtils.findParentByTagName(i, 'td', !0)
- if ((j && k && j !== k) || (!j && k) || (j && !k))
- return void (e.preventDefault
- ? e.preventDefault()
- : (e.returnValue = !1))
- }
- if ('p' == c)
- browser.ie ||
- ((h = domUtils.findParentByTagName(
- g.startContainer,
- [
- 'ol',
- 'ul',
- 'p',
- 'h1',
- 'h2',
- 'h3',
- 'h4',
- 'h5',
- 'h6',
- 'blockquote',
- 'caption'
- ],
- !0
- )),
- h || browser.opera
- ? ((a = h.tagName),
- 'p' == h.tagName.toLowerCase() &&
- browser.gecko &&
- domUtils.removeDirtyAttr(h))
- : (b.document.execCommand('formatBlock', !1, '<p>'),
- browser.gecko &&
- ((g = b.selection.getRange()),
- (h = domUtils.findParentByTagName(
- g.startContainer,
- 'p',
- !0
- )),
- h && domUtils.removeDirtyAttr(h))))
- else if (
- (e.preventDefault ? e.preventDefault() : (e.returnValue = !1),
- g.collapsed)
- ) {
- ;(m = g.document.createElement('br')), g.insertNode(m)
- var l = m.parentNode
- l.lastChild === m
- ? (m.parentNode.insertBefore(m.cloneNode(!0), m),
- g.setStartBefore(m))
- : g.setStartAfter(m),
- g.setCursor()
- } else if (
- (g.deleteContents(),
- (h = g.startContainer),
- 1 == h.nodeType && (h = h.childNodes[g.startOffset]))
- ) {
- for (; 1 == h.nodeType; ) {
- if (dtd.$empty[h.tagName])
- return (
- g.setStartBefore(h).setCursor(),
- b.undoManger && b.undoManger.save(),
- !1
- )
- if (!h.firstChild) {
- var m = g.document.createElement('br')
- return (
- h.appendChild(m),
- g.setStart(h, 0).setCursor(),
- b.undoManger && b.undoManger.save(),
- !1
- )
- }
- h = h.firstChild
- }
- h === g.startContainer.childNodes[g.startOffset]
- ? ((m = g.document.createElement('br')),
- g.insertNode(m).setCursor())
- : g.setStart(h, 0).setCursor()
- } else
- (m = g.document.createElement('br')),
- g.insertNode(m).setStartAfter(m).setCursor()
- }
- })
- }),
- (UE.plugins.keystrokes = function () {
- var a = this,
- b = !0
- a.addListener('keydown', function (c, d) {
- var e = d.keyCode || d.which,
- f = a.selection.getRange()
- if (
- !f.collapsed &&
- !(d.ctrlKey || d.shiftKey || d.altKey || d.metaKey) &&
- ((e >= 65 && e <= 90) ||
- (e >= 48 && e <= 57) ||
- (e >= 96 && e <= 111) ||
- { 13: 1, 8: 1, 46: 1 }[e])
- ) {
- var g = f.startContainer
- if (
- (domUtils.isFillChar(g) && f.setStartBefore(g),
- (g = f.endContainer),
- domUtils.isFillChar(g) && f.setEndAfter(g),
- f.txtToElmBoundary(),
- f.endContainer &&
- 1 == f.endContainer.nodeType &&
- ((g = f.endContainer.childNodes[f.endOffset]),
- g && domUtils.isBr(g) && f.setEndAfter(g)),
- 0 == f.startOffset &&
- ((g = f.startContainer),
- domUtils.isBoundaryNode(g, 'firstChild') &&
- ((g = f.endContainer),
- f.endOffset ==
- (3 == g.nodeType
- ? g.nodeValue.length
- : g.childNodes.length) &&
- domUtils.isBoundaryNode(g, 'lastChild'))))
- )
- return (
- a.fireEvent('saveScene'),
- (a.body.innerHTML = '<p>' + (browser.ie ? '' : '<br/>') + '</p>'),
- f.setStart(a.body.firstChild, 0).setCursor(!1, !0),
- void a._selectionChange()
- )
- }
- if (e == keymap.Backspace) {
- if (
- ((f = a.selection.getRange()),
- (b = f.collapsed),
- a.fireEvent('delkeydown', d))
- )
- return
- var h, i
- if (
- (f.collapsed &&
- f.inFillChar() &&
- ((h = f.startContainer),
- domUtils.isFillChar(h)
- ? (f.setStartBefore(h).shrinkBoundary(!0).collapse(!0),
- domUtils.remove(h))
- : ((h.nodeValue = h.nodeValue.replace(
- new RegExp('^' + domUtils.fillChar),
- ''
- )),
- f.startOffset--,
- f.collapse(!0).select(!0))),
- (h = f.getClosedNode()))
- )
- return (
- a.fireEvent('saveScene'),
- f.setStartBefore(h),
- domUtils.remove(h),
- f.setCursor(),
- a.fireEvent('saveScene'),
- void domUtils.preventDefault(d)
- )
- if (
- !browser.ie &&
- ((h = domUtils.findParentByTagName(f.startContainer, 'table', !0)),
- (i = domUtils.findParentByTagName(f.endContainer, 'table', !0)),
- (h && !i) || (!h && i) || h !== i)
- )
- return void d.preventDefault()
- }
- if (e == keymap.Tab) {
- var j = { ol: 1, ul: 1, table: 1 }
- if (a.fireEvent('tabkeydown', d))
- return void domUtils.preventDefault(d)
- var k = a.selection.getRange()
- a.fireEvent('saveScene')
- for (
- var l = 0,
- m = '',
- n = a.options.tabSize || 4,
- o = a.options.tabNode || ' ';
- l < n;
- l++
- )
- m += o
- var p = a.document.createElement('span')
- if (((p.innerHTML = m + domUtils.fillChar), k.collapsed))
- k.insertNode(p.cloneNode(!0).firstChild).setCursor(!0)
- else {
- var q = function (a) {
- return domUtils.isBlockElm(a) && !j[a.tagName.toLowerCase()]
- }
- if (
- ((h = domUtils.findParent(k.startContainer, q, !0)),
- (i = domUtils.findParent(k.endContainer, q, !0)),
- h && i && h === i)
- )
- k.deleteContents(),
- k.insertNode(p.cloneNode(!0).firstChild).setCursor(!0)
- else {
- var r = k.createBookmark()
- k.enlarge(!0)
- for (
- var s = k.createBookmark(),
- t = domUtils.getNextDomNode(s.start, !1, q);
- t &&
- !(domUtils.getPosition(t, s.end) & domUtils.POSITION_FOLLOWING);
- )
- t.insertBefore(p.cloneNode(!0).firstChild, t.firstChild),
- (t = domUtils.getNextDomNode(t, !1, q))
- k.moveToBookmark(s).moveToBookmark(r).select()
- }
- }
- domUtils.preventDefault(d)
- }
- if (
- browser.gecko &&
- 46 == e &&
- ((k = a.selection.getRange()),
- k.collapsed && ((h = k.startContainer), domUtils.isEmptyBlock(h)))
- ) {
- for (
- var u = h.parentNode;
- 1 == domUtils.getChildCount(u) && !domUtils.isBody(u);
- )
- (h = u), (u = u.parentNode)
- return void (h === u.lastChild && d.preventDefault())
- }
- }),
- a.addListener('keyup', function (a, c) {
- var d,
- e = c.keyCode || c.which,
- f = this
- if (e == keymap.Backspace) {
- if (f.fireEvent('delkeyup')) return
- if (((d = f.selection.getRange()), d.collapsed)) {
- var g,
- h = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6']
- if (
- (g = domUtils.findParentByTagName(d.startContainer, h, !0)) &&
- domUtils.isEmptyBlock(g)
- ) {
- var i = g.previousSibling
- if (i && 'TABLE' != i.nodeName)
- return (
- domUtils.remove(g),
- void d.setStartAtLast(i).setCursor(!1, !0)
- )
- var j = g.nextSibling
- if (j && 'TABLE' != j.nodeName)
- return (
- domUtils.remove(g),
- void d.setStartAtFirst(j).setCursor(!1, !0)
- )
- }
- if (domUtils.isBody(d.startContainer)) {
- var g = domUtils.createElement(f.document, 'p', {
- innerHTML: browser.ie ? domUtils.fillChar : '<br/>'
- })
- d.insertNode(g).setStart(g, 0).setCursor(!1, !0)
- }
- }
- if (
- !b &&
- (3 == d.startContainer.nodeType ||
- (1 == d.startContainer.nodeType &&
- domUtils.isEmptyBlock(d.startContainer)))
- )
- if (browser.ie) {
- var k = d.document.createElement('span')
- d.insertNode(k).setStartBefore(k).collapse(!0),
- d.select(),
- domUtils.remove(k)
- } else d.select()
- }
- })
- }),
- (UE.plugins.fiximgclick = (function () {
- function a() {
- ;(this.editor = null),
- (this.resizer = null),
- (this.cover = null),
- (this.doc = document),
- (this.prePos = { x: 0, y: 0 }),
- (this.startPos = { x: 0, y: 0 })
- }
- var b = !1
- return (
- (function () {
- var c = [
- [0, 0, -1, -1],
- [0, 0, 0, -1],
- [0, 0, 1, -1],
- [0, 0, -1, 0],
- [0, 0, 1, 0],
- [0, 0, -1, 1],
- [0, 0, 0, 1],
- [0, 0, 1, 1]
- ]
- a.prototype = {
- init: function (a) {
- var b = this
- ;(b.editor = a),
- (b.startPos = this.prePos = { x: 0, y: 0 }),
- (b.dragId = -1)
- var c = [],
- d = (b.cover = document.createElement('div')),
- e = (b.resizer = document.createElement('div'))
- for (
- d.id = b.editor.ui.id + '_imagescale_cover',
- d.style.cssText =
- 'position:absolute;display:none;z-index:' +
- b.editor.options.zIndex +
- ';filter:alpha(opacity=0); opacity:0;background:#CCC;',
- domUtils.on(d, 'mousedown click', function () {
- b.hide()
- }),
- i = 0;
- i < 8;
- i++
- )
- c.push(
- '<span class="edui-editor-imagescale-hand' + i + '"></span>'
- )
- ;(e.id = b.editor.ui.id + '_imagescale'),
- (e.className = 'edui-editor-imagescale'),
- (e.innerHTML = c.join('')),
- (e.style.cssText +=
- ';display:none;border:1px solid #3b77ff;z-index:' +
- b.editor.options.zIndex +
- ';'),
- b.editor.ui.getDom().appendChild(d),
- b.editor.ui.getDom().appendChild(e),
- b.initStyle(),
- b.initEvents()
- },
- initStyle: function () {
- utils.cssRule(
- 'imagescale',
- '.edui-editor-imagescale{display:none;position:absolute;border:1px solid #38B2CE;cursor:hand;-webkit-box-sizing: content-box;-moz-box-sizing: content-box;box-sizing: content-box;}.edui-editor-imagescale span{position:absolute;width:6px;height:6px;overflow:hidden;font-size:0px;display:block;background-color:#3C9DD0;}.edui-editor-imagescale .edui-editor-imagescale-hand0{cursor:nw-resize;top:0;margin-top:-4px;left:0;margin-left:-4px;}.edui-editor-imagescale .edui-editor-imagescale-hand1{cursor:n-resize;top:0;margin-top:-4px;left:50%;margin-left:-4px;}.edui-editor-imagescale .edui-editor-imagescale-hand2{cursor:ne-resize;top:0;margin-top:-4px;left:100%;margin-left:-3px;}.edui-editor-imagescale .edui-editor-imagescale-hand3{cursor:w-resize;top:50%;margin-top:-4px;left:0;margin-left:-4px;}.edui-editor-imagescale .edui-editor-imagescale-hand4{cursor:e-resize;top:50%;margin-top:-4px;left:100%;margin-left:-3px;}.edui-editor-imagescale .edui-editor-imagescale-hand5{cursor:sw-resize;top:100%;margin-top:-3px;left:0;margin-left:-4px;}.edui-editor-imagescale .edui-editor-imagescale-hand6{cursor:s-resize;top:100%;margin-top:-3px;left:50%;margin-left:-4px;}.edui-editor-imagescale .edui-editor-imagescale-hand7{cursor:se-resize;top:100%;margin-top:-3px;left:100%;margin-left:-3px;}'
- )
- },
- initEvents: function () {
- var a = this
- ;(a.startPos.x = a.startPos.y = 0), (a.isDraging = !1)
- },
- _eventHandler: function (a) {
- var c = this
- switch (a.type) {
- case 'mousedown':
- var d,
- d = a.target || a.srcElement
- d.className.indexOf('edui-editor-imagescale-hand') != -1 &&
- c.dragId == -1 &&
- ((c.dragId = d.className.slice(-1)),
- (c.startPos.x = c.prePos.x = a.clientX),
- (c.startPos.y = c.prePos.y = a.clientY),
- domUtils.on(
- c.doc,
- 'mousemove',
- c.proxy(c._eventHandler, c)
- ))
- break
- case 'mousemove':
- c.dragId != -1 &&
- (c.updateContainerStyle(c.dragId, {
- x: a.clientX - c.prePos.x,
- y: a.clientY - c.prePos.y
- }),
- (c.prePos.x = a.clientX),
- (c.prePos.y = a.clientY),
- (b = !0),
- c.updateTargetElement())
- break
- case 'mouseup':
- c.dragId != -1 &&
- (c.updateContainerStyle(c.dragId, {
- x: a.clientX - c.prePos.x,
- y: a.clientY - c.prePos.y
- }),
- c.updateTargetElement(),
- c.target.parentNode && c.attachTo(c.target),
- (c.dragId = -1)),
- domUtils.un(
- c.doc,
- 'mousemove',
- c.proxy(c._eventHandler, c)
- ),
- b && ((b = !1), c.editor.fireEvent('contentchange'))
- }
- },
- updateTargetElement: function () {
- var a = this
- domUtils.setStyles(a.target, {
- width: a.resizer.style.width,
- height: a.resizer.style.height
- }),
- (a.target.width = parseInt(a.resizer.style.width)),
- (a.target.height = parseInt(a.resizer.style.height)),
- a.attachTo(a.target)
- },
- updateContainerStyle: function (a, b) {
- var d,
- e = this,
- f = e.resizer
- 0 != c[a][0] &&
- ((d = parseInt(f.style.left) + b.x),
- (f.style.left = e._validScaledProp('left', d) + 'px')),
- 0 != c[a][1] &&
- ((d = parseInt(f.style.top) + b.y),
- (f.style.top = e._validScaledProp('top', d) + 'px')),
- 0 != c[a][2] &&
- ((d = f.clientWidth + c[a][2] * b.x),
- (f.style.width = e._validScaledProp('width', d) + 'px')),
- 0 != c[a][3] &&
- ((d = f.clientHeight + c[a][3] * b.y),
- (f.style.height = e._validScaledProp('height', d) + 'px'))
- },
- _validScaledProp: function (a, b) {
- var c = this.resizer,
- d = document
- switch (((b = isNaN(b) ? 0 : b), a)) {
- case 'left':
- return b < 0
- ? 0
- : b + c.clientWidth > d.clientWidth
- ? d.clientWidth - c.clientWidth
- : b
- case 'top':
- return b < 0
- ? 0
- : b + c.clientHeight > d.clientHeight
- ? d.clientHeight - c.clientHeight
- : b
- case 'width':
- return b <= 0
- ? 1
- : b + c.offsetLeft > d.clientWidth
- ? d.clientWidth - c.offsetLeft
- : b
- case 'height':
- return b <= 0
- ? 1
- : b + c.offsetTop > d.clientHeight
- ? d.clientHeight - c.offsetTop
- : b
- }
- },
- hideCover: function () {
- this.cover.style.display = 'none'
- },
- showCover: function () {
- var a = this,
- b = domUtils.getXY(a.editor.ui.getDom()),
- c = domUtils.getXY(a.editor.iframe)
- domUtils.setStyles(a.cover, {
- width: a.editor.iframe.offsetWidth + 'px',
- height: a.editor.iframe.offsetHeight + 'px',
- top: c.y - b.y + 'px',
- left: c.x - b.x + 'px',
- position: 'absolute',
- display: ''
- })
- },
- show: function (a) {
- var b = this
- ;(b.resizer.style.display = 'block'),
- a && b.attachTo(a),
- domUtils.on(
- this.resizer,
- 'mousedown',
- b.proxy(b._eventHandler, b)
- ),
- domUtils.on(b.doc, 'mouseup', b.proxy(b._eventHandler, b)),
- b.showCover(),
- b.editor.fireEvent('afterscaleshow', b),
- b.editor.fireEvent('saveScene')
- },
- hide: function () {
- var a = this
- a.hideCover(),
- (a.resizer.style.display = 'none'),
- domUtils.un(
- a.resizer,
- 'mousedown',
- a.proxy(a._eventHandler, a)
- ),
- domUtils.un(a.doc, 'mouseup', a.proxy(a._eventHandler, a)),
- a.editor.fireEvent('afterscalehide', a)
- },
- proxy: function (a, b) {
- return function (c) {
- return a.apply(b || this, arguments)
- }
- },
- attachTo: function (a) {
- var b = this,
- c = (b.target = a),
- d = this.resizer,
- e = domUtils.getXY(c),
- f = domUtils.getXY(b.editor.iframe),
- g = domUtils.getXY(d.parentNode)
- domUtils.setStyles(d, {
- width: c.width + 'px',
- height: c.height + 'px',
- left:
- f.x +
- e.x -
- b.editor.document.body.scrollLeft -
- g.x -
- parseInt(d.style.borderLeftWidth) +
- 'px',
- top:
- f.y +
- e.y -
- b.editor.document.body.scrollTop -
- g.y -
- parseInt(d.style.borderTopWidth) +
- 'px'
- })
- }
- }
- })(),
- function () {
- var b,
- c = this
- c.setOpt('imageScaleEnabled', !0),
- !browser.ie &&
- c.options.imageScaleEnabled &&
- c.addListener('click', function (d, e) {
- var f = c.selection.getRange(),
- g = f.getClosedNode()
- if (
- g &&
- 'IMG' == g.tagName &&
- 'false' != c.body.contentEditable
- ) {
- if (
- g.className.indexOf('edui-faked-music') != -1 ||
- g.getAttribute('anchorname') ||
- domUtils.hasClass(g, 'loadingclass') ||
- domUtils.hasClass(g, 'loaderrorclass')
- )
- return
- if (!b) {
- ;(b = new a()),
- b.init(c),
- c.ui.getDom().appendChild(b.resizer)
- var h,
- i = function (a) {
- b.hide(),
- b.target &&
- c.selection.getRange().selectNode(b.target).select()
- },
- j = function (a) {
- var b = a.target || a.srcElement
- !b ||
- (void 0 !== b.className &&
- b.className.indexOf('edui-editor-imagescale') !=
- -1) ||
- i(a)
- }
- c.addListener('afterscaleshow', function (a) {
- c.addListener('beforekeydown', i),
- c.addListener('beforemousedown', j),
- domUtils.on(document, 'keydown', i),
- domUtils.on(document, 'mousedown', j),
- c.selection.getNative().removeAllRanges()
- }),
- c.addListener('afterscalehide', function (a) {
- c.removeListener('beforekeydown', i),
- c.removeListener('beforemousedown', j),
- domUtils.un(document, 'keydown', i),
- domUtils.un(document, 'mousedown', j)
- var d = b.target
- d.parentNode &&
- c.selection.getRange().selectNode(d).select()
- }),
- domUtils.on(b.resizer, 'mousedown', function (a) {
- c.selection.getNative().removeAllRanges()
- var d = a.target || a.srcElement
- d &&
- d.className.indexOf('edui-editor-imagescale-hand') ==
- -1 &&
- (h = setTimeout(function () {
- b.hide(),
- b.target &&
- c.selection.getRange().selectNode(d).select()
- }, 200))
- }),
- domUtils.on(b.resizer, 'mouseup', function (a) {
- var b = a.target || a.srcElement
- b &&
- b.className.indexOf('edui-editor-imagescale-hand') ==
- -1 &&
- clearTimeout(h)
- })
- }
- b.show(g)
- } else b && 'none' != b.resizer.style.display && b.hide()
- }),
- browser.webkit &&
- c.addListener('click', function (a, b) {
- if (
- 'IMG' == b.target.tagName &&
- 'false' != c.body.contentEditable
- ) {
- var d = new dom.Range(c.document)
- d.selectNode(b.target).select()
- }
- })
- }
- )
- })()),
- UE.plugin.register(
- 'autolink',
- function () {
- var a = 0
- return browser.ie
- ? {}
- : {
- bindEvents: {
- reset: function () {
- a = 0
- },
- keydown: function (a, b) {
- var c = this,
- d = b.keyCode || b.which
- if (32 == d || 13 == d) {
- for (
- var e,
- f,
- g = c.selection.getNative(),
- h = g.getRangeAt(0).cloneRange(),
- i = h.startContainer;
- 1 == i.nodeType &&
- h.startOffset > 0 &&
- (i = h.startContainer.childNodes[h.startOffset - 1]);
- )
- h.setStart(
- i,
- 1 == i.nodeType
- ? i.childNodes.length
- : i.nodeValue.length
- ),
- h.collapse(!0),
- (i = h.startContainer)
- do {
- if (0 == h.startOffset) {
- for (
- i = h.startContainer.previousSibling;
- i && 1 == i.nodeType;
- )
- i = i.lastChild
- if (!i || domUtils.isFillChar(i)) break
- e = i.nodeValue.length
- } else (i = h.startContainer), (e = h.startOffset)
- h.setStart(i, e - 1), (f = h.toString().charCodeAt(0))
- } while (160 != f && 32 != f)
- if (
- h
- .toString()
- .replace(new RegExp(domUtils.fillChar, 'g'), '')
- .match(
- /(?:https?:\/\/|ssh:\/\/|ftp:\/\/|file:\/|www\.)/i
- )
- ) {
- for (
- ;
- h.toString().length &&
- !/^(?:https?:\/\/|ssh:\/\/|ftp:\/\/|file:\/|www\.)/i.test(
- h.toString()
- );
- )
- try {
- h.setStart(h.startContainer, h.startOffset + 1)
- } catch (j) {
- for (
- var i = h.startContainer;
- !(next = i.nextSibling);
- ) {
- if (domUtils.isBody(i)) return
- i = i.parentNode
- }
- h.setStart(next, 0)
- }
- if (
- domUtils.findParentByTagName(h.startContainer, 'a', !0)
- )
- return
- var k,
- l = c.document.createElement('a'),
- m = c.document.createTextNode(' ')
- c.undoManger && c.undoManger.save(),
- l.appendChild(h.extractContents()),
- (l.href = l.innerHTML =
- l.innerHTML.replace(/<[^>]+>/g, '')),
- (k = l
- .getAttribute('href')
- .replace(new RegExp(domUtils.fillChar, 'g'), '')),
- (k = /^(?:https?:\/\/)/gi.test(k) ? k : 'http://' + k),
- l.setAttribute('_src', utils.html(k)),
- (l.href = utils.html(k)),
- h.insertNode(l),
- l.parentNode.insertBefore(m, l.nextSibling),
- h.setStart(m, 0),
- h.collapse(!0),
- g.removeAllRanges(),
- g.addRange(h),
- c.undoManger && c.undoManger.save()
- }
- }
- }
- }
- }
- },
- function () {
- function a(a) {
- if (3 == a.nodeType) return null
- if ('A' == a.nodeName) return a
- for (var b = a.lastChild; b; ) {
- if ('A' == b.nodeName) return b
- if (3 == b.nodeType) {
- if (domUtils.isWhitespace(b)) {
- b = b.previousSibling
- continue
- }
- return null
- }
- b = b.lastChild
- }
- }
- var b = { 37: 1, 38: 1, 39: 1, 40: 1, 13: 1, 32: 1 }
- browser.ie &&
- this.addListener('keyup', function (c, d) {
- var e = this,
- f = d.keyCode
- if (b[f]) {
- var g = e.selection.getRange(),
- h = g.startContainer
- if (13 == f) {
- for (; h && !domUtils.isBody(h) && !domUtils.isBlockElm(h); )
- h = h.parentNode
- if (h && !domUtils.isBody(h) && 'P' == h.nodeName) {
- var i = h.previousSibling
- if (i && 1 == i.nodeType) {
- var i = a(i)
- i && !i.getAttribute('_href') && domUtils.remove(i, !0)
- }
- }
- } else if (32 == f)
- 3 == h.nodeType &&
- /^\s$/.test(h.nodeValue) &&
- ((h = h.previousSibling),
- h &&
- 'A' == h.nodeName &&
- !h.getAttribute('_href') &&
- domUtils.remove(h, !0))
- else if (
- ((h = domUtils.findParentByTagName(h, 'a', !0)),
- h && !h.getAttribute('_href'))
- ) {
- var j = g.createBookmark()
- domUtils.remove(h, !0), g.moveToBookmark(j).select(!0)
- }
- }
- })
- }
- ),
- (UE.plugins.autoheight = function () {
- function a() {
- var a = this
- clearTimeout(e),
- f ||
- ((!a.queryCommandState ||
- (a.queryCommandState && 1 != a.queryCommandState('source'))) &&
- (e = setTimeout(function () {
- for (var b = a.body.lastChild; b && 1 != b.nodeType; )
- b = b.previousSibling
- b &&
- 1 == b.nodeType &&
- ((b.style.clear = 'both'),
- (d = Math.max(
- domUtils.getXY(b).y + b.offsetHeight + 25,
- Math.max(h.minFrameHeight, h.initialFrameHeight)
- )),
- d != g &&
- (d !== parseInt(a.iframe.parentNode.style.height) &&
- (a.iframe.parentNode.style.height = d + 'px'),
- (a.body.style.height = d + 'px'),
- (g = d)),
- domUtils.removeStyle(b, 'clear'))
- }, 50)))
- }
- var b = this
- if (
- ((b.autoHeightEnabled = b.options.autoHeightEnabled !== !1),
- b.autoHeightEnabled)
- ) {
- var c,
- d,
- e,
- f,
- g = 0,
- h = b.options
- b.addListener('fullscreenchanged', function (a, b) {
- f = b
- }),
- b.addListener('destroy', function () {
- b.removeListener('contentchange afterinserthtml keyup mouseup', a)
- }),
- (b.enableAutoHeight = function () {
- var b = this
- if (b.autoHeightEnabled) {
- var d = b.document
- ;(b.autoHeightEnabled = !0),
- (c = d.body.style.overflowY),
- (d.body.style.overflowY = 'hidden'),
- b.addListener('contentchange afterinserthtml keyup mouseup', a),
- setTimeout(
- function () {
- a.call(b)
- },
- browser.gecko ? 100 : 0
- ),
- b.fireEvent('autoheightchanged', b.autoHeightEnabled)
- }
- }),
- (b.disableAutoHeight = function () {
- ;(b.body.style.overflowY = c || ''),
- b.removeListener('contentchange', a),
- b.removeListener('keyup', a),
- b.removeListener('mouseup', a),
- (b.autoHeightEnabled = !1),
- b.fireEvent('autoheightchanged', b.autoHeightEnabled)
- }),
- b.on('setHeight', function () {
- b.disableAutoHeight()
- }),
- b.addListener('ready', function () {
- b.enableAutoHeight()
- var c
- domUtils.on(
- browser.ie ? b.body : b.document,
- browser.webkit ? 'dragover' : 'drop',
- function () {
- clearTimeout(c),
- (c = setTimeout(function () {
- a.call(b)
- }, 100))
- }
- )
- var d
- window.onscroll = function () {
- null === d
- ? (d = this.scrollY)
- : 0 == this.scrollY &&
- 0 != d &&
- (b.window.scrollTo(0, 0), (d = null))
- }
- })
- }
- }),
- (UE.plugins.autofloat = function () {
- function a() {
- return UE.ui ? 1 : (alert(g.autofloatMsg), 0)
- }
- function b() {
- var a = document.body.style
- ;(a.backgroundImage = 'url("about:blank")'),
- (a.backgroundAttachment = 'fixed')
- }
- function c() {
- var a = domUtils.getXY(k),
- b = domUtils.getComputedStyle(k, 'position'),
- c = domUtils.getComputedStyle(k, 'left')
- ;(k.style.width = k.offsetWidth + 'px'),
- (k.style.zIndex = 1 * f.options.zIndex + 1),
- k.parentNode.insertBefore(q, k),
- o || (p && browser.ie)
- ? ('absolute' != k.style.position &&
- (k.style.position = 'absolute'),
- (k.style.top =
- (document.body.scrollTop ||
- document.documentElement.scrollTop) -
- l +
- i +
- 'px'))
- : (browser.ie7Compat &&
- r &&
- ((r = !1),
- (k.style.left =
- domUtils.getXY(k).x -
- document.documentElement.getBoundingClientRect().left +
- 2 +
- 'px')),
- 'fixed' != k.style.position &&
- ((k.style.position = 'fixed'),
- (k.style.top = i + 'px'),
- ('absolute' == b || 'relative' == b) &&
- parseFloat(c) &&
- (k.style.left = a.x + 'px')))
- }
- function d() {
- ;(r = !0),
- q.parentNode && q.parentNode.removeChild(q),
- (k.style.cssText = j)
- }
- function e() {
- var a = m(f.container),
- b = f.options.toolbarTopOffset || 0
- a.top < 0 && a.bottom - k.offsetHeight > b ? c() : d()
- }
- var f = this,
- g = f.getLang()
- f.setOpt({ topOffset: 0 })
- var h = f.options.autoFloatEnabled !== !1,
- i = f.options.topOffset
- if (h) {
- var j,
- k,
- l,
- m,
- n = UE.ui.uiUtils,
- o = browser.ie && browser.version <= 6,
- p = browser.quirks,
- q = document.createElement('div'),
- r = !0,
- s = utils.defer(
- function () {
- e()
- },
- browser.ie ? 200 : 100,
- !0
- )
- f.addListener('destroy', function () {
- domUtils.un(window, ['scroll', 'resize'], e),
- f.removeListener('keydown', s)
- }),
- f.addListener('ready', function () {
- if (a(f)) {
- if (!f.ui) return
- ;(m = n.getClientRect),
- (k = f.ui.getDom('toolbarbox')),
- (l = m(k).top),
- (j = k.style.cssText),
- (q.style.height = k.offsetHeight + 'px'),
- o && b(),
- domUtils.on(window, ['scroll', 'resize'], e),
- f.addListener('keydown', s),
- f.addListener('beforefullscreenchange', function (a, b) {
- b && d()
- }),
- f.addListener('fullscreenchanged', function (a, b) {
- b || e()
- }),
- f.addListener('sourcemodechanged', function (a, b) {
- setTimeout(function () {
- e()
- }, 0)
- }),
- f.addListener('clearDoc', function () {
- setTimeout(function () {
- e()
- }, 0)
- })
- }
- })
- }
- }),
- (UE.plugins.video = function () {
- function a(a, b, d, e, f, g, h) {
- ;(a = utils.unhtmlForUrl(a)),
- (f = utils.unhtml(f)),
- (g = utils.unhtml(g).trim()),
- (b = parseInt(b, 10) || 0),
- (d = parseInt(d, 10) || 0)
- var i
- switch (h) {
- case 'image':
- i =
- '<img ' +
- (e ? 'id="' + e + '"' : '') +
- ' width="' +
- b +
- '" height="' +
- d +
- '" _url="' +
- a +
- '" class="' +
- g.replace(/\bvideo-js\b/, '') +
- '" src="' +
- c.options.UEDITOR_HOME_URL +
- 'themes/default/images/spacer.gif" style="background:url(' +
- c.options.UEDITOR_HOME_URL +
- 'themes/default/images/videologo.gif) no-repeat center center; border:1px solid gray;' +
- (f ? 'float:' + f + ';' : '') +
- '" />'
- break
- case 'embed':
- i =
- '<embed type="application/x-shockwave-flash" class="' +
- g +
- '" pluginspage="http://www.macromedia.com/go/getflashplayer" src="' +
- utils.html(a) +
- '" width="' +
- b +
- '" height="' +
- d +
- '"' +
- (f ? ' style="float:' + f + '"' : '') +
- ' wmode="transparent" play="true" loop="false" menu="false" allowscriptaccess="never" allowfullscreen="true" >'
- break
- case 'video':
- var j = a.substr(a.lastIndexOf('.') + 1)
- 'ogv' == j && (j = 'ogg'),
- (i =
- '<video' +
- (e ? ' id="' + e + '"' : '') +
- ' class="' +
- g +
- ' video-js" ' +
- (f ? ' style="float:' + f + '"' : '') +
- ' controls preload="none" width="' +
- b +
- '" height="' +
- d +
- '" src="' +
- a +
- '" data-setup="{}"><source src="' +
- a +
- '" type="video/' +
- j +
- '" /></video>')
- }
- return i
- }
- function b(b, c) {
- utils.each(
- b.getNodesByTagName(c ? 'img' : 'embed video'),
- function (b) {
- var d = b.getAttr('class')
- if (d && d.indexOf('edui-faked-video') != -1) {
- var e = a(
- c ? b.getAttr('_url') : b.getAttr('src'),
- b.getAttr('width'),
- b.getAttr('height'),
- null,
- b.getStyle('float') || '',
- d,
- c ? 'embed' : 'image'
- )
- b.parentNode.replaceChild(UE.uNode.createElement(e), b)
- }
- if (d && d.indexOf('edui-upload-video') != -1) {
- var e = a(
- c ? b.getAttr('_url') : b.getAttr('src'),
- b.getAttr('width'),
- b.getAttr('height'),
- null,
- b.getStyle('float') || '',
- d,
- c ? 'video' : 'image'
- )
- b.parentNode.replaceChild(UE.uNode.createElement(e), b)
- }
- }
- )
- }
- var c = this
- c.addOutputRule(function (a) {
- b(a, !0)
- }),
- c.addInputRule(function (a) {
- b(a)
- }),
- (c.commands.insertvideo = {
- execCommand: function (b, d, e) {
- d = utils.isArray(d) ? d : [d]
- for (
- var f, g, h = [], i = 'tmpVedio', j = 0, k = d.length;
- j < k;
- j++
- )
- (g = d[j]),
- (f =
- 'upload' == e
- ? 'edui-upload-video video-js vjs-default-skin'
- : 'edui-faked-video'),
- h.push(
- a(
- g.url,
- g.width || 420,
- g.height || 280,
- i + j,
- null,
- f,
- 'image'
- )
- )
- c.execCommand('inserthtml', h.join(''), !0)
- for (
- var l = this.selection.getRange(), j = 0, k = d.length;
- j < k;
- j++
- ) {
- var m = this.document.getElementById('tmpVedio' + j)
- domUtils.removeAttributes(m, 'id'),
- l.selectNode(m).select(),
- c.execCommand('imagefloat', d[j].align)
- }
- },
- queryCommandState: function () {
- var a = c.selection.getRange().getClosedNode(),
- b =
- a &&
- ('edui-faked-video' == a.className ||
- a.className.indexOf('edui-upload-video') != -1)
- return b ? 1 : 0
- }
- })
- }),
- (function () {
- function a(a) {}
- var b = (UE.UETable = function (a) {
- ;(this.table = a),
- (this.indexTable = []),
- (this.selectedTds = []),
- (this.cellsRange = {}),
- this.update(a)
- })
- ;(b.removeSelectedClass = function (a) {
- utils.each(a, function (a) {
- domUtils.removeClasses(a, 'selectTdClass')
- })
- }),
- (b.addSelectedClass = function (a) {
- utils.each(a, function (a) {
- domUtils.addClass(a, 'selectTdClass')
- })
- }),
- (b.isEmptyBlock = function (a) {
- var b = new RegExp(domUtils.fillChar, 'g')
- if (
- a[browser.ie ? 'innerText' : 'textContent']
- .replace(/^\s*$/, '')
- .replace(b, '').length > 0
- )
- return 0
- for (var c in dtd.$isNotEmpty)
- if (
- dtd.$isNotEmpty.hasOwnProperty(c) &&
- a.getElementsByTagName(c).length
- )
- return 0
- return 1
- }),
- (b.getWidth = function (a) {
- return a ? parseInt(domUtils.getComputedStyle(a, 'width'), 10) : 0
- }),
- (b.getTableCellAlignState = function (a) {
- !utils.isArray(a) && (a = [a])
- var b = {},
- c = ['align', 'valign'],
- d = null,
- e = !0
- return (
- utils.each(a, function (a) {
- return (
- utils.each(c, function (c) {
- if (((d = a.getAttribute(c)), !b[c] && d)) b[c] = d
- else if (!b[c] || d !== b[c]) return (e = !1), !1
- }),
- e
- )
- }),
- e ? b : null
- )
- }),
- (b.getTableItemsByRange = function (a) {
- var b = a.selection.getStart()
- b &&
- b.id &&
- 0 === b.id.indexOf('_baidu_bookmark_start_') &&
- b.nextSibling &&
- (b = b.nextSibling)
- var c = b && domUtils.findParentByTagName(b, ['td', 'th'], !0),
- d = c && c.parentNode,
- e = b && domUtils.findParentByTagName(b, 'caption', !0),
- f = e ? e.parentNode : d && d.parentNode.parentNode
- return { cell: c, tr: d, table: f, caption: e }
- }),
- (b.getUETableBySelected = function (a) {
- var c = b.getTableItemsByRange(a).table
- return c && c.ueTable && c.ueTable.selectedTds.length
- ? c.ueTable
- : null
- }),
- (b.getDefaultValue = function (a, b) {
- var c,
- d,
- e,
- f,
- g = { thin: '0px', medium: '1px', thick: '2px' }
- if (b)
- return (
- (h = b.getElementsByTagName('td')[0]),
- (f = domUtils.getComputedStyle(b, 'border-left-width')),
- (c = parseInt(g[f] || f, 10)),
- (f = domUtils.getComputedStyle(h, 'padding-left')),
- (d = parseInt(g[f] || f, 10)),
- (f = domUtils.getComputedStyle(h, 'border-left-width')),
- (e = parseInt(g[f] || f, 10)),
- { tableBorder: c, tdPadding: d, tdBorder: e }
- )
- ;(b = a.document.createElement('table')),
- (b.insertRow(0).insertCell(0).innerHTML = 'xxx'),
- a.body.appendChild(b)
- var h = b.getElementsByTagName('td')[0]
- return (
- (f = domUtils.getComputedStyle(b, 'border-left-width')),
- (c = parseInt(g[f] || f, 10)),
- (f = domUtils.getComputedStyle(h, 'padding-left')),
- (d = parseInt(g[f] || f, 10)),
- (f = domUtils.getComputedStyle(h, 'border-left-width')),
- (e = parseInt(g[f] || f, 10)),
- domUtils.remove(b),
- { tableBorder: c, tdPadding: d, tdBorder: e }
- )
- }),
- (b.getUETable = function (a) {
- var c = a.tagName.toLowerCase()
- return (
- (a =
- 'td' == c || 'th' == c || 'caption' == c
- ? domUtils.findParentByTagName(a, 'table', !0)
- : a),
- a.ueTable || (a.ueTable = new b(a)),
- a.ueTable
- )
- }),
- (b.cloneCell = function (a, b, c) {
- if (!a || utils.isString(a))
- return this.table.ownerDocument.createElement(a || 'td')
- var d = domUtils.hasClass(a, 'selectTdClass')
- d && domUtils.removeClasses(a, 'selectTdClass')
- var e = a.cloneNode(!0)
- return (
- b && (e.rowSpan = e.colSpan = 1),
- !c && domUtils.removeAttributes(e, 'width height'),
- !c && domUtils.removeAttributes(e, 'style'),
- (e.style.borderLeftStyle = ''),
- (e.style.borderTopStyle = ''),
- (e.style.borderLeftColor = a.style.borderRightColor),
- (e.style.borderLeftWidth = a.style.borderRightWidth),
- (e.style.borderTopColor = a.style.borderBottomColor),
- (e.style.borderTopWidth = a.style.borderBottomWidth),
- d && domUtils.addClass(a, 'selectTdClass'),
- e
- )
- }),
- (b.prototype = {
- getMaxRows: function () {
- for (var a, b = this.table.rows, c = 1, d = 0; (a = b[d]); d++) {
- for (var e, f = 1, g = 0; (e = a.cells[g++]); )
- f = Math.max(e.rowSpan || 1, f)
- c = Math.max(f + d, c)
- }
- return c
- },
- getMaxCols: function () {
- for (
- var a, b = this.table.rows, c = 0, d = {}, e = 0;
- (a = b[e]);
- e++
- ) {
- for (var f, g = 0, h = 0; (f = a.cells[h++]); )
- if (((g += f.colSpan || 1), f.rowSpan && f.rowSpan > 1))
- for (var i = 1; i < f.rowSpan; i++)
- d['row_' + (e + i)]
- ? d['row_' + (e + i)]++
- : (d['row_' + (e + i)] = f.colSpan || 1)
- ;(g += d['row_' + e] || 0), (c = Math.max(g, c))
- }
- return c
- },
- getCellColIndex: function (a) {},
- getHSideCell: function (b, c) {
- try {
- var d,
- e,
- f = this.getCellInfo(b),
- g = this.selectedTds.length,
- h = this.cellsRange
- return (!c && (g ? !h.beginColIndex : !f.colIndex)) ||
- (c &&
- (g
- ? h.endColIndex == this.colsNum - 1
- : f.colIndex == this.colsNum - 1))
- ? null
- : ((d = g ? h.beginRowIndex : f.rowIndex),
- (e = c
- ? g
- ? h.endColIndex + 1
- : f.colIndex + 1
- : g
- ? h.beginColIndex - 1
- : f.colIndex < 1
- ? 0
- : f.colIndex - 1),
- this.getCell(
- this.indexTable[d][e].rowIndex,
- this.indexTable[d][e].cellIndex
- ))
- } catch (i) {
- a(i)
- }
- },
- getTabNextCell: function (a, b) {
- var c,
- d = this.getCellInfo(a),
- e = b || d.rowIndex,
- f = d.colIndex + 1 + (d.colSpan - 1)
- try {
- c = this.getCell(
- this.indexTable[e][f].rowIndex,
- this.indexTable[e][f].cellIndex
- )
- } catch (g) {
- try {
- ;(e = 1 * e + 1),
- (f = 0),
- (c = this.getCell(
- this.indexTable[e][f].rowIndex,
- this.indexTable[e][f].cellIndex
- ))
- } catch (g) {}
- }
- return c
- },
- getVSideCell: function (b, c, d) {
- try {
- var e,
- f,
- g = this.getCellInfo(b),
- h = this.selectedTds.length && !d,
- i = this.cellsRange
- return (!c && 0 == g.rowIndex) ||
- (c &&
- (h
- ? i.endRowIndex == this.rowsNum - 1
- : g.rowIndex + g.rowSpan > this.rowsNum - 1))
- ? null
- : ((e = c
- ? h
- ? i.endRowIndex + 1
- : g.rowIndex + g.rowSpan
- : h
- ? i.beginRowIndex - 1
- : g.rowIndex - 1),
- (f = h ? i.beginColIndex : g.colIndex),
- this.getCell(
- this.indexTable[e][f].rowIndex,
- this.indexTable[e][f].cellIndex
- ))
- } catch (j) {
- a(j)
- }
- },
- getSameEndPosCells: function (b, c) {
- try {
- for (
- var d = 'x' === c.toLowerCase(),
- e =
- domUtils.getXY(b)[d ? 'x' : 'y'] +
- b['offset' + (d ? 'Width' : 'Height')],
- f = this.table.rows,
- g = null,
- h = [],
- i = 0;
- i < this.rowsNum;
- i++
- ) {
- g = f[i].cells
- for (var j, k = 0; (j = g[k++]); ) {
- var l =
- domUtils.getXY(j)[d ? 'x' : 'y'] +
- j['offset' + (d ? 'Width' : 'Height')]
- if (l > e && d) break
- if (
- (b == j || e == l) &&
- (1 == j[d ? 'colSpan' : 'rowSpan'] && h.push(j), d)
- )
- break
- }
- }
- return h
- } catch (m) {
- a(m)
- }
- },
- setCellContent: function (a, b) {
- a.innerHTML = b || (browser.ie ? domUtils.fillChar : '<br />')
- },
- cloneCell: b.cloneCell,
- getSameStartPosXCells: function (b) {
- try {
- for (
- var c,
- d = domUtils.getXY(b).x + b.offsetWidth,
- e = this.table.rows,
- f = [],
- g = 0;
- g < this.rowsNum;
- g++
- ) {
- c = e[g].cells
- for (var h, i = 0; (h = c[i++]); ) {
- var j = domUtils.getXY(h).x
- if (j > d) break
- if (j == d && 1 == h.colSpan) {
- f.push(h)
- break
- }
- }
- }
- return f
- } catch (k) {
- a(k)
- }
- },
- update: function (a) {
- ;(this.table = a || this.table),
- (this.selectedTds = []),
- (this.cellsRange = {}),
- (this.indexTable = [])
- for (
- var b = this.table.rows,
- c = this.getMaxRows(),
- d = c - b.length,
- e = this.getMaxCols();
- d--;
- )
- this.table.insertRow(b.length)
- ;(this.rowsNum = c), (this.colsNum = e)
- for (var f = 0, g = b.length; f < g; f++)
- this.indexTable[f] = new Array(e)
- for (var h, i = 0; (h = b[i]); i++)
- for (var j, k = 0, l = h.cells; (j = l[k]); k++) {
- j.rowSpan > c && (j.rowSpan = c)
- for (
- var m = k, n = j.rowSpan || 1, o = j.colSpan || 1;
- this.indexTable[i][m];
- )
- m++
- for (var p = 0; p < n; p++)
- for (var q = 0; q < o; q++)
- this.indexTable[i + p][m + q] = {
- rowIndex: i,
- cellIndex: k,
- colIndex: m,
- rowSpan: n,
- colSpan: o
- }
- }
- for (p = 0; p < c; p++)
- for (q = 0; q < e; q++)
- void 0 === this.indexTable[p][q] &&
- ((h = b[p]),
- (j = h.cells[h.cells.length - 1]),
- (j = j
- ? j.cloneNode(!0)
- : this.table.ownerDocument.createElement('td')),
- this.setCellContent(j),
- 1 !== j.colSpan && (j.colSpan = 1),
- 1 !== j.rowSpan && (j.rowSpan = 1),
- h.appendChild(j),
- (this.indexTable[p][q] = {
- rowIndex: p,
- cellIndex: j.cellIndex,
- colIndex: q,
- rowSpan: 1,
- colSpan: 1
- }))
- var r = domUtils.getElementsByTagName(this.table, 'td'),
- s = []
- if (
- (utils.each(r, function (a) {
- domUtils.hasClass(a, 'selectTdClass') && s.push(a)
- }),
- s.length)
- ) {
- var t = s[0],
- u = s[s.length - 1],
- v = this.getCellInfo(t),
- w = this.getCellInfo(u)
- ;(this.selectedTds = s),
- (this.cellsRange = {
- beginRowIndex: v.rowIndex,
- beginColIndex: v.colIndex,
- endRowIndex: w.rowIndex + w.rowSpan - 1,
- endColIndex: w.colIndex + w.colSpan - 1
- })
- }
- if (!domUtils.hasClass(this.table.rows[0], 'firstRow')) {
- domUtils.addClass(this.table.rows[0], 'firstRow')
- for (var f = 1; f < this.table.rows.length; f++)
- domUtils.removeClasses(this.table.rows[f], 'firstRow')
- }
- },
- getCellInfo: function (a) {
- if (a)
- for (
- var b = a.cellIndex,
- c = a.parentNode.rowIndex,
- d = this.indexTable[c],
- e = this.colsNum,
- f = b;
- f < e;
- f++
- ) {
- var g = d[f]
- if (g.rowIndex === c && g.cellIndex === b) return g
- }
- },
- getCell: function (a, b) {
- return (a < this.rowsNum && this.table.rows[a].cells[b]) || null
- },
- deleteCell: function (a, b) {
- b = 'number' == typeof b ? b : a.parentNode.rowIndex
- var c = this.table.rows[b]
- c.deleteCell(a.cellIndex)
- },
- getCellsRange: function (a, b) {
- function c(a, b, e, f) {
- var g,
- h,
- i,
- j = a,
- k = b,
- l = e,
- m = f
- if (a > 0)
- for (h = b; h < f; h++)
- (g = d.indexTable[a][h]),
- (i = g.rowIndex),
- i < a && (j = Math.min(i, j))
- if (f < d.colsNum)
- for (i = a; i < e; i++)
- (g = d.indexTable[i][f]),
- (h = g.colIndex + g.colSpan - 1),
- h > f && (m = Math.max(h, m))
- if (e < d.rowsNum)
- for (h = b; h < f; h++)
- (g = d.indexTable[e][h]),
- (i = g.rowIndex + g.rowSpan - 1),
- i > e && (l = Math.max(i, l))
- if (b > 0)
- for (i = a; i < e; i++)
- (g = d.indexTable[i][b]),
- (h = g.colIndex),
- h < b && (k = Math.min(g.colIndex, k))
- return j != a || k != b || l != e || m != f
- ? c(j, k, l, m)
- : {
- beginRowIndex: a,
- beginColIndex: b,
- endRowIndex: e,
- endColIndex: f
- }
- }
- try {
- var d = this,
- e = d.getCellInfo(a)
- if (a === b)
- return {
- beginRowIndex: e.rowIndex,
- beginColIndex: e.colIndex,
- endRowIndex: e.rowIndex + e.rowSpan - 1,
- endColIndex: e.colIndex + e.colSpan - 1
- }
- var f = d.getCellInfo(b),
- g = Math.min(e.rowIndex, f.rowIndex),
- h = Math.min(e.colIndex, f.colIndex),
- i = Math.max(
- e.rowIndex + e.rowSpan - 1,
- f.rowIndex + f.rowSpan - 1
- ),
- j = Math.max(
- e.colIndex + e.colSpan - 1,
- f.colIndex + f.colSpan - 1
- )
- return c(g, h, i, j)
- } catch (k) {}
- },
- getCells: function (a) {
- this.clearSelected()
- for (
- var b,
- c,
- d,
- e = a.beginRowIndex,
- f = a.beginColIndex,
- g = a.endRowIndex,
- h = a.endColIndex,
- i = {},
- j = [],
- k = e;
- k <= g;
- k++
- )
- for (var l = f; l <= h; l++) {
- ;(b = this.indexTable[k][l]), (c = b.rowIndex), (d = b.colIndex)
- var m = c + '|' + d
- if (!i[m]) {
- if (
- ((i[m] = 1),
- c < k ||
- d < l ||
- c + b.rowSpan - 1 > g ||
- d + b.colSpan - 1 > h)
- )
- return null
- j.push(this.getCell(c, b.cellIndex))
- }
- }
- return j
- },
- clearSelected: function () {
- b.removeSelectedClass(this.selectedTds),
- (this.selectedTds = []),
- (this.cellsRange = {})
- },
- setSelected: function (a) {
- var c = this.getCells(a)
- b.addSelectedClass(c), (this.selectedTds = c), (this.cellsRange = a)
- },
- isFullRow: function () {
- var a = this.cellsRange
- return a.endColIndex - a.beginColIndex + 1 == this.colsNum
- },
- isFullCol: function () {
- var a = this.cellsRange,
- b = this.table,
- c = b.getElementsByTagName('th'),
- d = a.endRowIndex - a.beginRowIndex + 1
- return c.length
- ? d == this.rowsNum || d == this.rowsNum - 1
- : d == this.rowsNum
- },
- getNextCell: function (b, c, d) {
- try {
- var e,
- f,
- g = this.getCellInfo(b),
- h = this.selectedTds.length && !d,
- i = this.cellsRange
- return (!c && 0 == g.rowIndex) ||
- (c &&
- (h
- ? i.endRowIndex == this.rowsNum - 1
- : g.rowIndex + g.rowSpan > this.rowsNum - 1))
- ? null
- : ((e = c
- ? h
- ? i.endRowIndex + 1
- : g.rowIndex + g.rowSpan
- : h
- ? i.beginRowIndex - 1
- : g.rowIndex - 1),
- (f = h ? i.beginColIndex : g.colIndex),
- this.getCell(
- this.indexTable[e][f].rowIndex,
- this.indexTable[e][f].cellIndex
- ))
- } catch (j) {
- a(j)
- }
- },
- getPreviewCell: function (b, c) {
- try {
- var d,
- e,
- f = this.getCellInfo(b),
- g = this.selectedTds.length,
- h = this.cellsRange
- return (!c && (g ? !h.beginColIndex : !f.colIndex)) ||
- (c &&
- (g
- ? h.endColIndex == this.colsNum - 1
- : f.rowIndex > this.colsNum - 1))
- ? null
- : ((d = c
- ? g
- ? h.beginRowIndex
- : f.rowIndex < 1
- ? 0
- : f.rowIndex - 1
- : g
- ? h.beginRowIndex
- : f.rowIndex),
- (e = c
- ? g
- ? h.endColIndex + 1
- : f.colIndex
- : g
- ? h.beginColIndex - 1
- : f.colIndex < 1
- ? 0
- : f.colIndex - 1),
- this.getCell(
- this.indexTable[d][e].rowIndex,
- this.indexTable[d][e].cellIndex
- ))
- } catch (i) {
- a(i)
- }
- },
- moveContent: function (a, c) {
- if (!b.isEmptyBlock(c)) {
- if (b.isEmptyBlock(a)) return void (a.innerHTML = c.innerHTML)
- var d = a.lastChild
- for (
- (3 != d.nodeType && dtd.$block[d.tagName]) ||
- a.appendChild(a.ownerDocument.createElement('br'));
- (d = c.firstChild);
- )
- a.appendChild(d)
- }
- },
- mergeRight: function (a) {
- var b = this.getCellInfo(a),
- c = b.colIndex + b.colSpan,
- d = this.indexTable[b.rowIndex][c],
- e = this.getCell(d.rowIndex, d.cellIndex)
- ;(a.colSpan = b.colSpan + d.colSpan),
- a.removeAttribute('width'),
- this.moveContent(a, e),
- this.deleteCell(e, d.rowIndex),
- this.update()
- },
- mergeDown: function (a) {
- var b = this.getCellInfo(a),
- c = b.rowIndex + b.rowSpan,
- d = this.indexTable[c][b.colIndex],
- e = this.getCell(d.rowIndex, d.cellIndex)
- ;(a.rowSpan = b.rowSpan + d.rowSpan),
- a.removeAttribute('height'),
- this.moveContent(a, e),
- this.deleteCell(e, d.rowIndex),
- this.update()
- },
- mergeRange: function () {
- var a = this.cellsRange,
- b = this.getCell(
- a.beginRowIndex,
- this.indexTable[a.beginRowIndex][a.beginColIndex].cellIndex
- )
- if ('TH' == b.tagName && a.endRowIndex !== a.beginRowIndex) {
- var c = this.indexTable,
- d = this.getCellInfo(b)
- ;(b = this.getCell(1, c[1][d.colIndex].cellIndex)),
- (a = this.getCellsRange(
- b,
- this.getCell(
- c[this.rowsNum - 1][d.colIndex].rowIndex,
- c[this.rowsNum - 1][d.colIndex].cellIndex
- )
- ))
- }
- for (var e, f = this.getCells(a), g = 0; (e = f[g++]); )
- e !== b && (this.moveContent(b, e), this.deleteCell(e))
- if (
- ((b.rowSpan = a.endRowIndex - a.beginRowIndex + 1),
- b.rowSpan > 1 && b.removeAttribute('height'),
- (b.colSpan = a.endColIndex - a.beginColIndex + 1),
- b.colSpan > 1 && b.removeAttribute('width'),
- b.rowSpan == this.rowsNum && 1 != b.colSpan && (b.colSpan = 1),
- b.colSpan == this.colsNum && 1 != b.rowSpan)
- ) {
- var h = b.parentNode.rowIndex
- if (this.table.deleteRow)
- for (var g = h + 1, i = h + 1, j = b.rowSpan; g < j; g++)
- this.table.deleteRow(i)
- else
- for (var g = 0, j = b.rowSpan - 1; g < j; g++) {
- var k = this.table.rows[h + 1]
- k.parentNode.removeChild(k)
- }
- b.rowSpan = 1
- }
- this.update()
- },
- insertRow: function (a, b) {
- function c(a, b, c) {
- if (0 == a) {
- var d = c.nextSibling || c.previousSibling,
- e = d.cells[a]
- 'TH' == e.tagName &&
- ((e = b.ownerDocument.createElement('th')),
- e.appendChild(b.firstChild),
- c.insertBefore(e, b),
- domUtils.remove(b))
- } else if ('TH' == b.tagName) {
- var f = b.ownerDocument.createElement('td')
- f.appendChild(b.firstChild),
- c.insertBefore(f, b),
- domUtils.remove(b)
- }
- }
- var d,
- e = this.colsNum,
- f = this.table,
- g = f.insertRow(a),
- h = 'string' == typeof b && 'TH' == b.toUpperCase()
- if (0 == a || a == this.rowsNum)
- for (var i = 0; i < e; i++)
- (d = this.cloneCell(b, !0)),
- this.setCellContent(d),
- d.getAttribute('vAlign') &&
- d.setAttribute('vAlign', d.getAttribute('vAlign')),
- g.appendChild(d),
- h || c(i, d, g)
- else {
- var j = this.indexTable[a]
- for (i = 0; i < e; i++) {
- var k = j[i]
- k.rowIndex < a
- ? ((d = this.getCell(k.rowIndex, k.cellIndex)),
- (d.rowSpan = k.rowSpan + 1))
- : ((d = this.cloneCell(b, !0)),
- this.setCellContent(d),
- g.appendChild(d)),
- h || c(i, d, g)
- }
- }
- return this.update(), g
- },
- deleteRow: function (a) {
- for (
- var b = this.table.rows[a],
- c = this.indexTable[a],
- d = this.colsNum,
- e = 0,
- f = 0;
- f < d;
- ) {
- var g = c[f],
- h = this.getCell(g.rowIndex, g.cellIndex)
- if (h.rowSpan > 1 && g.rowIndex == a) {
- var i = h.cloneNode(!0)
- ;(i.rowSpan = h.rowSpan - 1),
- (i.innerHTML = ''),
- (h.rowSpan = 1)
- var j,
- k = a + 1,
- l = this.table.rows[k],
- m = this.getPreviewMergedCellsNum(k, f) - e
- m < f
- ? ((j = f - m - 1), domUtils.insertAfter(l.cells[j], i))
- : l.cells.length && l.insertBefore(i, l.cells[0]),
- (e += 1)
- }
- f += h.colSpan || 1
- }
- var n = [],
- o = {}
- for (f = 0; f < d; f++) {
- var p = c[f].rowIndex,
- q = c[f].cellIndex,
- r = p + '_' + q
- o[r] || ((o[r] = 1), (h = this.getCell(p, q)), n.push(h))
- }
- var s = []
- utils.each(n, function (a) {
- 1 == a.rowSpan ? a.parentNode.removeChild(a) : s.push(a)
- }),
- utils.each(s, function (a) {
- a.rowSpan--
- }),
- b.parentNode.removeChild(b),
- this.update()
- },
- insertCol: function (a, b, c) {
- function d(a, b, c) {
- if (0 == a) {
- var d = b.nextSibling || b.previousSibling
- 'TH' == d.tagName &&
- ((d = b.ownerDocument.createElement('th')),
- d.appendChild(b.firstChild),
- c.insertBefore(d, b),
- domUtils.remove(b))
- } else if ('TH' == b.tagName) {
- var e = b.ownerDocument.createElement('td')
- e.appendChild(b.firstChild),
- c.insertBefore(e, b),
- domUtils.remove(b)
- }
- }
- var e,
- f,
- g,
- h = this.rowsNum,
- i = 0,
- j = parseInt(
- (this.table.offsetWidth -
- 20 * (this.colsNum + 1) -
- (this.colsNum + 1)) /
- (this.colsNum + 1),
- 10
- ),
- k = 'string' == typeof b && 'TH' == b.toUpperCase()
- if (0 == a || a == this.colsNum)
- for (; i < h; i++)
- (e = this.table.rows[i]),
- (g = e.cells[0 == a ? a : e.cells.length]),
- (f = this.cloneCell(b, !0)),
- this.setCellContent(f),
- f.setAttribute('vAlign', f.getAttribute('vAlign')),
- g && f.setAttribute('width', g.getAttribute('width')),
- a
- ? domUtils.insertAfter(e.cells[e.cells.length - 1], f)
- : e.insertBefore(f, e.cells[0]),
- k || d(i, f, e)
- else
- for (; i < h; i++) {
- var l = this.indexTable[i][a]
- l.colIndex < a
- ? ((f = this.getCell(l.rowIndex, l.cellIndex)),
- (f.colSpan = l.colSpan + 1))
- : ((e = this.table.rows[i]),
- (g = e.cells[l.cellIndex]),
- (f = this.cloneCell(b, !0)),
- this.setCellContent(f),
- f.setAttribute('vAlign', f.getAttribute('vAlign')),
- g && f.setAttribute('width', g.getAttribute('width')),
- g ? e.insertBefore(f, g) : e.appendChild(f)),
- k || d(i, f, e)
- }
- this.update(),
- this.updateWidth(j, c || { tdPadding: 10, tdBorder: 1 })
- },
- updateWidth: function (a, c) {
- var d = this.table,
- e = b.getWidth(d) - 2 * c.tdPadding - c.tdBorder + a
- if (e < d.ownerDocument.body.offsetWidth)
- return void d.setAttribute('width', e)
- var f = domUtils.getElementsByTagName(this.table, 'td th')
- utils.each(f, function (b) {
- b.setAttribute('width', a)
- })
- },
- deleteCol: function (a) {
- for (
- var b = this.indexTable,
- c = this.table.rows,
- d = this.table.getAttribute('width'),
- e = 0,
- f = this.rowsNum,
- g = {},
- h = 0;
- h < f;
- ) {
- var i = b[h],
- j = i[a],
- k = j.rowIndex + '_' + j.colIndex
- if (!g[k]) {
- g[k] = 1
- var l = this.getCell(j.rowIndex, j.cellIndex)
- e ||
- (e = l && parseInt(l.offsetWidth / l.colSpan, 10).toFixed(0)),
- l.colSpan > 1 ? l.colSpan-- : c[h].deleteCell(j.cellIndex),
- (h += j.rowSpan || 1)
- }
- }
- this.table.setAttribute('width', d - e), this.update()
- },
- splitToCells: function (a) {
- var b = this,
- c = this.splitToRows(a)
- utils.each(c, function (a) {
- b.splitToCols(a)
- })
- },
- splitToRows: function (a) {
- var b = this.getCellInfo(a),
- c = b.rowIndex,
- d = b.colIndex,
- e = []
- ;(a.rowSpan = 1), e.push(a)
- for (var f = c, g = c + b.rowSpan; f < g; f++)
- if (f != c) {
- var h = this.table.rows[f],
- i = h.insertCell(d - this.getPreviewMergedCellsNum(f, d))
- ;(i.colSpan = b.colSpan),
- this.setCellContent(i),
- i.setAttribute('vAlign', a.getAttribute('vAlign')),
- i.setAttribute('align', a.getAttribute('align')),
- a.style.cssText && (i.style.cssText = a.style.cssText),
- e.push(i)
- }
- return this.update(), e
- },
- getPreviewMergedCellsNum: function (a, b) {
- for (var c = this.indexTable[a], d = 0, e = 0; e < b; ) {
- var f = c[e].colSpan,
- g = c[e].rowIndex
- ;(d += f - (g == a ? 1 : 0)), (e += f)
- }
- return d
- },
- splitToCols: function (a) {
- var b = (a.offsetWidth / a.colSpan - 22).toFixed(0),
- c = this.getCellInfo(a),
- d = c.rowIndex,
- e = c.colIndex,
- f = []
- ;(a.colSpan = 1), a.setAttribute('width', b), f.push(a)
- for (var g = e, h = e + c.colSpan; g < h; g++)
- if (g != e) {
- var i = this.table.rows[d],
- j = i.insertCell(this.indexTable[d][g].cellIndex + 1)
- if (
- ((j.rowSpan = c.rowSpan),
- this.setCellContent(j),
- j.setAttribute('vAlign', a.getAttribute('vAlign')),
- j.setAttribute('align', a.getAttribute('align')),
- j.setAttribute('width', b),
- a.style.cssText && (j.style.cssText = a.style.cssText),
- 'TH' == a.tagName)
- ) {
- var k = a.ownerDocument.createElement('th')
- k.appendChild(j.firstChild),
- k.setAttribute('vAlign', a.getAttribute('vAlign')),
- (k.rowSpan = j.rowSpan),
- i.insertBefore(k, j),
- domUtils.remove(j)
- }
- f.push(j)
- }
- return this.update(), f
- },
- isLastCell: function (a, b, c) {
- ;(b = b || this.rowsNum), (c = c || this.colsNum)
- var d = this.getCellInfo(a)
- return d.rowIndex + d.rowSpan == b && d.colIndex + d.colSpan == c
- },
- getLastCell: function (a) {
- a = a || this.table.getElementsByTagName('td')
- var b,
- c = (this.getCellInfo(a[0]), this),
- d = a[0],
- e = d.parentNode,
- f = 0,
- g = 0
- return (
- utils.each(a, function (a) {
- a.parentNode == e && (g += a.colSpan || 1),
- (f += a.rowSpan * a.colSpan || 1)
- }),
- (b = f / g),
- utils.each(a, function (a) {
- if (c.isLastCell(a, b, g)) return (d = a), !1
- }),
- d
- )
- },
- selectRow: function (a) {
- var b = this.indexTable[a],
- c = this.getCell(b[0].rowIndex, b[0].cellIndex),
- d = this.getCell(
- b[this.colsNum - 1].rowIndex,
- b[this.colsNum - 1].cellIndex
- ),
- e = this.getCellsRange(c, d)
- this.setSelected(e)
- },
- selectTable: function () {
- var a = this.table.getElementsByTagName('td'),
- b = this.getCellsRange(a[0], a[a.length - 1])
- this.setSelected(b)
- },
- setBackground: function (a, b) {
- if ('string' == typeof b)
- utils.each(a, function (a) {
- a.style.backgroundColor = b
- })
- else if ('object' == typeof b) {
- b = utils.extend({ repeat: !0, colorList: ['#ddd', '#fff'] }, b)
- for (
- var c,
- d = this.getCellInfo(a[0]).rowIndex,
- e = 0,
- f = b.colorList,
- g = function (a, b, c) {
- return a[b] ? a[b] : c ? a[b % a.length] : ''
- },
- h = 0;
- (c = a[h++]);
- ) {
- var i = this.getCellInfo(c)
- c.style.backgroundColor = g(
- f,
- d + e == i.rowIndex ? e : ++e,
- b.repeat
- )
- }
- }
- },
- removeBackground: function (a) {
- utils.each(a, function (a) {
- a.style.backgroundColor = ''
- })
- }
- })
- })(),
- (function () {
- function a(a, c) {
- var d = domUtils.getElementsByTagName(a, 'td th')
- utils.each(d, function (a) {
- a.removeAttribute('width')
- }),
- a.setAttribute('width', b(c, !0, g(c, a)))
- var e = []
- setTimeout(function () {
- utils.each(d, function (a) {
- 1 == a.colSpan && e.push(a.offsetWidth)
- }),
- utils.each(d, function (a, b) {
- 1 == a.colSpan && a.setAttribute('width', e[b] + '')
- })
- }, 0)
- }
- function b(a, b, c) {
- var d = a.body
- return (
- d.offsetWidth -
- (b
- ? 2 * parseInt(domUtils.getComputedStyle(d, 'margin-left'), 10)
- : 0) -
- 2 * c.tableBorder -
- (a.options.offsetWidth || 0)
- )
- }
- function c(a) {
- var b = e(a).cell
- if (b) {
- var c = h(b)
- return c.selectedTds.length ? c.selectedTds : [b]
- }
- return []
- }
- var d = UE.UETable,
- e = function (a) {
- return d.getTableItemsByRange(a)
- },
- f = function (a) {
- return d.getUETableBySelected(a)
- },
- g = function (a, b) {
- return d.getDefaultValue(a, b)
- },
- h = function (a) {
- return d.getUETable(a)
- }
- ;(UE.commands.inserttable = {
- queryCommandState: function () {
- return e(this).table ? -1 : 0
- },
- execCommand: function (a, b) {
- function c(a, b) {
- for (var c = [], d = a.numRows, e = a.numCols, f = 0; f < d; f++) {
- c.push('<tr' + (0 == f ? ' class="firstRow"' : '') + '>')
- for (var g = 0; g < e; g++)
- c.push(
- '<td width="' +
- b +
- '" vAlign="' +
- a.tdvalign +
- '" >' +
- (browser.ie && browser.version < 11
- ? domUtils.fillChar
- : '<br/>') +
- '</td>'
- )
- c.push('</tr>')
- }
- return '<table><tbody>' + c.join('') + '</tbody></table>'
- }
- b ||
- (b = utils.extend(
- {},
- {
- numCols: this.options.defaultCols,
- numRows: this.options.defaultRows,
- tdvalign: this.options.tdvalign
- }
- ))
- var d = this,
- e = this.selection.getRange(),
- f = e.startContainer,
- h =
- domUtils.findParent(
- f,
- function (a) {
- return domUtils.isBlockElm(a)
- },
- !0
- ) || d.body,
- i = g(d),
- j = h.offsetWidth,
- k = Math.floor(j / b.numCols - 2 * i.tdPadding - i.tdBorder)
- !b.tdvalign && (b.tdvalign = d.options.tdvalign),
- d.execCommand('inserthtml', c(b, k))
- }
- }),
- (UE.commands.insertparagraphbeforetable = {
- queryCommandState: function () {
- return e(this).cell ? 0 : -1
- },
- execCommand: function () {
- var a = e(this).table
- if (a) {
- var b = this.document.createElement('p')
- ;(b.innerHTML = browser.ie ? ' ' : '<br />'),
- a.parentNode.insertBefore(b, a),
- this.selection.getRange().setStart(b, 0).setCursor()
- }
- }
- }),
- (UE.commands.deletetable = {
- queryCommandState: function () {
- var a = this.selection.getRange()
- return domUtils.findParentByTagName(a.startContainer, 'table', !0)
- ? 0
- : -1
- },
- execCommand: function (a, b) {
- var c = this.selection.getRange()
- if (
- (b =
- b ||
- domUtils.findParentByTagName(c.startContainer, 'table', !0))
- ) {
- var d = b.nextSibling
- d ||
- ((d = domUtils.createElement(this.document, 'p', {
- innerHTML: browser.ie ? domUtils.fillChar : '<br/>'
- })),
- b.parentNode.insertBefore(d, b)),
- domUtils.remove(b),
- (c = this.selection.getRange()),
- 3 == d.nodeType ? c.setStartBefore(d) : c.setStart(d, 0),
- c.setCursor(!1, !0),
- this.fireEvent('tablehasdeleted')
- }
- }
- }),
- (UE.commands.cellalign = {
- queryCommandState: function () {
- return c(this).length ? 0 : -1
- },
- execCommand: function (a, b) {
- var d = c(this)
- if (d.length)
- for (var e, f = 0; (e = d[f++]); ) e.setAttribute('align', b)
- }
- }),
- (UE.commands.cellvalign = {
- queryCommandState: function () {
- return c(this).length ? 0 : -1
- },
- execCommand: function (a, b) {
- var d = c(this)
- if (d.length)
- for (var e, f = 0; (e = d[f++]); ) e.setAttribute('vAlign', b)
- }
- }),
- (UE.commands.insertcaption = {
- queryCommandState: function () {
- var a = e(this).table
- return a && 0 == a.getElementsByTagName('caption').length ? 1 : -1
- },
- execCommand: function () {
- var a = e(this).table
- if (a) {
- var b = this.document.createElement('caption')
- ;(b.innerHTML = browser.ie ? domUtils.fillChar : '<br/>'),
- a.insertBefore(b, a.firstChild)
- var c = this.selection.getRange()
- c.setStart(b, 0).setCursor()
- }
- }
- }),
- (UE.commands.deletecaption = {
- queryCommandState: function () {
- var a = this.selection.getRange(),
- b = domUtils.findParentByTagName(a.startContainer, 'table')
- return b
- ? 0 == b.getElementsByTagName('caption').length
- ? -1
- : 1
- : -1
- },
- execCommand: function () {
- var a = this.selection.getRange(),
- b = domUtils.findParentByTagName(a.startContainer, 'table')
- if (b) {
- domUtils.remove(b.getElementsByTagName('caption')[0])
- var c = this.selection.getRange()
- c.setStart(b.rows[0].cells[0], 0).setCursor()
- }
- }
- }),
- (UE.commands.inserttitle = {
- queryCommandState: function () {
- var a = e(this).table
- if (a) {
- var b = a.rows[0]
- return 'th' != b.cells[b.cells.length - 1].tagName.toLowerCase()
- ? 0
- : -1
- }
- return -1
- },
- execCommand: function () {
- var a = e(this).table
- a && h(a).insertRow(0, 'th')
- var b = a.getElementsByTagName('th')[0]
- this.selection.getRange().setStart(b, 0).setCursor(!1, !0)
- }
- }),
- (UE.commands.deletetitle = {
- queryCommandState: function () {
- var a = e(this).table
- if (a) {
- var b = a.rows[0]
- return 'th' == b.cells[b.cells.length - 1].tagName.toLowerCase()
- ? 0
- : -1
- }
- return -1
- },
- execCommand: function () {
- var a = e(this).table
- a && domUtils.remove(a.rows[0])
- var b = a.getElementsByTagName('td')[0]
- this.selection.getRange().setStart(b, 0).setCursor(!1, !0)
- }
- }),
- (UE.commands.inserttitlecol = {
- queryCommandState: function () {
- var a = e(this).table
- if (a) {
- var b = a.rows[a.rows.length - 1]
- return b.getElementsByTagName('th').length ? -1 : 0
- }
- return -1
- },
- execCommand: function (b) {
- var c = e(this).table
- c && h(c).insertCol(0, 'th'), a(c, this)
- var d = c.getElementsByTagName('th')[0]
- this.selection.getRange().setStart(d, 0).setCursor(!1, !0)
- }
- }),
- (UE.commands.deletetitlecol = {
- queryCommandState: function () {
- var a = e(this).table
- if (a) {
- var b = a.rows[a.rows.length - 1]
- return b.getElementsByTagName('th').length ? 0 : -1
- }
- return -1
- },
- execCommand: function () {
- var b = e(this).table
- if (b)
- for (var c = 0; c < b.rows.length; c++)
- domUtils.remove(b.rows[c].children[0])
- a(b, this)
- var d = b.getElementsByTagName('td')[0]
- this.selection.getRange().setStart(d, 0).setCursor(!1, !0)
- }
- }),
- (UE.commands.mergeright = {
- queryCommandState: function (a) {
- var b = e(this),
- c = b.table,
- d = b.cell
- if (!c || !d) return -1
- var f = h(c)
- if (f.selectedTds.length) return -1
- var g = f.getCellInfo(d),
- i = g.colIndex + g.colSpan
- if (i >= f.colsNum) return -1
- var j = f.indexTable[g.rowIndex][i],
- k = c.rows[j.rowIndex].cells[j.cellIndex]
- return k &&
- d.tagName == k.tagName &&
- j.rowIndex == g.rowIndex &&
- j.rowSpan == g.rowSpan
- ? 0
- : -1
- },
- execCommand: function (a) {
- var b = this.selection.getRange(),
- c = b.createBookmark(!0),
- d = e(this).cell,
- f = h(d)
- f.mergeRight(d), b.moveToBookmark(c).select()
- }
- }),
- (UE.commands.mergedown = {
- queryCommandState: function (a) {
- var b = e(this),
- c = b.table,
- d = b.cell
- if (!c || !d) return -1
- var f = h(c)
- if (f.selectedTds.length) return -1
- var g = f.getCellInfo(d),
- i = g.rowIndex + g.rowSpan
- if (i >= f.rowsNum) return -1
- var j = f.indexTable[i][g.colIndex],
- k = c.rows[j.rowIndex].cells[j.cellIndex]
- return k &&
- d.tagName == k.tagName &&
- j.colIndex == g.colIndex &&
- j.colSpan == g.colSpan
- ? 0
- : -1
- },
- execCommand: function () {
- var a = this.selection.getRange(),
- b = a.createBookmark(!0),
- c = e(this).cell,
- d = h(c)
- d.mergeDown(c), a.moveToBookmark(b).select()
- }
- }),
- (UE.commands.mergecells = {
- queryCommandState: function () {
- return f(this) ? 0 : -1
- },
- execCommand: function () {
- var a = f(this)
- if (a && a.selectedTds.length) {
- var b = a.selectedTds[0]
- a.mergeRange()
- var c = this.selection.getRange()
- domUtils.isEmptyBlock(b)
- ? c.setStart(b, 0).collapse(!0)
- : c.selectNodeContents(b),
- c.select()
- }
- }
- }),
- (UE.commands.insertrow = {
- queryCommandState: function () {
- var a = e(this),
- b = a.cell
- return b &&
- ('TD' == b.tagName ||
- ('TH' == b.tagName && a.tr !== a.table.rows[0])) &&
- h(a.table).rowsNum < this.options.maxRowNum
- ? 0
- : -1
- },
- execCommand: function () {
- var a = this.selection.getRange(),
- b = a.createBookmark(!0),
- c = e(this),
- d = c.cell,
- f = c.table,
- g = h(f),
- i = g.getCellInfo(d)
- if (g.selectedTds.length)
- for (
- var j = g.cellsRange,
- k = 0,
- l = j.endRowIndex - j.beginRowIndex + 1;
- k < l;
- k++
- )
- g.insertRow(j.beginRowIndex, d)
- else g.insertRow(i.rowIndex, d)
- a.moveToBookmark(b).select(),
- 'enabled' === f.getAttribute('interlaced') &&
- this.fireEvent('interlacetable', f)
- }
- }),
- (UE.commands.insertrownext = {
- queryCommandState: function () {
- var a = e(this),
- b = a.cell
- return b &&
- 'TD' == b.tagName &&
- h(a.table).rowsNum < this.options.maxRowNum
- ? 0
- : -1
- },
- execCommand: function () {
- var a = this.selection.getRange(),
- b = a.createBookmark(!0),
- c = e(this),
- d = c.cell,
- f = c.table,
- g = h(f),
- i = g.getCellInfo(d)
- if (g.selectedTds.length)
- for (
- var j = g.cellsRange,
- k = 0,
- l = j.endRowIndex - j.beginRowIndex + 1;
- k < l;
- k++
- )
- g.insertRow(j.endRowIndex + 1, d)
- else g.insertRow(i.rowIndex + i.rowSpan, d)
- a.moveToBookmark(b).select(),
- 'enabled' === f.getAttribute('interlaced') &&
- this.fireEvent('interlacetable', f)
- }
- }),
- (UE.commands.deleterow = {
- queryCommandState: function () {
- var a = e(this)
- return a.cell ? 0 : -1
- },
- execCommand: function () {
- var a = e(this).cell,
- b = h(a),
- c = b.cellsRange,
- d = b.getCellInfo(a),
- f = b.getVSideCell(a),
- g = b.getVSideCell(a, !0),
- i = this.selection.getRange()
- if (utils.isEmptyObject(c)) b.deleteRow(d.rowIndex)
- else
- for (var j = c.beginRowIndex; j < c.endRowIndex + 1; j++)
- b.deleteRow(c.beginRowIndex)
- var k = b.table
- if (k.getElementsByTagName('td').length)
- if (
- 1 == d.rowSpan ||
- d.rowSpan == c.endRowIndex - c.beginRowIndex + 1
- )
- (g || f) && i.selectNodeContents(g || f).setCursor(!1, !0)
- else {
- var l = b.getCell(
- d.rowIndex,
- b.indexTable[d.rowIndex][d.colIndex].cellIndex
- )
- l && i.selectNodeContents(l).setCursor(!1, !0)
- }
- else {
- var m = k.nextSibling
- domUtils.remove(k), m && i.setStart(m, 0).setCursor(!1, !0)
- }
- 'enabled' === k.getAttribute('interlaced') &&
- this.fireEvent('interlacetable', k)
- }
- }),
- (UE.commands.insertcol = {
- queryCommandState: function (a) {
- var b = e(this),
- c = b.cell
- return c &&
- ('TD' == c.tagName ||
- ('TH' == c.tagName && c !== b.tr.cells[0])) &&
- h(b.table).colsNum < this.options.maxColNum
- ? 0
- : -1
- },
- execCommand: function (a) {
- var b = this.selection.getRange(),
- c = b.createBookmark(!0)
- if (this.queryCommandState(a) != -1) {
- var d = e(this).cell,
- f = h(d),
- g = f.getCellInfo(d)
- if (f.selectedTds.length)
- for (
- var i = f.cellsRange,
- j = 0,
- k = i.endColIndex - i.beginColIndex + 1;
- j < k;
- j++
- )
- f.insertCol(i.beginColIndex, d)
- else f.insertCol(g.colIndex, d)
- b.moveToBookmark(c).select(!0)
- }
- }
- }),
- (UE.commands.insertcolnext = {
- queryCommandState: function () {
- var a = e(this),
- b = a.cell
- return b && h(a.table).colsNum < this.options.maxColNum ? 0 : -1
- },
- execCommand: function () {
- var a = this.selection.getRange(),
- b = a.createBookmark(!0),
- c = e(this).cell,
- d = h(c),
- f = d.getCellInfo(c)
- if (d.selectedTds.length)
- for (
- var g = d.cellsRange,
- i = 0,
- j = g.endColIndex - g.beginColIndex + 1;
- i < j;
- i++
- )
- d.insertCol(g.endColIndex + 1, c)
- else d.insertCol(f.colIndex + f.colSpan, c)
- a.moveToBookmark(b).select()
- }
- }),
- (UE.commands.deletecol = {
- queryCommandState: function () {
- var a = e(this)
- return a.cell ? 0 : -1
- },
- execCommand: function () {
- var a = e(this).cell,
- b = h(a),
- c = b.cellsRange,
- d = b.getCellInfo(a),
- f = b.getHSideCell(a),
- g = b.getHSideCell(a, !0)
- if (utils.isEmptyObject(c)) b.deleteCol(d.colIndex)
- else
- for (var i = c.beginColIndex; i < c.endColIndex + 1; i++)
- b.deleteCol(c.beginColIndex)
- var j = b.table,
- k = this.selection.getRange()
- if (j.getElementsByTagName('td').length)
- domUtils.inDoc(a, this.document)
- ? k.setStart(a, 0).setCursor(!1, !0)
- : g && domUtils.inDoc(g, this.document)
- ? k.selectNodeContents(g).setCursor(!1, !0)
- : f &&
- domUtils.inDoc(f, this.document) &&
- k.selectNodeContents(f).setCursor(!0, !0)
- else {
- var l = j.nextSibling
- domUtils.remove(j), l && k.setStart(l, 0).setCursor(!1, !0)
- }
- }
- }),
- (UE.commands.splittocells = {
- queryCommandState: function () {
- var a = e(this),
- b = a.cell
- if (!b) return -1
- var c = h(a.table)
- return c.selectedTds.length > 0
- ? -1
- : b && (b.colSpan > 1 || b.rowSpan > 1)
- ? 0
- : -1
- },
- execCommand: function () {
- var a = this.selection.getRange(),
- b = a.createBookmark(!0),
- c = e(this).cell,
- d = h(c)
- d.splitToCells(c), a.moveToBookmark(b).select()
- }
- }),
- (UE.commands.splittorows = {
- queryCommandState: function () {
- var a = e(this),
- b = a.cell
- if (!b) return -1
- var c = h(a.table)
- return c.selectedTds.length > 0 ? -1 : b && b.rowSpan > 1 ? 0 : -1
- },
- execCommand: function () {
- var a = this.selection.getRange(),
- b = a.createBookmark(!0),
- c = e(this).cell,
- d = h(c)
- d.splitToRows(c), a.moveToBookmark(b).select()
- }
- }),
- (UE.commands.splittocols = {
- queryCommandState: function () {
- var a = e(this),
- b = a.cell
- if (!b) return -1
- var c = h(a.table)
- return c.selectedTds.length > 0 ? -1 : b && b.colSpan > 1 ? 0 : -1
- },
- execCommand: function () {
- var a = this.selection.getRange(),
- b = a.createBookmark(!0),
- c = e(this).cell,
- d = h(c)
- d.splitToCols(c), a.moveToBookmark(b).select()
- }
- }),
- (UE.commands.adaptbytext = UE.commands.adaptbywindow =
- {
- queryCommandState: function () {
- return e(this).table ? 0 : -1
- },
- execCommand: function (b) {
- var c = e(this),
- d = c.table
- if (d)
- if ('adaptbywindow' == b) a(d, this)
- else {
- var f = domUtils.getElementsByTagName(d, 'td th')
- utils.each(f, function (a) {
- a.removeAttribute('width')
- }),
- d.removeAttribute('width')
- }
- }
- }),
- (UE.commands.averagedistributecol = {
- queryCommandState: function () {
- var a = f(this)
- return a && (a.isFullRow() || a.isFullCol()) ? 0 : -1
- },
- execCommand: function (a) {
- function b() {
- var a,
- b = e.table,
- c = 0,
- f = 0,
- h = g(d, b)
- if (e.isFullRow()) (c = b.offsetWidth), (f = e.colsNum)
- else
- for (
- var i,
- j = e.cellsRange.beginColIndex,
- k = e.cellsRange.endColIndex,
- l = j;
- l <= k;
- )
- (i = e.selectedTds[l]),
- (c += i.offsetWidth),
- (l += i.colSpan),
- (f += 1)
- return (a = Math.ceil(c / f) - 2 * h.tdBorder - 2 * h.tdPadding)
- }
- function c(a) {
- utils.each(
- domUtils.getElementsByTagName(e.table, 'th'),
- function (a) {
- a.setAttribute('width', '')
- }
- )
- var b = e.isFullRow()
- ? domUtils.getElementsByTagName(e.table, 'td')
- : e.selectedTds
- utils.each(b, function (b) {
- 1 == b.colSpan && b.setAttribute('width', a)
- })
- }
- var d = this,
- e = f(d)
- e && e.selectedTds.length && c(b())
- }
- }),
- (UE.commands.averagedistributerow = {
- queryCommandState: function () {
- var a = f(this)
- return a
- ? a.selectedTds && /th/gi.test(a.selectedTds[0].tagName)
- ? -1
- : a.isFullRow() || a.isFullCol()
- ? 0
- : -1
- : -1
- },
- execCommand: function (a) {
- function b() {
- var a,
- b,
- c = 0,
- f = e.table,
- h = g(d, f),
- i = parseInt(
- domUtils.getComputedStyle(
- f.getElementsByTagName('td')[0],
- 'padding-top'
- )
- )
- if (e.isFullCol()) {
- var j,
- k,
- l = domUtils.getElementsByTagName(f, 'caption'),
- m = domUtils.getElementsByTagName(f, 'th')
- l.length > 0 && (j = l[0].offsetHeight),
- m.length > 0 && (k = m[0].offsetHeight),
- (c = f.offsetHeight - (j || 0) - (k || 0)),
- (b = 0 == m.length ? e.rowsNum : e.rowsNum - 1)
- } else {
- for (
- var n = e.cellsRange.beginRowIndex,
- o = e.cellsRange.endRowIndex,
- p = 0,
- q = domUtils.getElementsByTagName(f, 'tr'),
- r = n;
- r <= o;
- r++
- )
- (c += q[r].offsetHeight), (p += 1)
- b = p
- }
- return (a =
- browser.ie && browser.version < 9
- ? Math.ceil(c / b)
- : Math.ceil(c / b) - 2 * h.tdBorder - 2 * i)
- }
- function c(a) {
- var b = e.isFullCol()
- ? domUtils.getElementsByTagName(e.table, 'td')
- : e.selectedTds
- utils.each(b, function (b) {
- 1 == b.rowSpan && b.setAttribute('height', a)
- })
- }
- var d = this,
- e = f(d)
- e && e.selectedTds.length && c(b())
- }
- }),
- (UE.commands.cellalignment = {
- queryCommandState: function () {
- return e(this).table ? 0 : -1
- },
- execCommand: function (a, b) {
- var c = this,
- d = f(c)
- if (d)
- utils.each(d.selectedTds, function (a) {
- domUtils.setAttributes(a, b)
- })
- else {
- var e = c.selection.getStart(),
- g =
- e &&
- domUtils.findParentByTagName(e, ['td', 'th', 'caption'], !0)
- ;/caption/gi.test(g.tagName)
- ? ((g.style.textAlign = b.align),
- (g.style.verticalAlign = b.vAlign))
- : domUtils.setAttributes(g, b),
- c.selection.getRange().setCursor(!0)
- }
- },
- queryCommandValue: function (a) {
- var b = e(this).cell
- if ((b || (b = c(this)[0]), b)) {
- var d = UE.UETable.getUETable(b).selectedTds
- return !d.length && (d = b), UE.UETable.getTableCellAlignState(d)
- }
- return null
- }
- }),
- (UE.commands.tablealignment = {
- queryCommandState: function () {
- return browser.ie && browser.version < 8
- ? -1
- : e(this).table
- ? 0
- : -1
- },
- execCommand: function (a, b) {
- var c = this,
- d = c.selection.getStart(),
- e = d && domUtils.findParentByTagName(d, ['table'], !0)
- e && e.setAttribute('align', b)
- }
- }),
- (UE.commands.edittable = {
- queryCommandState: function () {
- return e(this).table ? 0 : -1
- },
- execCommand: function (a, b) {
- var c = this.selection.getRange(),
- d = domUtils.findParentByTagName(c.startContainer, 'table')
- if (d) {
- var e = domUtils
- .getElementsByTagName(d, 'td')
- .concat(
- domUtils.getElementsByTagName(d, 'th'),
- domUtils.getElementsByTagName(d, 'caption')
- )
- utils.each(e, function (a) {
- a.style.borderColor = b
- })
- }
- }
- }),
- (UE.commands.edittd = {
- queryCommandState: function () {
- return e(this).table ? 0 : -1
- },
- execCommand: function (a, b) {
- var c = this,
- d = f(c)
- if (d)
- utils.each(d.selectedTds, function (a) {
- a.style.backgroundColor = b
- })
- else {
- var e = c.selection.getStart(),
- g =
- e &&
- domUtils.findParentByTagName(e, ['td', 'th', 'caption'], !0)
- g && (g.style.backgroundColor = b)
- }
- }
- }),
- (UE.commands.settablebackground = {
- queryCommandState: function () {
- return c(this).length > 1 ? 0 : -1
- },
- execCommand: function (a, b) {
- var d, e
- ;(d = c(this)), (e = h(d[0])), e.setBackground(d, b)
- }
- }),
- (UE.commands.cleartablebackground = {
- queryCommandState: function () {
- var a = c(this)
- if (!a.length) return -1
- for (var b, d = 0; (b = a[d++]); )
- if ('' !== b.style.backgroundColor) return 0
- return -1
- },
- execCommand: function () {
- var a = c(this),
- b = h(a[0])
- b.removeBackground(a)
- }
- }),
- (UE.commands.interlacetable = UE.commands.uninterlacetable =
- {
- queryCommandState: function (a) {
- var b = e(this).table
- if (!b) return -1
- var c = b.getAttribute('interlaced')
- return 'interlacetable' == a
- ? 'enabled' === c
- ? -1
- : 0
- : c && 'disabled' !== c
- ? 0
- : -1
- },
- execCommand: function (a, b) {
- var c = e(this).table
- 'interlacetable' == a
- ? (c.setAttribute('interlaced', 'enabled'),
- this.fireEvent('interlacetable', c, b))
- : (c.setAttribute('interlaced', 'disabled'),
- this.fireEvent('uninterlacetable', c))
- }
- }),
- (UE.commands.setbordervisible = {
- queryCommandState: function (a) {
- var b = e(this).table
- return b ? 0 : -1
- },
- execCommand: function () {
- var a = e(this).table
- utils.each(domUtils.getElementsByTagName(a, 'td'), function (a) {
- ;(a.style.borderWidth = '1px'), (a.style.borderStyle = 'solid')
- })
- }
- })
- })(),
- (UE.plugins.table = function () {
- function a(a) {}
- function b(a, b) {
- c(a, 'width', !0), c(a, 'height', !0)
- }
- function c(a, b, c) {
- a.style[b] &&
- (c && a.setAttribute(b, parseInt(a.style[b], 10)), (a.style[b] = ''))
- }
- function d(a) {
- if ('TD' == a.tagName || 'TH' == a.tagName) return a
- var b
- return (b =
- domUtils.findParentByTagName(a, 'td', !0) ||
- domUtils.findParentByTagName(a, 'th', !0))
- ? b
- : null
- }
- function e(a) {
- var b = new RegExp(domUtils.fillChar, 'g')
- if (
- a[browser.ie ? 'innerText' : 'textContent']
- .replace(/^\s*$/, '')
- .replace(b, '').length > 0
- )
- return 0
- for (var c in dtd.$isNotEmpty)
- if (a.getElementsByTagName(c).length) return 0
- return 1
- }
- function f(a) {
- return a.pageX || a.pageY
- ? { x: a.pageX, y: a.pageY }
- : {
- x:
- a.clientX +
- N.document.body.scrollLeft -
- N.document.body.clientLeft,
- y:
- a.clientY +
- N.document.body.scrollTop -
- N.document.body.clientTop
- }
- }
- function g(b) {
- if (!A())
- try {
- var c,
- e = d(b.target || b.srcElement)
- if (
- (R &&
- ((N.body.style.webkitUserSelect = 'none'),
- (Math.abs(V.x - b.clientX) > T ||
- Math.abs(V.y - b.clientY) > T) &&
- (t(), (R = !1), (U = 0), v(b))),
- ca && ha)
- )
- return (
- (U = 0),
- (N.body.style.webkitUserSelect = 'none'),
- N.selection
- .getNative()
- [browser.ie9below ? 'empty' : 'removeAllRanges'](),
- (c = f(b)),
- m(N, !0, ca, c, e),
- void ('h' == ca
- ? (ga.style.left = k(ha, b) + 'px')
- : 'v' == ca && (ga.style.top = l(ha, b) + 'px'))
- )
- if (e) {
- if (N.fireEvent('excludetable', e) === !0) return
- c = f(b)
- var g = n(e, c),
- i = domUtils.findParentByTagName(e, 'table', !0)
- if (j(i, e, b, !0)) {
- if (N.fireEvent('excludetable', i) === !0) return
- N.body.style.cursor =
- 'url(' + N.options.cursorpath + 'h.png),pointer'
- } else if (j(i, e, b)) {
- if (N.fireEvent('excludetable', i) === !0) return
- N.body.style.cursor =
- 'url(' + N.options.cursorpath + 'v.png),pointer'
- } else {
- N.body.style.cursor = 'text'
- ;/\d/.test(g) &&
- ((g = g.replace(/\d/, '')),
- (e = Y(e).getPreviewCell(e, 'v' == g))),
- m(N, !!e && !!g, e ? g : '', c, e)
- }
- } else h(!1, i, N)
- } catch (o) {
- a(o)
- }
- }
- function h(a, b, c) {
- if (a) i(b, c)
- else {
- if (fa) return
- la = setTimeout(function () {
- !fa && ea && ea.parentNode && ea.parentNode.removeChild(ea)
- }, 2e3)
- }
- }
- function i(a, b) {
- function c(c, d) {
- clearTimeout(g),
- (g = setTimeout(function () {
- b.fireEvent('tableClicked', a, d)
- }, 300))
- }
- function d(c) {
- clearTimeout(g)
- var d = Y(a),
- e = a.rows[0].cells[0],
- f = d.getLastCell(),
- h = d.getCellsRange(e, f)
- b.selection.getRange().setStart(e, 0).setCursor(!1, !0),
- d.setSelected(h)
- }
- var e = domUtils.getXY(a),
- f = a.ownerDocument
- if (ea && ea.parentNode) return ea
- ;(ea = f.createElement('div')),
- (ea.contentEditable = !1),
- (ea.innerHTML = ''),
- (ea.style.cssText =
- 'width:15px;height:15px;background-image:url(' +
- b.options.UEDITOR_HOME_URL +
- 'dialogs/table/dragicon.png);position: absolute;cursor:move;top:' +
- (e.y - 15) +
- 'px;left:' +
- e.x +
- 'px;'),
- domUtils.unSelectable(ea),
- (ea.onmouseover = function (a) {
- fa = !0
- }),
- (ea.onmouseout = function (a) {
- fa = !1
- }),
- domUtils.on(ea, 'click', function (a, b) {
- c(b, this)
- }),
- domUtils.on(ea, 'dblclick', function (a, b) {
- d(b)
- }),
- domUtils.on(ea, 'dragstart', function (a, b) {
- domUtils.preventDefault(b)
- })
- var g
- f.body.appendChild(ea)
- }
- function j(a, b, c, d) {
- var e = f(c),
- g = n(b, e)
- if (d) {
- var h = a.getElementsByTagName('caption')[0],
- i = h ? h.offsetHeight : 0
- return 'v1' == g && e.y - domUtils.getXY(a).y - i < 8
- }
- return 'h1' == g && e.x - domUtils.getXY(a).x < 8
- }
- function k(a, b) {
- var c = Y(a)
- if (c) {
- var d = c.getSameEndPosCells(a, 'x')[0],
- e = c.getSameStartPosXCells(a)[0],
- g = f(b).x,
- h = (d ? domUtils.getXY(d).x : domUtils.getXY(c.table).x) + 20,
- i = e
- ? domUtils.getXY(e).x + e.offsetWidth - 20
- : N.body.offsetWidth + 5 ||
- parseInt(domUtils.getComputedStyle(N.body, 'width'), 10)
- return (h += Q), (i -= Q), g < h ? h : g > i ? i : g
- }
- }
- function l(b, c) {
- try {
- var d = domUtils.getXY(b).y,
- e = f(c).y
- return e < d ? d : e
- } catch (g) {
- a(g)
- }
- }
- function m(b, c, d, e, f) {
- try {
- ;(b.body.style.cursor =
- 'h' == d ? 'col-resize' : 'v' == d ? 'row-resize' : 'text'),
- browser.ie &&
- (!d || ia || Z(b) ? I(b) : (H(b, b.document), J(d, f))),
- (da = c)
- } catch (g) {
- a(g)
- }
- }
- function n(a, b) {
- var c = domUtils.getXY(a)
- return c
- ? c.x + a.offsetWidth - b.x < S
- ? 'h'
- : b.x - c.x < S
- ? 'h1'
- : c.y + a.offsetHeight - b.y < S
- ? 'v'
- : b.y - c.y < S
- ? 'v1'
- : ''
- : ''
- }
- function o(a, b) {
- if (!A())
- if (((V = { x: b.clientX, y: b.clientY }), 2 == b.button)) {
- var c = Z(N),
- d = !1
- if (c) {
- var e = M(N, b)
- utils.each(c.selectedTds, function (a) {
- a === e && (d = !0)
- }),
- d
- ? ((e = c.selectedTds[0]),
- setTimeout(function () {
- N.selection.getRange().setStart(e, 0).setCursor(!1, !0)
- }, 0))
- : (_(domUtils.getElementsByTagName(N.body, 'th td')),
- c.clearSelected())
- }
- } else q(b)
- }
- function p(a) {
- ;(U = 0), (a = a || N.window.event)
- var b = d(a.target || a.srcElement)
- if (b) {
- var c
- if ((c = n(b, f(a)))) {
- if ((I(N), 'h1' == c))
- if (
- ((c = 'h'), j(domUtils.findParentByTagName(b, 'table'), b, a))
- )
- N.execCommand('adaptbywindow')
- else if ((b = Y(b).getPreviewCell(b))) {
- var e = N.selection.getRange()
- e.selectNodeContents(b).setCursor(!0, !0)
- }
- if ('h' == c) {
- var g = Y(b),
- h = g.table,
- i = C(b, h, !0)
- ;(i = s(i, 'left')), (g.width = g.offsetWidth)
- var k = [],
- l = []
- utils.each(i, function (a) {
- k.push(a.offsetWidth)
- }),
- utils.each(i, function (a) {
- a.removeAttribute('width')
- }),
- window.setTimeout(function () {
- var a = !0
- utils.each(i, function (b, c) {
- var d = b.offsetWidth
- return d > k[c] ? ((a = !1), !1) : void l.push(d)
- })
- var b = a ? l : k
- utils.each(i, function (a, c) {
- a.width = b[c] - G()
- })
- }, 0)
- }
- }
- }
- }
- function q(a) {
- if (
- (_(domUtils.getElementsByTagName(N.body, 'td th')),
- utils.each(N.document.getElementsByTagName('table'), function (a) {
- a.ueTable = null
- }),
- (aa = M(N, a)))
- ) {
- var b = domUtils.findParentByTagName(aa, 'table', !0)
- ;(ut = Y(b)),
- ut && ut.clearSelected(),
- da
- ? r(a)
- : ((N.document.body.style.webkitUserSelect = ''),
- (ia = !0),
- N.addListener('mouseover', x))
- }
- }
- function r(a) {
- browser.ie && (a = u(a)),
- t(),
- (R = !0),
- (O = setTimeout(function () {
- v(a)
- }, W))
- }
- function s(a, b) {
- for (var c = [], d = null, e = 0, f = a.length; e < f; e++)
- (d = a[e][b]), d && c.push(d)
- return c
- }
- function t() {
- O && clearTimeout(O), (O = null)
- }
- function u(a) {
- var b = [
- 'pageX',
- 'pageY',
- 'clientX',
- 'clientY',
- 'srcElement',
- 'target'
- ],
- c = {}
- if (a)
- for (var d, e, f = 0; (d = b[f]); f++) (e = a[d]), e && (c[d] = e)
- return c
- }
- function v(a) {
- if (((R = !1), (aa = a.target || a.srcElement))) {
- var b = n(aa, f(a))
- ;/\d/.test(b) &&
- ((b = b.replace(/\d/, '')),
- (aa = Y(aa).getPreviewCell(aa, 'v' == b))),
- I(N),
- H(N, N.document),
- N.fireEvent('saveScene'),
- J(b, aa),
- (ia = !0),
- (ca = b),
- (ha = aa)
- }
- }
- function w(a, b) {
- if (!A()) {
- if (
- (t(),
- (R = !1),
- da &&
- ((U = ++U % 3),
- (V = { x: b.clientX, y: b.clientY }),
- (P = setTimeout(function () {
- U > 0 && U--
- }, W)),
- 2 === U))
- )
- return (U = 0), void p(b)
- if (2 != b.button) {
- var c = this,
- d = c.selection.getRange(),
- e = domUtils.findParentByTagName(d.startContainer, 'table', !0),
- f = domUtils.findParentByTagName(d.endContainer, 'table', !0)
- if (
- ((e || f) &&
- (e === f
- ? ((e = domUtils.findParentByTagName(
- d.startContainer,
- ['td', 'th', 'caption'],
- !0
- )),
- (f = domUtils.findParentByTagName(
- d.endContainer,
- ['td', 'th', 'caption'],
- !0
- )),
- e !== f && c.selection.clearRange())
- : c.selection.clearRange()),
- (ia = !1),
- (c.document.body.style.webkitUserSelect = ''),
- ca &&
- ha &&
- (c.selection
- .getNative()
- [browser.ie9below ? 'empty' : 'removeAllRanges'](),
- (U = 0),
- (ga = c.document.getElementById('ue_tableDragLine'))))
- ) {
- var g = domUtils.getXY(ha),
- h = domUtils.getXY(ga)
- switch (ca) {
- case 'h':
- z(ha, h.x - g.x)
- break
- case 'v':
- B(ha, h.y - g.y - ha.offsetHeight)
- }
- return (ca = ''), (ha = null), I(c), void c.fireEvent('saveScene')
- }
- if (aa) {
- var i = Y(aa),
- j = i ? i.selectedTds[0] : null
- if (j)
- (d = new dom.Range(c.document)),
- domUtils.isEmptyBlock(j)
- ? d.setStart(j, 0).setCursor(!1, !0)
- : d.selectNodeContents(j).shrinkBoundary().setCursor(!1, !0)
- else if (
- ((d = c.selection.getRange().shrinkBoundary()), !d.collapsed)
- ) {
- var e = domUtils.findParentByTagName(
- d.startContainer,
- ['td', 'th'],
- !0
- ),
- f = domUtils.findParentByTagName(
- d.endContainer,
- ['td', 'th'],
- !0
- )
- ;((e && !f) || (!e && f) || (e && f && e !== f)) &&
- d.setCursor(!1, !0)
- }
- ;(aa = null), c.removeListener('mouseover', x)
- } else {
- var k = domUtils.findParentByTagName(
- b.target || b.srcElement,
- 'td',
- !0
- )
- if (
- (k ||
- (k = domUtils.findParentByTagName(
- b.target || b.srcElement,
- 'th',
- !0
- )),
- k && ('TD' == k.tagName || 'TH' == k.tagName))
- ) {
- if (c.fireEvent('excludetable', k) === !0) return
- ;(d = new dom.Range(c.document)),
- d.setStart(k, 0).setCursor(!1, !0)
- }
- }
- c._selectionChange(250, b)
- }
- }
- }
- function x(a, b) {
- if (!A()) {
- var c = this,
- d = b.target || b.srcElement
- if (
- ((ba =
- domUtils.findParentByTagName(d, 'td', !0) ||
- domUtils.findParentByTagName(d, 'th', !0)),
- aa &&
- ba &&
- (('TD' == aa.tagName && 'TD' == ba.tagName) ||
- ('TH' == aa.tagName && 'TH' == ba.tagName)) &&
- domUtils.findParentByTagName(aa, 'table') ==
- domUtils.findParentByTagName(ba, 'table'))
- ) {
- var e = Y(ba)
- if (aa != ba) {
- ;(c.document.body.style.webkitUserSelect = 'none'),
- c.selection
- .getNative()
- [browser.ie9below ? 'empty' : 'removeAllRanges']()
- var f = e.getCellsRange(aa, ba)
- e.setSelected(f)
- } else
- (c.document.body.style.webkitUserSelect = ''), e.clearSelected()
- }
- b.preventDefault ? b.preventDefault() : (b.returnValue = !1)
- }
- }
- function y(a, b, c) {
- var d = parseInt(domUtils.getComputedStyle(a, 'line-height'), 10),
- e = c + b
- ;(b = e < d ? d : e),
- a.style.height && (a.style.height = ''),
- 1 == a.rowSpan
- ? a.setAttribute('height', b)
- : a.removeAttribute && a.removeAttribute('height')
- }
- function z(a, b) {
- var c = Y(a)
- if (c) {
- var d = c.table,
- e = C(a, d)
- if (
- ((d.style.width = ''),
- d.removeAttribute('width'),
- (b = D(b, a, e)),
- a.nextSibling)
- ) {
- utils.each(e, function (a) {
- ;(a.left.width = +a.left.width + b),
- a.right && (a.right.width = +a.right.width - b)
- })
- } else
- utils.each(e, function (a) {
- a.left.width -= -b
- })
- }
- }
- function A() {
- return 'false' === N.body.contentEditable
- }
- function B(a, b) {
- if (!(Math.abs(b) < 10)) {
- var c = Y(a)
- if (c)
- for (
- var d,
- e = c.getSameEndPosCells(a, 'y'),
- f = e[0] ? e[0].offsetHeight : 0,
- g = 0;
- (d = e[g++]);
- )
- y(d, b, f)
- }
- }
- function C(a, b, c) {
- if ((b || (b = domUtils.findParentByTagName(a, 'table')), !b))
- return null
- for (var d = (domUtils.getNodeIndex(a), a), e = b.rows, f = 0; d; )
- 1 === d.nodeType && (f += d.colSpan || 1), (d = d.previousSibling)
- d = null
- var g = []
- return (
- utils.each(e, function (a) {
- var b = a.cells,
- d = 0
- utils.each(b, function (a) {
- return (
- (d += a.colSpan || 1),
- d === f
- ? (g.push({ left: a, right: a.nextSibling || null }), !1)
- : d > f
- ? (c && g.push({ left: a }), !1)
- : void 0
- )
- })
- }),
- g
- )
- }
- function D(a, b, c) {
- if (((a -= G()), a < 0)) return 0
- a -= E(b)
- var d = a < 0 ? 'left' : 'right'
- return (
- (a = Math.abs(a)),
- utils.each(c, function (b) {
- var c = b[d]
- c && (a = Math.min(a, E(c) - Q))
- }),
- (a = a < 0 ? 0 : a),
- 'left' === d ? -a : a
- )
- }
- function E(a) {
- var b = 0,
- b = a.offsetWidth - G()
- a.nextSibling || (b -= F(a)), (b = b < 0 ? 0 : b)
- try {
- a.width = b
- } catch (c) {}
- return b
- }
- function F(a) {
- if (
- ((tab = domUtils.findParentByTagName(a, 'table', !1)),
- void 0 === tab.offsetVal)
- ) {
- var b = a.previousSibling
- b
- ? (tab.offsetVal =
- a.offsetWidth - b.offsetWidth === X.borderWidth
- ? X.borderWidth
- : 0)
- : (tab.offsetVal = 0)
- }
- return tab.offsetVal
- }
- function G() {
- if (void 0 === X.tabcellSpace) {
- var a = N.document.createElement('table'),
- b = N.document.createElement('tbody'),
- c = N.document.createElement('tr'),
- d = N.document.createElement('td'),
- e = null
- ;(d.style.cssText = 'border: 0;'),
- (d.width = 1),
- c.appendChild(d),
- c.appendChild((e = d.cloneNode(!1))),
- b.appendChild(c),
- a.appendChild(b),
- (a.style.cssText = 'visibility: hidden;'),
- N.body.appendChild(a),
- (X.paddingSpace = d.offsetWidth - 1)
- var f = a.offsetWidth
- ;(d.style.cssText = ''),
- (e.style.cssText = ''),
- (X.borderWidth = (a.offsetWidth - f) / 3),
- (X.tabcellSpace = X.paddingSpace + X.borderWidth),
- N.body.removeChild(a)
- }
- return (
- (G = function () {
- return X.tabcellSpace
- }),
- X.tabcellSpace
- )
- }
- function H(a, b) {
- ia ||
- ((ga = a.document.createElement('div')),
- domUtils.setAttributes(ga, {
- id: 'ue_tableDragLine',
- unselectable: 'on',
- contenteditable: !1,
- onresizestart: 'return false',
- ondragstart: 'return false',
- onselectstart: 'return false',
- style:
- 'background-color:blue;position:absolute;padding:0;margin:0;background-image:none;border:0px none;opacity:0;filter:alpha(opacity=0)'
- }),
- a.body.appendChild(ga))
- }
- function I(a) {
- if (!ia)
- for (var b; (b = a.document.getElementById('ue_tableDragLine')); )
- domUtils.remove(b)
- }
- function J(a, b) {
- if (b) {
- var c,
- d = domUtils.findParentByTagName(b, 'table'),
- e = d.getElementsByTagName('caption'),
- f = d.offsetWidth,
- g = d.offsetHeight - (e.length > 0 ? e[0].offsetHeight : 0),
- h = domUtils.getXY(d),
- i = domUtils.getXY(b)
- switch (a) {
- case 'h':
- ;(c =
- 'height:' +
- g +
- 'px;top:' +
- (h.y + (e.length > 0 ? e[0].offsetHeight : 0)) +
- 'px;left:' +
- (i.x + b.offsetWidth)),
- (ga.style.cssText =
- c +
- 'px;position: absolute;display:block;background-color:blue;width:1px;border:0; color:blue;opacity:.3;filter:alpha(opacity=30)')
- break
- case 'v':
- ;(c =
- 'width:' +
- f +
- 'px;left:' +
- h.x +
- 'px;top:' +
- (i.y + b.offsetHeight)),
- (ga.style.cssText =
- c +
- 'px;overflow:hidden;position: absolute;display:block;background-color:blue;height:1px;border:0;color:blue;opacity:.2;filter:alpha(opacity=20)')
- }
- }
- }
- function K(a, b) {
- for (
- var c, d, e = domUtils.getElementsByTagName(a.body, 'table'), f = 0;
- (d = e[f++]);
- ) {
- var g = domUtils.getElementsByTagName(d, 'td')
- g[0] &&
- (b
- ? ((c = g[0].style.borderColor.replace(/\s/g, '')),
- /(#ffffff)|(rgb\(255,255,255\))/gi.test(c) &&
- domUtils.addClass(d, 'noBorderTable'))
- : domUtils.removeClasses(d, 'noBorderTable'))
- }
- }
- function L(a, b, c) {
- var d = a.body
- return (
- d.offsetWidth -
- (b
- ? 2 * parseInt(domUtils.getComputedStyle(d, 'margin-left'), 10)
- : 0) -
- 2 * c.tableBorder -
- (a.options.offsetWidth || 0)
- )
- }
- function M(a, b) {
- var c = domUtils.findParentByTagName(
- b.target || b.srcElement,
- ['td', 'th'],
- !0
- ),
- d = null
- if (!c) return null
- if (((d = n(c, f(b))), !c)) return null
- if ('h1' === d && c.previousSibling) {
- var e = domUtils.getXY(c),
- g = c.offsetWidth
- Math.abs(e.x + g - b.clientX) > g / 3 && (c = c.previousSibling)
- } else if ('v1' === d && c.parentNode.previousSibling) {
- var e = domUtils.getXY(c),
- h = c.offsetHeight
- Math.abs(e.y + h - b.clientY) > h / 3 &&
- (c = c.parentNode.previousSibling.firstChild)
- }
- return c && a.fireEvent('excludetable', c) !== !0 ? c : null
- }
- var N = this,
- O = null,
- P = null,
- Q = 5,
- R = !1,
- S = 5,
- T = 10,
- U = 0,
- V = null,
- W = 360,
- X = UE.UETable,
- Y = function (a) {
- return X.getUETable(a)
- },
- Z = function (a) {
- return X.getUETableBySelected(a)
- },
- $ = function (a, b) {
- return X.getDefaultValue(a, b)
- },
- _ = function (a) {
- return X.removeSelectedClass(a)
- }
- N.ready(function () {
- var a = this,
- b = a.selection.getText
- a.selection.getText = function () {
- var c = Z(a)
- if (c) {
- var d = ''
- return (
- utils.each(c.selectedTds, function (a) {
- d += a[browser.ie ? 'innerText' : 'textContent']
- }),
- d
- )
- }
- return b.call(a.selection)
- }
- })
- var aa = null,
- ba = null,
- ca = '',
- da = !1,
- ea = null,
- fa = !1,
- ga = null,
- ha = null,
- ia = !1,
- ja = !0
- N.setOpt({
- maxColNum: 20,
- maxRowNum: 100,
- defaultCols: 5,
- defaultRows: 5,
- tdvalign: 'top',
- cursorpath:
- N.options.UEDITOR_HOME_URL + 'themes/default/images/cursor_',
- tableDragable: !1,
- classList: [
- 'ue-table-interlace-color-single',
- 'ue-table-interlace-color-double'
- ]
- }),
- (N.getUETable = Y)
- var ka = {
- deletetable: 1,
- inserttable: 1,
- cellvalign: 1,
- insertcaption: 1,
- deletecaption: 1,
- inserttitle: 1,
- deletetitle: 1,
- mergeright: 1,
- mergedown: 1,
- mergecells: 1,
- insertrow: 1,
- insertrownext: 1,
- deleterow: 1,
- insertcol: 1,
- insertcolnext: 1,
- deletecol: 1,
- splittocells: 1,
- splittorows: 1,
- splittocols: 1,
- adaptbytext: 1,
- adaptbywindow: 1,
- adaptbycustomer: 1,
- insertparagraph: 1,
- insertparagraphbeforetable: 1,
- averagedistributecol: 1,
- averagedistributerow: 1
- }
- N.ready(function () {
- utils.cssRule(
- 'table',
- '.selectTdClass{background-color:#edf5fa !important}table.noBorderTable td,table.noBorderTable th,table.noBorderTable caption{border:1px dashed #ddd !important}table{margin-bottom:10px;border-collapse:collapse;display:table;}td,th{padding: 5px 10px;border: 1px solid #DDD;}caption{border:1px dashed #DDD;border-bottom:0;padding:3px;text-align:center;}th{border-top:1px solid #BBB;background-color:#F7F7F7;}table tr.firstRow th{border-top-width:2px;}.ue-table-interlace-color-single{ background-color: #fcfcfc; } .ue-table-interlace-color-double{ background-color: #f7faff; }td p{margin:0;padding:0;}',
- N.document
- )
- var a, c, f
- N.addListener('keydown', function (b, d) {
- var g = this,
- h = d.keyCode || d.which
- if (8 == h) {
- var i = Z(g)
- i &&
- i.selectedTds.length &&
- (i.isFullCol()
- ? g.execCommand('deletecol')
- : i.isFullRow()
- ? g.execCommand('deleterow')
- : g.fireEvent('delcells'),
- domUtils.preventDefault(d))
- var j = domUtils.findParentByTagName(
- g.selection.getStart(),
- 'caption',
- !0
- ),
- k = g.selection.getRange()
- if (k.collapsed && j && e(j)) {
- g.fireEvent('saveScene')
- var l = j.parentNode
- domUtils.remove(j),
- l && k.setStart(l.rows[0].cells[0], 0).setCursor(!1, !0),
- g.fireEvent('saveScene')
- }
- }
- if (46 == h && (i = Z(g))) {
- g.fireEvent('saveScene')
- for (var m, n = 0; (m = i.selectedTds[n++]); )
- domUtils.fillNode(g.document, m)
- g.fireEvent('saveScene'), domUtils.preventDefault(d)
- }
- if (13 == h) {
- var o = g.selection.getRange(),
- j = domUtils.findParentByTagName(o.startContainer, 'caption', !0)
- if (j) {
- var l = domUtils.findParentByTagName(j, 'table')
- return (
- o.collapsed
- ? j && o.setStart(l.rows[0].cells[0], 0).setCursor(!1, !0)
- : (o.deleteContents(), g.fireEvent('saveScene')),
- void domUtils.preventDefault(d)
- )
- }
- if (o.collapsed) {
- var l = domUtils.findParentByTagName(o.startContainer, 'table')
- if (l) {
- var p = l.rows[0].cells[0],
- q = domUtils.findParentByTagName(
- g.selection.getStart(),
- ['td', 'th'],
- !0
- ),
- r = l.previousSibling
- if (
- p === q &&
- (!r || (1 == r.nodeType && 'TABLE' == r.tagName)) &&
- domUtils.isStartInblock(o)
- ) {
- var s = domUtils.findParent(
- g.selection.getStart(),
- function (a) {
- return domUtils.isBlockElm(a)
- },
- !0
- )
- s &&
- (/t(h|d)/i.test(s.tagName) || s === q.firstChild) &&
- (g.execCommand('insertparagraphbeforetable'),
- domUtils.preventDefault(d))
- }
- }
- }
- }
- if ((d.ctrlKey || d.metaKey) && '67' == d.keyCode) {
- a = null
- var i = Z(g)
- if (i) {
- var t = i.selectedTds
- ;(c = i.isFullCol()),
- (f = i.isFullRow()),
- (a = [[i.cloneCell(t[0], null, !0)]])
- for (var m, n = 1; (m = t[n]); n++)
- m.parentNode !== t[n - 1].parentNode
- ? a.push([i.cloneCell(m, null, !0)])
- : a[a.length - 1].push(i.cloneCell(m, null, !0))
- }
- }
- }),
- N.addListener('tablehasdeleted', function () {
- m(this, !1, '', null), ea && domUtils.remove(ea)
- }),
- N.addListener('beforepaste', function (d, g) {
- var h = this,
- i = h.selection.getRange()
- if (domUtils.findParentByTagName(i.startContainer, 'caption', !0)) {
- var j = h.document.createElement('div')
- return (
- (j.innerHTML = g.html),
- void (g.html =
- j[browser.ie9below ? 'innerText' : 'textContent'])
- )
- }
- var k = Z(h)
- if (a) {
- h.fireEvent('saveScene')
- var l,
- m,
- i = h.selection.getRange(),
- n = domUtils.findParentByTagName(
- i.startContainer,
- ['td', 'th'],
- !0
- )
- if (n) {
- var o = Y(n)
- if (f) {
- var p = o.getCellInfo(n).rowIndex
- 'TH' == n.tagName && p++
- for (var q, r = 0; (q = a[r++]); ) {
- for (
- var s, t = o.insertRow(p++, 'td'), u = 0;
- (s = q[u]);
- u++
- ) {
- var v = t.cells[u]
- v || (v = t.insertCell(u)),
- (v.innerHTML = s.innerHTML),
- s.getAttribute('width') &&
- v.setAttribute('width', s.getAttribute('width')),
- s.getAttribute('vAlign') &&
- v.setAttribute('vAlign', s.getAttribute('vAlign')),
- s.getAttribute('align') &&
- v.setAttribute('align', s.getAttribute('align')),
- s.style.cssText && (v.style.cssText = s.style.cssText)
- }
- for (var s, u = 0; (s = t.cells[u]) && q[u]; u++)
- (s.innerHTML = q[u].innerHTML),
- q[u].getAttribute('width') &&
- s.setAttribute('width', q[u].getAttribute('width')),
- q[u].getAttribute('vAlign') &&
- s.setAttribute('vAlign', q[u].getAttribute('vAlign')),
- q[u].getAttribute('align') &&
- s.setAttribute('align', q[u].getAttribute('align')),
- q[u].style.cssText &&
- (s.style.cssText = q[u].style.cssText)
- }
- } else {
- if (c) {
- y = o.getCellInfo(n)
- for (var s, w = 0, u = 0, q = a[0]; (s = q[u++]); )
- w += s.colSpan || 1
- for (h.__hasEnterExecCommand = !0, r = 0; r < w; r++)
- h.execCommand('insertcol')
- ;(h.__hasEnterExecCommand = !1),
- (n = o.table.rows[0].cells[y.cellIndex]),
- 'TH' == n.tagName &&
- (n = o.table.rows[1].cells[y.cellIndex])
- }
- for (var q, r = 0; (q = a[r++]); ) {
- l = n
- for (var s, u = 0; (s = q[u++]); )
- if (n)
- (n.innerHTML = s.innerHTML),
- s.getAttribute('width') &&
- n.setAttribute('width', s.getAttribute('width')),
- s.getAttribute('vAlign') &&
- n.setAttribute('vAlign', s.getAttribute('vAlign')),
- s.getAttribute('align') &&
- n.setAttribute('align', s.getAttribute('align')),
- s.style.cssText &&
- (n.style.cssText = s.style.cssText),
- (m = n),
- (n = n.nextSibling)
- else {
- var x = s.cloneNode(!0)
- domUtils.removeAttributes(x, [
- 'class',
- 'rowSpan',
- 'colSpan'
- ]),
- m.parentNode.appendChild(x)
- }
- if (((n = o.getNextCell(l, !0, !0)), !a[r])) break
- if (!n) {
- var y = o.getCellInfo(l)
- o.table.insertRow(o.table.rows.length),
- o.update(),
- (n = o.getVSideCell(l, !0))
- }
- }
- }
- o.update()
- } else {
- k = h.document.createElement('table')
- for (var q, r = 0; (q = a[r++]); ) {
- for (
- var s, t = k.insertRow(k.rows.length), u = 0;
- (s = q[u++]);
- )
- (x = X.cloneCell(s, null, !0)),
- domUtils.removeAttributes(x, ['class']),
- t.appendChild(x)
- 2 == u && x.rowSpan > 1 && (x.rowSpan = 1)
- }
- var z = $(h),
- A =
- h.body.offsetWidth -
- (ja
- ? 2 *
- parseInt(
- domUtils.getComputedStyle(h.body, 'margin-left'),
- 10
- )
- : 0) -
- 2 * z.tableBorder -
- (h.options.offsetWidth || 0)
- h.execCommand(
- 'insertHTML',
- '<table ' +
- (c && f ? 'width="' + A + '"' : '') +
- '>' +
- k.innerHTML
- .replace(/>\s*</g, '><')
- .replace(/\bth\b/gi, 'td') +
- '</table>'
- )
- }
- return (
- h.fireEvent('contentchange'),
- h.fireEvent('saveScene'),
- (g.html = ''),
- !0
- )
- }
- var B,
- j = h.document.createElement('div')
- ;(j.innerHTML = g.html),
- (B = j.getElementsByTagName('table')),
- domUtils.findParentByTagName(h.selection.getStart(), 'table')
- ? (utils.each(B, function (a) {
- domUtils.remove(a)
- }),
- domUtils.findParentByTagName(
- h.selection.getStart(),
- 'caption',
- !0
- ) &&
- (j.innerHTML = j[browser.ie ? 'innerText' : 'textContent']))
- : utils.each(B, function (a) {
- b(a, !0),
- domUtils.removeAttributes(a, ['style', 'border']),
- utils.each(
- domUtils.getElementsByTagName(a, 'td'),
- function (a) {
- e(a) && domUtils.fillNode(h.document, a), b(a, !0)
- }
- )
- }),
- (g.html = j.innerHTML)
- }),
- N.addListener('afterpaste', function () {
- utils.each(
- domUtils.getElementsByTagName(N.body, 'table'),
- function (a) {
- if (a.offsetWidth > N.body.offsetWidth) {
- var b = $(N, a)
- a.style.width =
- N.body.offsetWidth -
- (ja
- ? 2 *
- parseInt(
- domUtils.getComputedStyle(N.body, 'margin-left'),
- 10
- )
- : 0) -
- 2 * b.tableBorder -
- (N.options.offsetWidth || 0) +
- 'px'
- }
- }
- )
- }),
- N.addListener('blur', function () {
- a = null
- })
- var i
- N.addListener('keydown', function () {
- clearTimeout(i),
- (i = setTimeout(function () {
- var a = N.selection.getRange(),
- b = domUtils.findParentByTagName(
- a.startContainer,
- ['th', 'td'],
- !0
- )
- if (b) {
- var c = b.parentNode.parentNode.parentNode
- c.offsetWidth > c.getAttribute('width') &&
- (b.style.wordBreak = 'break-all')
- }
- }, 100))
- }),
- N.addListener('selectionchange', function () {
- m(N, !1, '', null)
- }),
- N.addListener('contentchange', function () {
- var a = this
- if ((I(a), !Z(a))) {
- var b = a.selection.getRange(),
- c = b.startContainer
- ;(c = domUtils.findParentByTagName(c, ['td', 'th'], !0)),
- utils.each(
- domUtils.getElementsByTagName(a.document, 'table'),
- function (b) {
- a.fireEvent('excludetable', b) !== !0 &&
- ((b.ueTable = new X(b)),
- (b.onmouseover = function () {
- a.fireEvent('tablemouseover', b)
- }),
- (b.onmousemove = function () {
- a.fireEvent('tablemousemove', b),
- a.options.tableDragable && h(!0, this, a),
- utils.defer(function () {
- a.fireEvent('contentchange', 50)
- }, !0)
- }),
- (b.onmouseout = function () {
- a.fireEvent('tablemouseout', b),
- m(a, !1, '', null),
- I(a)
- }),
- (b.onclick = function (b) {
- b = a.window.event || b
- var c = d(b.target || b.srcElement)
- if (c) {
- var e,
- f = Y(c),
- g = f.table,
- h = f.getCellInfo(c),
- i = a.selection.getRange()
- if (j(g, c, b, !0)) {
- var k = f.getCell(
- f.indexTable[f.rowsNum - 1][h.colIndex].rowIndex,
- f.indexTable[f.rowsNum - 1][h.colIndex].cellIndex
- )
- return void (b.shiftKey && f.selectedTds.length
- ? f.selectedTds[0] !== k
- ? ((e = f.getCellsRange(f.selectedTds[0], k)),
- f.setSelected(e))
- : i && i.selectNodeContents(k).select()
- : c !== k
- ? ((e = f.getCellsRange(c, k)), f.setSelected(e))
- : i && i.selectNodeContents(k).select())
- }
- if (j(g, c, b)) {
- var l = f.getCell(
- f.indexTable[h.rowIndex][f.colsNum - 1].rowIndex,
- f.indexTable[h.rowIndex][f.colsNum - 1].cellIndex
- )
- b.shiftKey && f.selectedTds.length
- ? f.selectedTds[0] !== l
- ? ((e = f.getCellsRange(f.selectedTds[0], l)),
- f.setSelected(e))
- : i && i.selectNodeContents(l).select()
- : c !== l
- ? ((e = f.getCellsRange(c, l)), f.setSelected(e))
- : i && i.selectNodeContents(l).select()
- }
- }
- }))
- }
- ),
- K(a, !0)
- }
- }),
- domUtils.on(N.document, 'mousemove', g),
- domUtils.on(N.document, 'mouseout', function (a) {
- var b = a.target || a.srcElement
- 'TABLE' == b.tagName && m(N, !1, '', null)
- }),
- N.addListener('interlacetable', function (a, b, c) {
- if (b)
- for (
- var d = this,
- e = b.rows,
- f = e.length,
- g = function (a, b, c) {
- return a[b] ? a[b] : c ? a[b % a.length] : ''
- },
- h = 0;
- h < f;
- h++
- )
- e[h].className = g(c || d.options.classList, h, !0)
- }),
- N.addListener('uninterlacetable', function (a, b) {
- if (b)
- for (
- var c = this,
- d = b.rows,
- e = c.options.classList,
- f = d.length,
- g = 0;
- g < f;
- g++
- )
- domUtils.removeClasses(d[g], e)
- }),
- N.addListener('mousedown', o),
- N.addListener('mouseup', w),
- domUtils.on(N.body, 'dragstart', function (a) {
- w.call(N, 'dragstart', a)
- }),
- N.addOutputRule(function (a) {
- utils.each(a.getNodesByTagName('div'), function (a) {
- 'ue_tableDragLine' == a.getAttr('id') &&
- a.parentNode.removeChild(a)
- })
- })
- var k = 0
- N.addListener('mousedown', function () {
- k = 0
- }),
- N.addListener('tabkeydown', function () {
- var a = this.selection.getRange(),
- b = a.getCommonAncestor(!0, !0),
- c = domUtils.findParentByTagName(b, 'table')
- if (c) {
- if (domUtils.findParentByTagName(b, 'caption', !0)) {
- var d = domUtils.getElementsByTagName(c, 'th td')
- d && d.length && a.setStart(d[0], 0).setCursor(!1, !0)
- } else {
- var d = domUtils.findParentByTagName(b, ['td', 'th'], !0),
- f = Y(d)
- k = d.rowSpan > 1 ? k : f.getCellInfo(d).rowIndex
- var g = f.getTabNextCell(d, k)
- g
- ? e(g)
- ? a.setStart(g, 0).setCursor(!1, !0)
- : a.selectNodeContents(g).select()
- : (N.fireEvent('saveScene'),
- (N.__hasEnterExecCommand = !0),
- this.execCommand('insertrownext'),
- (N.__hasEnterExecCommand = !1),
- (a = this.selection.getRange()),
- a
- .setStart(c.rows[c.rows.length - 1].cells[0], 0)
- .setCursor(),
- N.fireEvent('saveScene'))
- }
- return !0
- }
- }),
- browser.ie &&
- N.addListener('selectionchange', function () {
- m(this, !1, '', null)
- }),
- N.addListener('keydown', function (a, b) {
- var c = this,
- d = b.keyCode || b.which
- if (8 != d && 46 != d) {
- var e = !(b.ctrlKey || b.metaKey || b.shiftKey || b.altKey)
- e && _(domUtils.getElementsByTagName(c.body, 'td'))
- var f = Z(c)
- f && e && f.clearSelected()
- }
- }),
- N.addListener('beforegetcontent', function () {
- K(this, !1),
- browser.ie &&
- utils.each(
- this.document.getElementsByTagName('caption'),
- function (a) {
- domUtils.isEmptyNode(a) && (a.innerHTML = ' ')
- }
- )
- }),
- N.addListener('aftergetcontent', function () {
- K(this, !0)
- }),
- N.addListener('getAllHtml', function () {
- _(N.document.getElementsByTagName('td'))
- }),
- N.addListener('fullscreenchanged', function (a, b) {
- if (!b) {
- var c = this.body.offsetWidth / document.body.offsetWidth,
- d = domUtils.getElementsByTagName(this.body, 'table')
- utils.each(d, function (a) {
- if (a.offsetWidth < N.body.offsetWidth) return !1
- var b = domUtils.getElementsByTagName(a, 'td'),
- d = []
- utils.each(b, function (a) {
- d.push(a.offsetWidth)
- })
- for (var e, f = 0; (e = b[f]); f++)
- e.setAttribute('width', Math.floor(d[f] * c))
- a.setAttribute('width', Math.floor(L(N, ja, $(N))))
- })
- }
- })
- var l = N.execCommand
- N.execCommand = function (a, b) {
- var c = this
- a = a.toLowerCase()
- var d,
- f,
- g = Z(c),
- h = new dom.Range(c.document),
- i = c.commands[a] || UE.commands[a]
- if (i) {
- if (!g || ka[a] || i.notNeedUndo || c.__hasEnterExecCommand)
- f = l.apply(c, arguments)
- else {
- ;(c.__hasEnterExecCommand = !0),
- c.fireEvent('beforeexeccommand', a),
- (d = g.selectedTds)
- for (var j, k, m, n = -2, o = -2, p = 0; (m = d[p]); p++)
- e(m)
- ? h.setStart(m, 0).setCursor(!1, !0)
- : h.selectNode(m).select(!0),
- (k = c.queryCommandState(a)),
- (j = c.queryCommandValue(a)),
- k != -1 &&
- ((n === k && o === j) ||
- ((c._ignoreContentChange = !0),
- (f = l.apply(c, arguments)),
- (c._ignoreContentChange = !1)),
- (n = c.queryCommandState(a)),
- (o = c.queryCommandValue(a)),
- domUtils.isEmptyBlock(m) &&
- domUtils.fillNode(c.document, m))
- h.setStart(d[0], 0).shrinkBoundary(!0).setCursor(!1, !0),
- c.fireEvent('contentchange'),
- c.fireEvent('afterexeccommand', a),
- (c.__hasEnterExecCommand = !1),
- c._selectionChange()
- }
- return f
- }
- }
- })
- var la
- }),
- (UE.UETable.prototype.sortTable = function (a, b) {
- var c = this.table,
- d = c.rows,
- e = [],
- f = 'TH' === d[0].cells[0].tagName,
- g = 0
- if (this.selectedTds.length) {
- for (
- var h = this.cellsRange, i = h.endRowIndex + 1, j = h.beginRowIndex;
- j < i;
- j++
- )
- e[j] = d[j]
- e.splice(0, h.beginRowIndex),
- (g = h.endRowIndex + 1 === this.rowsNum ? 0 : h.endRowIndex + 1)
- } else for (var j = 0, i = d.length; j < i; j++) e[j] = d[j]
- var k = {
- reversecurrent: function (a, b) {
- return 1
- },
- orderbyasc: function (a, b) {
- var c = a.innerText || a.textContent,
- d = b.innerText || b.textContent
- return c.localeCompare(d)
- },
- reversebyasc: function (a, b) {
- var c = a.innerHTML,
- d = b.innerHTML
- return d.localeCompare(c)
- },
- orderbynum: function (a, b) {
- var c = a[browser.ie ? 'innerText' : 'textContent'].match(/\d+/),
- d = b[browser.ie ? 'innerText' : 'textContent'].match(/\d+/)
- return c && (c = +c[0]), d && (d = +d[0]), (c || 0) - (d || 0)
- },
- reversebynum: function (a, b) {
- var c = a[browser.ie ? 'innerText' : 'textContent'].match(/\d+/),
- d = b[browser.ie ? 'innerText' : 'textContent'].match(/\d+/)
- return c && (c = +c[0]), d && (d = +d[0]), (d || 0) - (c || 0)
- }
- }
- c.setAttribute(
- 'data-sort-type',
- b && 'string' == typeof b && k[b] ? b : ''
- ),
- f && e.splice(0, 1),
- (e = utils.sort(e, function (c, d) {
- var e
- return (e =
- b && 'function' == typeof b
- ? b.call(this, c.cells[a], d.cells[a])
- : b && 'number' == typeof b
- ? 1
- : b && 'string' == typeof b && k[b]
- ? k[b].call(this, c.cells[a], d.cells[a])
- : k.orderbyasc.call(this, c.cells[a], d.cells[a]))
- }))
- for (
- var l = c.ownerDocument.createDocumentFragment(), m = 0, i = e.length;
- m < i;
- m++
- )
- l.appendChild(e[m])
- var n = c.getElementsByTagName('tbody')[0]
- g
- ? n.insertBefore(l, d[g - h.endRowIndex + h.beginRowIndex - 1])
- : n.appendChild(l)
- }),
- (UE.plugins.tablesort = function () {
- var a = this,
- b = UE.UETable,
- c = function (a) {
- return b.getUETable(a)
- },
- d = function (a) {
- return b.getTableItemsByRange(a)
- }
- a.ready(function () {
- utils.cssRule(
- 'tablesort',
- 'table.sortEnabled tr.firstRow th,table.sortEnabled tr.firstRow td{padding-right:20px;background-repeat: no-repeat;background-position: center right; background-image:url(' +
- a.options.themePath +
- a.options.theme +
- '/images/sortable.png);}',
- a.document
- ),
- a.addListener('afterexeccommand', function (a, b) {
- ;('mergeright' != b && 'mergedown' != b && 'mergecells' != b) ||
- this.execCommand('disablesort')
- })
- }),
- (UE.commands.sorttable = {
- queryCommandState: function () {
- var a = this,
- b = d(a)
- if (!b.cell) return -1
- for (
- var c, e = b.table, f = e.getElementsByTagName('td'), g = 0;
- (c = f[g++]);
- )
- if (1 != c.rowSpan || 1 != c.colSpan) return -1
- return 0
- },
- execCommand: function (a, b) {
- var e = this,
- f = e.selection.getRange(),
- g = f.createBookmark(!0),
- h = d(e),
- i = h.cell,
- j = c(h.table),
- k = j.getCellInfo(i)
- j.sortTable(k.cellIndex, b), f.moveToBookmark(g)
- try {
- f.select()
- } catch (l) {}
- }
- }),
- (UE.commands.enablesort = UE.commands.disablesort =
- {
- queryCommandState: function (a) {
- var b = d(this).table
- if (b && 'enablesort' == a)
- for (
- var c = domUtils.getElementsByTagName(b, 'th td'), e = 0;
- e < c.length;
- e++
- )
- if (
- c[e].getAttribute('colspan') > 1 ||
- c[e].getAttribute('rowspan') > 1
- )
- return -1
- return b
- ? ('enablesort' == a) ^
- ('sortEnabled' != b.getAttribute('data-sort'))
- ? -1
- : 0
- : -1
- },
- execCommand: function (a) {
- var b = d(this).table
- b.setAttribute(
- 'data-sort',
- 'enablesort' == a ? 'sortEnabled' : 'sortDisabled'
- ),
- 'enablesort' == a
- ? domUtils.addClass(b, 'sortEnabled')
- : domUtils.removeClasses(b, 'sortEnabled')
- }
- })
- }),
- (UE.plugins.contextmenu = function () {
- var a = this
- if (
- (a.setOpt('enableContextMenu', !0),
- a.getOpt('enableContextMenu') !== !1)
- ) {
- var b,
- c = a.getLang('contextMenu'),
- d = a.options.contextMenu || [
- { label: c.selectall, cmdName: 'selectall' },
- {
- label: c.cleardoc,
- cmdName: 'cleardoc',
- exec: function () {
- confirm(c.confirmclear) && this.execCommand('cleardoc')
- }
- },
- '-',
- { label: c.unlink, cmdName: 'unlink' },
- '-',
- {
- group: c.paragraph,
- icon: 'justifyjustify',
- subMenu: [
- { label: c.justifyleft, cmdName: 'justify', value: 'left' },
- { label: c.justifyright, cmdName: 'justify', value: 'right' },
- { label: c.justifycenter, cmdName: 'justify', value: 'center' },
- {
- label: c.justifyjustify,
- cmdName: 'justify',
- value: 'justify'
- }
- ]
- },
- '-',
- {
- group: c.table,
- icon: 'table',
- subMenu: [
- { label: c.inserttable, cmdName: 'inserttable' },
- { label: c.deletetable, cmdName: 'deletetable' },
- '-',
- { label: c.deleterow, cmdName: 'deleterow' },
- { label: c.deletecol, cmdName: 'deletecol' },
- { label: c.insertcol, cmdName: 'insertcol' },
- { label: c.insertcolnext, cmdName: 'insertcolnext' },
- { label: c.insertrow, cmdName: 'insertrow' },
- { label: c.insertrownext, cmdName: 'insertrownext' },
- '-',
- { label: c.insertcaption, cmdName: 'insertcaption' },
- { label: c.deletecaption, cmdName: 'deletecaption' },
- { label: c.inserttitle, cmdName: 'inserttitle' },
- { label: c.deletetitle, cmdName: 'deletetitle' },
- { label: c.inserttitlecol, cmdName: 'inserttitlecol' },
- { label: c.deletetitlecol, cmdName: 'deletetitlecol' },
- '-',
- { label: c.mergecells, cmdName: 'mergecells' },
- { label: c.mergeright, cmdName: 'mergeright' },
- { label: c.mergedown, cmdName: 'mergedown' },
- '-',
- { label: c.splittorows, cmdName: 'splittorows' },
- { label: c.splittocols, cmdName: 'splittocols' },
- { label: c.splittocells, cmdName: 'splittocells' },
- '-',
- { label: c.averageDiseRow, cmdName: 'averagedistributerow' },
- { label: c.averageDisCol, cmdName: 'averagedistributecol' },
- '-',
- {
- label: c.edittd,
- cmdName: 'edittd',
- exec: function () {
- UE.ui.edittd && new UE.ui.edittd(this),
- this.getDialog('edittd').open()
- }
- },
- {
- label: c.edittable,
- cmdName: 'edittable',
- exec: function () {
- UE.ui.edittable && new UE.ui.edittable(this),
- this.getDialog('edittable').open()
- }
- },
- { label: c.setbordervisible, cmdName: 'setbordervisible' }
- ]
- },
- {
- group: c.tablesort,
- icon: 'tablesort',
- subMenu: [
- { label: c.enablesort, cmdName: 'enablesort' },
- { label: c.disablesort, cmdName: 'disablesort' },
- '-',
- {
- label: c.reversecurrent,
- cmdName: 'sorttable',
- value: 'reversecurrent'
- },
- {
- label: c.orderbyasc,
- cmdName: 'sorttable',
- value: 'orderbyasc'
- },
- {
- label: c.reversebyasc,
- cmdName: 'sorttable',
- value: 'reversebyasc'
- },
- {
- label: c.orderbynum,
- cmdName: 'sorttable',
- value: 'orderbynum'
- },
- {
- label: c.reversebynum,
- cmdName: 'sorttable',
- value: 'reversebynum'
- }
- ]
- },
- {
- group: c.borderbk,
- icon: 'borderBack',
- subMenu: [
- {
- label: c.setcolor,
- cmdName: 'interlacetable',
- exec: function () {
- this.execCommand('interlacetable')
- }
- },
- {
- label: c.unsetcolor,
- cmdName: 'uninterlacetable',
- exec: function () {
- this.execCommand('uninterlacetable')
- }
- },
- {
- label: c.setbackground,
- cmdName: 'settablebackground',
- exec: function () {
- this.execCommand('settablebackground', {
- repeat: !0,
- colorList: ['#bbb', '#ccc']
- })
- }
- },
- {
- label: c.unsetbackground,
- cmdName: 'cleartablebackground',
- exec: function () {
- this.execCommand('cleartablebackground')
- }
- },
- {
- label: c.redandblue,
- cmdName: 'settablebackground',
- exec: function () {
- this.execCommand('settablebackground', {
- repeat: !0,
- colorList: ['red', 'blue']
- })
- }
- },
- {
- label: c.threecolorgradient,
- cmdName: 'settablebackground',
- exec: function () {
- this.execCommand('settablebackground', {
- repeat: !0,
- colorList: ['#aaa', '#bbb', '#ccc']
- })
- }
- }
- ]
- },
- {
- group: c.aligntd,
- icon: 'aligntd',
- subMenu: [
- {
- cmdName: 'cellalignment',
- value: { align: 'left', vAlign: 'top' }
- },
- {
- cmdName: 'cellalignment',
- value: { align: 'center', vAlign: 'top' }
- },
- {
- cmdName: 'cellalignment',
- value: { align: 'right', vAlign: 'top' }
- },
- {
- cmdName: 'cellalignment',
- value: { align: 'left', vAlign: 'middle' }
- },
- {
- cmdName: 'cellalignment',
- value: { align: 'center', vAlign: 'middle' }
- },
- {
- cmdName: 'cellalignment',
- value: { align: 'right', vAlign: 'middle' }
- },
- {
- cmdName: 'cellalignment',
- value: { align: 'left', vAlign: 'bottom' }
- },
- {
- cmdName: 'cellalignment',
- value: { align: 'center', vAlign: 'bottom' }
- },
- {
- cmdName: 'cellalignment',
- value: { align: 'right', vAlign: 'bottom' }
- }
- ]
- },
- {
- group: c.aligntable,
- icon: 'aligntable',
- subMenu: [
- {
- cmdName: 'tablealignment',
- className: 'left',
- label: c.tableleft,
- value: 'left'
- },
- {
- cmdName: 'tablealignment',
- className: 'center',
- label: c.tablecenter,
- value: 'center'
- },
- {
- cmdName: 'tablealignment',
- className: 'right',
- label: c.tableright,
- value: 'right'
- }
- ]
- },
- '-',
- {
- label: c.insertparagraphbefore,
- cmdName: 'insertparagraph',
- value: !0
- },
- { label: c.insertparagraphafter, cmdName: 'insertparagraph' },
- { label: c.copy, cmdName: 'copy' },
- { label: c.paste, cmdName: 'paste' }
- ]
- if (d.length) {
- var e = UE.ui.uiUtils
- a.addListener('contextmenu', function (f, g) {
- var h = e.getViewportOffsetByEvent(g)
- a.fireEvent('beforeselectionchange'), b && b.destroy()
- for (var i, j = 0, k = []; (i = d[j]); j++) {
- var l
- !(function (b) {
- function d() {
- switch (b.icon) {
- case 'table':
- return a.getLang('contextMenu.table')
- case 'justifyjustify':
- return a.getLang('contextMenu.paragraph')
- case 'aligntd':
- return a.getLang('contextMenu.aligntd')
- case 'aligntable':
- return a.getLang('contextMenu.aligntable')
- case 'tablesort':
- return c.tablesort
- case 'borderBack':
- return c.borderbk
- default:
- return ''
- }
- }
- if ('-' == b) (l = k[k.length - 1]) && '-' !== l && k.push('-')
- else if (b.hasOwnProperty('group')) {
- for (var e, f = 0, g = []; (e = b.subMenu[f]); f++)
- !(function (b) {
- '-' == b
- ? (l = g[g.length - 1]) && '-' !== l
- ? g.push('-')
- : g.splice(g.length - 1)
- : (a.commands[b.cmdName] ||
- UE.commands[b.cmdName] ||
- b.query) &&
- (b.query
- ? b.query()
- : a.queryCommandState(b.cmdName)) > -1 &&
- g.push({
- label:
- b.label ||
- a.getLang(
- 'contextMenu.' + b.cmdName + (b.value || '')
- ) ||
- '',
- className:
- 'edui-for-' +
- b.cmdName +
- (b.className
- ? ' edui-for-' + b.cmdName + '-' + b.className
- : ''),
- onclick: b.exec
- ? function () {
- b.exec.call(a)
- }
- : function () {
- a.execCommand(b.cmdName, b.value)
- }
- })
- })(e)
- g.length &&
- k.push({
- label: d(),
- className: 'edui-for-' + b.icon,
- subMenu: { items: g, editor: a }
- })
- } else
- (a.commands[b.cmdName] ||
- UE.commands[b.cmdName] ||
- b.query) &&
- (b.query
- ? b.query.call(a)
- : a.queryCommandState(b.cmdName)) > -1 &&
- k.push({
- label: b.label || a.getLang('contextMenu.' + b.cmdName),
- className:
- 'edui-for-' +
- (b.icon ? b.icon : b.cmdName + (b.value || '')),
- onclick: b.exec
- ? function () {
- b.exec.call(a)
- }
- : function () {
- a.execCommand(b.cmdName, b.value)
- }
- })
- })(i)
- }
- if (
- ('-' == k[k.length - 1] && k.pop(),
- (b = new UE.ui.Menu({
- items: k,
- className: 'edui-contextmenu',
- editor: a
- })),
- b.render(),
- b.showAt(h),
- a.fireEvent('aftershowcontextmenu', b),
- domUtils.preventDefault(g),
- browser.ie)
- ) {
- var m
- try {
- m = a.selection.getNative().createRange()
- } catch (n) {
- return
- }
- if (m.item) {
- var o = new dom.Range(a.document)
- o.selectNode(m.item(0)).select(!0, !0)
- }
- }
- }),
- a.addListener('aftershowcontextmenu', function (b, c) {
- if (a.zeroclipboard) {
- var d = c.items
- for (var e in d)
- 'edui-for-copy' == d[e].className &&
- a.zeroclipboard.clip(d[e].getDom())
- }
- })
- }
- }
- }),
- (UE.plugins.shortcutmenu = function () {
- var a,
- b = this,
- c = b.options.shortcutMenu || []
- c.length &&
- (b.addListener('contextmenu mouseup', function (b, d) {
- var e = this,
- f = {
- type: b,
- target: d.target || d.srcElement,
- screenX: d.screenX,
- screenY: d.screenY,
- clientX: d.clientX,
- clientY: d.clientY
- }
- if (
- (setTimeout(function () {
- var d = e.selection.getRange()
- ;(d.collapsed !== !1 && 'contextmenu' != b) ||
- (a ||
- ((a = new baidu.editor.ui.ShortCutMenu({
- editor: e,
- items: c,
- theme: e.options.theme,
- className: 'edui-shortcutmenu'
- })),
- a.render(),
- e.fireEvent('afterrendershortcutmenu', a)),
- a.show(f, !!UE.plugins.contextmenu))
- }),
- 'contextmenu' == b &&
- (domUtils.preventDefault(d), browser.ie9below))
- ) {
- var g
- try {
- g = e.selection.getNative().createRange()
- } catch (d) {
- return
- }
- if (g.item) {
- var h = new dom.Range(e.document)
- h.selectNode(g.item(0)).select(!0, !0)
- }
- }
- }),
- b.addListener('keydown', function (b) {
- 'keydown' == b && a && !a.isHidden && a.hide()
- }))
- }),
- (UE.plugins.basestyle = function () {
- var a = {
- bold: ['strong', 'b'],
- italic: ['em', 'i'],
- subscript: ['sub'],
- superscript: ['sup']
- },
- b = function (a, b) {
- return domUtils.filterNodeList(a.selection.getStartElementPath(), b)
- },
- c = this
- c.addshortcutkey({
- Bold: 'ctrl+66',
- Italic: 'ctrl+73',
- Underline: 'ctrl+85'
- }),
- c.addInputRule(function (a) {
- utils.each(a.getNodesByTagName('b i'), function (a) {
- switch (a.tagName) {
- case 'b':
- a.tagName = 'strong'
- break
- case 'i':
- a.tagName = 'em'
- }
- })
- })
- for (var d in a)
- !(function (a, d) {
- c.commands[a] = {
- execCommand: function (a) {
- var e = c.selection.getRange(),
- f = b(this, d)
- if (e.collapsed) {
- if (f) {
- var g = c.document.createTextNode('')
- e.insertNode(g).removeInlineStyle(d),
- e.setStartBefore(g),
- domUtils.remove(g)
- } else {
- var h = e.document.createElement(d[0])
- ;('superscript' != a && 'subscript' != a) ||
- ((g = c.document.createTextNode('')),
- e
- .insertNode(g)
- .removeInlineStyle(['sub', 'sup'])
- .setStartBefore(g)
- .collapse(!0)),
- e.insertNode(h).setStart(h, 0)
- }
- e.collapse(!0)
- } else
- ('superscript' != a && 'subscript' != a) ||
- (f && f.tagName.toLowerCase() == a) ||
- e.removeInlineStyle(['sub', 'sup']),
- f ? e.removeInlineStyle(d) : e.applyInlineStyle(d[0])
- e.select()
- },
- queryCommandState: function () {
- return b(this, d) ? 1 : 0
- }
- }
- })(d, a[d])
- }),
- (UE.plugins.elementpath = function () {
- var a,
- b,
- c = this
- c.setOpt('elementPathEnabled', !0),
- c.options.elementPathEnabled &&
- (c.commands.elementpath = {
- execCommand: function (d, e) {
- var f = b[e],
- g = c.selection.getRange()
- ;(a = 1 * e), g.selectNode(f).select()
- },
- queryCommandValue: function () {
- var c = [].concat(this.selection.getStartElementPath()).reverse(),
- d = []
- b = c
- for (var e, f = 0; (e = c[f]); f++)
- if (3 != e.nodeType) {
- var g = e.tagName.toLowerCase()
- if (
- ('img' == g &&
- e.getAttribute('anchorname') &&
- (g = 'anchor'),
- (d[f] = g),
- a == f)
- ) {
- a = -1
- break
- }
- }
- return d
- }
- })
- }),
- (UE.plugins.formatmatch = function () {
- function a(f, g) {
- function h(a) {
- return (
- m && a.selectNode(m),
- a.applyInlineStyle(d[d.length - 1].tagName, null, d)
- )
- }
- if (browser.webkit) var i = 'IMG' == g.target.tagName ? g.target : null
- c.undoManger && c.undoManger.save()
- var j = c.selection.getRange(),
- k = i || j.getClosedNode()
- if (b && k && 'IMG' == k.tagName)
- (k.style.cssText +=
- ';float:' +
- (b.style.cssFloat || b.style.styleFloat || 'none') +
- ';display:' +
- (b.style.display || 'inline')),
- (b = null)
- else if (!b) {
- var l = j.collapsed
- if (l) {
- var m = c.document.createTextNode('match')
- j.insertNode(m).select()
- }
- c.__hasEnterExecCommand = !0
- var n = c.options.removeFormatAttributes
- ;(c.options.removeFormatAttributes = ''),
- c.execCommand('removeformat'),
- (c.options.removeFormatAttributes = n),
- (c.__hasEnterExecCommand = !1),
- (j = c.selection.getRange()),
- d.length && h(j),
- m && j.setStartBefore(m).collapse(!0),
- j.select(),
- m && domUtils.remove(m)
- }
- c.undoManger && c.undoManger.save(),
- c.removeListener('mouseup', a),
- (e = 0)
- }
- var b,
- c = this,
- d = [],
- e = 0
- c.addListener('reset', function () {
- ;(d = []), (e = 0)
- }),
- (c.commands.formatmatch = {
- execCommand: function (f) {
- if (e) return (e = 0), (d = []), void c.removeListener('mouseup', a)
- var g = c.selection.getRange()
- if (((b = g.getClosedNode()), !b || 'IMG' != b.tagName)) {
- g.collapse(!0).shrinkBoundary()
- var h = g.startContainer
- d = domUtils.findParents(h, !0, function (a) {
- return !domUtils.isBlockElm(a) && 1 == a.nodeType
- })
- for (var i, j = 0; (i = d[j]); j++)
- if ('A' == i.tagName) {
- d.splice(j, 1)
- break
- }
- }
- c.addListener('mouseup', a), (e = 1)
- },
- queryCommandState: function () {
- return e
- },
- notNeedUndo: 1
- })
- }),
- UE.plugin.register('searchreplace', function () {
- function a(a, b, c) {
- var d = b.searchStr
- b.dir == -1 &&
- ((a = a.split('').reverse().join('')),
- (d = d.split('').reverse().join('')),
- (c = a.length - c))
- for (
- var e, f = new RegExp(d, 'g' + (b.casesensitive ? '' : 'i'));
- (e = f.exec(a));
- )
- if (e.index >= c)
- return b.dir == -1
- ? a.length - e.index - b.searchStr.length
- : e.index
- return -1
- }
- function b(b, c, d) {
- var e,
- f,
- h = d.all || 1 == d.dir ? 'getNextDomNode' : 'getPreDomNode'
- domUtils.isBody(b) && (b = b.firstChild)
- for (var i = 1; b; ) {
- if (
- ((e =
- 3 == b.nodeType
- ? b.nodeValue
- : b[browser.ie ? 'innerText' : 'textContent']),
- (f = a(e, d, c)),
- (i = 0),
- f != -1)
- )
- return { node: b, index: f }
- for (b = domUtils[h](b); b && g[b.nodeName.toLowerCase()]; )
- b = domUtils[h](b, !0)
- b &&
- (c =
- d.dir == -1
- ? (3 == b.nodeType
- ? b.nodeValue
- : b[browser.ie ? 'innerText' : 'textContent']
- ).length
- : 0)
- }
- }
- function c(a, b, d) {
- for (var e, f = 0, g = a.firstChild, h = 0; g; ) {
- if (3 == g.nodeType) {
- if (
- ((h = g.nodeValue.replace(
- /(^[\t\r\n]+)|([\t\r\n]+$)/,
- ''
- ).length),
- (f += h),
- f >= b)
- )
- return { node: g, index: h - (f - b) }
- } else if (
- !dtd.$empty[g.tagName] &&
- ((h = g[browser.ie ? 'innerText' : 'textContent'].replace(
- /(^[\t\r\n]+)|([\t\r\n]+$)/,
- ''
- ).length),
- (f += h),
- f >= b && (e = c(g, h - (f - b), d)))
- )
- return e
- g = domUtils.getNextDomNode(g)
- }
- }
- function d(a, d) {
- var f,
- g = a.selection.getRange(),
- h = d.searchStr,
- i = a.document.createElement('span')
- if (
- ((i.innerHTML = '$$ueditor_searchreplace_key$$'),
- g.shrinkBoundary(!0),
- !g.collapsed)
- ) {
- g.select()
- var j = a.selection.getText()
- if (
- new RegExp(
- '^' + d.searchStr + '$',
- d.casesensitive ? '' : 'i'
- ).test(j)
- ) {
- if (void 0 != d.replaceStr)
- return e(g, d.replaceStr), g.select(), !0
- g.collapse(d.dir == -1)
- }
- }
- g.insertNode(i), g.enlargeToBlockElm(!0), (f = g.startContainer)
- var k = f[browser.ie ? 'innerText' : 'textContent'].indexOf(
- '$$ueditor_searchreplace_key$$'
- )
- g.setStartBefore(i), domUtils.remove(i)
- var l = b(f, k, d)
- if (l) {
- var m = c(l.node, l.index, h),
- n = c(l.node, l.index + h.length, h)
- return (
- g.setStart(m.node, m.index).setEnd(n.node, n.index),
- void 0 !== d.replaceStr && e(g, d.replaceStr),
- g.select(),
- !0
- )
- }
- g.setCursor()
- }
- function e(a, b) {
- ;(b = f.document.createTextNode(b)), a.deleteContents().insertNode(b)
- }
- var f = this,
- g = { table: 1, tbody: 1, tr: 1, ol: 1, ul: 1 }
- return {
- commands: {
- searchreplace: {
- execCommand: function (a, b) {
- utils.extend(b, { all: !1, casesensitive: !1, dir: 1 }, !0)
- var c = 0
- if (b.all) {
- var e = f.selection.getRange(),
- g = f.body.firstChild
- for (
- g && 1 == g.nodeType
- ? (e.setStart(g, 0), e.shrinkBoundary(!0))
- : 3 == g.nodeType && e.setStartBefore(g),
- e.collapse(!0).select(!0),
- void 0 !== b.replaceStr && f.fireEvent('saveScene');
- d(this, b);
- )
- c++
- c && f.fireEvent('saveScene')
- } else
- void 0 !== b.replaceStr && f.fireEvent('saveScene'),
- d(this, b) && c++,
- c && f.fireEvent('saveScene')
- return c
- },
- notNeedUndo: 1
- }
- }
- }
- }),
- (UE.plugins.customstyle = function () {
- var a = this
- a.setOpt({
- customstyle: [
- {
- tag: 'h1',
- name: 'tc',
- style:
- 'font-size:32px;font-weight:bold;border-bottom:#ccc 2px solid;padding:0 4px 0 0;text-align:center;margin:0 0 20px 0;'
- },
- {
- tag: 'h1',
- name: 'tl',
- style:
- 'font-size:32px;font-weight:bold;border-bottom:#ccc 2px solid;padding:0 4px 0 0;text-align:left;margin:0 0 10px 0;'
- },
- {
- tag: 'span',
- name: 'im',
- style:
- 'font-size:16px;font-style:italic;font-weight:bold;line-height:18px;'
- },
- {
- tag: 'span',
- name: 'hi',
- style:
- 'font-size:16px;font-style:italic;font-weight:bold;color:rgb(51, 153, 204);line-height:18px;'
- }
- ]
- }),
- (a.commands.customstyle = {
- execCommand: function (a, b) {
- var c,
- d,
- e = this,
- f = b.tag,
- g = domUtils.findParent(
- e.selection.getStart(),
- function (a) {
- return a.getAttribute('label')
- },
- !0
- ),
- h = {}
- for (var i in b) void 0 !== b[i] && (h[i] = b[i])
- if ((delete h.tag, g && g.getAttribute('label') == b.label)) {
- if (
- ((c = this.selection.getRange()),
- (d = c.createBookmark()),
- c.collapsed)
- )
- if (dtd.$block[g.tagName]) {
- var j = e.document.createElement('p')
- domUtils.moveChild(g, j),
- g.parentNode.insertBefore(j, g),
- domUtils.remove(g)
- } else domUtils.remove(g, !0)
- else {
- var k = domUtils.getCommonAncestor(d.start, d.end),
- l = domUtils.getElementsByTagName(k, f)
- new RegExp(f, 'i').test(k.tagName) && l.push(k)
- for (var m, n = 0; (m = l[n++]); )
- if (m.getAttribute('label') == b.label) {
- var o = domUtils.getPosition(m, d.start),
- p = domUtils.getPosition(m, d.end)
- if (
- (o & domUtils.POSITION_FOLLOWING ||
- o & domUtils.POSITION_CONTAINS) &&
- (p & domUtils.POSITION_PRECEDING ||
- p & domUtils.POSITION_CONTAINS) &&
- dtd.$block[f]
- ) {
- var j = e.document.createElement('p')
- domUtils.moveChild(m, j), m.parentNode.insertBefore(j, m)
- }
- domUtils.remove(m, !0)
- }
- ;(g = domUtils.findParent(
- k,
- function (a) {
- return a.getAttribute('label') == b.label
- },
- !0
- )),
- g && domUtils.remove(g, !0)
- }
- c.moveToBookmark(d).select()
- } else if (dtd.$block[f]) {
- if (
- (this.execCommand('paragraph', f, h, 'customstyle'),
- (c = e.selection.getRange()),
- !c.collapsed)
- ) {
- c.collapse(),
- (g = domUtils.findParent(
- e.selection.getStart(),
- function (a) {
- return a.getAttribute('label') == b.label
- },
- !0
- ))
- var q = e.document.createElement('p')
- domUtils.insertAfter(g, q),
- domUtils.fillNode(e.document, q),
- c.setStart(q, 0).setCursor()
- }
- } else {
- if (((c = e.selection.getRange()), c.collapsed))
- return (
- (g = e.document.createElement(f)),
- domUtils.setAttributes(g, h),
- void c.insertNode(g).setStart(g, 0).setCursor()
- )
- ;(d = c.createBookmark()),
- c.applyInlineStyle(f, h).moveToBookmark(d).select()
- }
- },
- queryCommandValue: function () {
- var a = domUtils.filterNodeList(
- this.selection.getStartElementPath(),
- function (a) {
- return a.getAttribute('label')
- }
- )
- return a ? a.getAttribute('label') : ''
- }
- }),
- a.addListener('keyup', function (b, c) {
- var d = c.keyCode || c.which
- if (32 == d || 13 == d) {
- var e = a.selection.getRange()
- if (e.collapsed) {
- var f = domUtils.findParent(
- a.selection.getStart(),
- function (a) {
- return a.getAttribute('label')
- },
- !0
- )
- if (f && dtd.$block[f.tagName] && domUtils.isEmptyNode(f)) {
- var g = a.document.createElement('p')
- domUtils.insertAfter(f, g),
- domUtils.fillNode(a.document, g),
- domUtils.remove(f),
- e.setStart(g, 0).setCursor()
- }
- }
- }
- })
- }),
- (UE.plugins.catchremoteimage = function () {
- var me = this,
- ajax = UE.ajax
- me.options.catchRemoteImageEnable !== !1 &&
- (me.setOpt({ catchRemoteImageEnable: !1 }),
- me.addListener('afterpaste', function () {
- me.fireEvent('catchRemoteImage')
- }),
- me.addListener('catchRemoteImage', function () {
- function catchremoteimage(a, b) {
- var c =
- utils.serializeParam(me.queryCommandValue('serverparam')) || '',
- d = utils.formatUrl(
- catcherActionUrl +
- (catcherActionUrl.indexOf('?') == -1 ? '?' : '&') +
- c
- ),
- e = utils.isCrossDomainUrl(d),
- f = {
- method: 'POST',
- dataType: e ? 'jsonp' : '',
- timeout: 6e4,
- onsuccess: b.success,
- onerror: b.error
- }
- ;(f[catcherFieldName] = a), ajax.request(d, f)
- }
- for (
- var catcherLocalDomain = me.getOpt('catcherLocalDomain'),
- catcherActionUrl = me.getActionUrl(
- me.getOpt('catcherActionName')
- ),
- catcherUrlPrefix = me.getOpt('catcherUrlPrefix'),
- catcherFieldName = me.getOpt('catcherFieldName'),
- remoteImages = [],
- imgs = domUtils.getElementsByTagName(me.document, 'img'),
- test = function (a, b) {
- if (a.indexOf(location.host) != -1 || /(^\.)|(^\/)/.test(a))
- return !0
- if (b)
- for (var c, d = 0; (c = b[d++]); )
- if (a.indexOf(c) !== -1) return !0
- return !1
- },
- i = 0,
- ci;
- (ci = imgs[i++]);
- )
- if (!ci.getAttribute('word_img')) {
- var src = ci.getAttribute('_src') || ci.src || ''
- ;/^(https?|ftp):/i.test(src) &&
- !test(src, catcherLocalDomain) &&
- remoteImages.push(src)
- }
- remoteImages.length &&
- catchremoteimage(remoteImages, {
- success: function (r) {
- try {
- var info =
- void 0 !== r.state ? r : eval('(' + r.responseText + ')')
- } catch (e) {
- return
- }
- var i,
- j,
- ci,
- cj,
- oldSrc,
- newSrc,
- list = info.list
- for (i = 0; (ci = imgs[i++]); )
- for (
- oldSrc = ci.getAttribute('_src') || ci.src || '', j = 0;
- (cj = list[j++]);
- )
- if (oldSrc == cj.source && 'SUCCESS' == cj.state) {
- ;(newSrc = catcherUrlPrefix + cj.url),
- domUtils.setAttributes(ci, {
- src: newSrc,
- _src: newSrc
- })
- break
- }
- me.fireEvent('catchremotesuccess')
- },
- error: function () {
- me.fireEvent('catchremoteerror')
- }
- })
- }))
- }),
- UE.plugin.register('snapscreen', function () {
- function getLocation(a) {
- var b,
- c = document.createElement('a'),
- d = utils.serializeParam(me.queryCommandValue('serverparam')) || ''
- return (
- (c.href = a),
- browser.ie && (c.href = c.href),
- (b = c.search),
- d &&
- ((b = b + (b.indexOf('?') == -1 ? '?' : '&') + d),
- (b = b.replace(/[&]+/gi, '&'))),
- {
- port: c.port,
- hostname: c.hostname,
- path: c.pathname + b || +c.hash
- }
- )
- }
- var me = this,
- snapplugin
- return {
- commands: {
- snapscreen: {
- execCommand: function (cmd) {
- function onSuccess(rs) {
- try {
- if (((rs = eval('(' + rs + ')')), 'SUCCESS' == rs.state)) {
- var opt = me.options
- me.execCommand('insertimage', {
- src: opt.snapscreenUrlPrefix + rs.url,
- _src: opt.snapscreenUrlPrefix + rs.url,
- alt: rs.title || '',
- floatStyle: opt.snapscreenImgAlign
- })
- } else alert(rs.state)
- } catch (e) {
- alert(lang.callBackErrorMsg)
- }
- }
- var url,
- local,
- res,
- lang = me.getLang('snapScreen_plugin')
- if (!snapplugin) {
- var container = me.container,
- doc = me.container.ownerDocument || me.container.document
- snapplugin = doc.createElement('object')
- try {
- snapplugin.type = 'application/x-pluginbaidusnap'
- } catch (e) {
- return
- }
- ;(snapplugin.style.cssText =
- 'position:absolute;left:-9999px;width:0;height:0;'),
- snapplugin.setAttribute('width', '0'),
- snapplugin.setAttribute('height', '0'),
- container.appendChild(snapplugin)
- }
- ;(url = me.getActionUrl(me.getOpt('snapscreenActionName'))),
- (local = getLocation(url)),
- setTimeout(function () {
- try {
- res = snapplugin.saveSnapshot(
- local.hostname,
- local.path,
- local.port
- )
- } catch (a) {
- return void me.ui._dialogs.snapscreenDialog.open()
- }
- onSuccess(res)
- }, 50)
- },
- queryCommandState: function () {
- return navigator.userAgent.indexOf('Windows', 0) != -1 ? 0 : -1
- }
- }
- }
- }
- }),
- (UE.commands.insertparagraph = {
- execCommand: function (a, b) {
- for (
- var c, d = this, e = d.selection.getRange(), f = e.startContainer;
- f && !domUtils.isBody(f);
- )
- (c = f), (f = f.parentNode)
- if (c) {
- var g = d.document.createElement('p')
- b
- ? c.parentNode.insertBefore(g, c)
- : c.parentNode.insertBefore(g, c.nextSibling),
- domUtils.fillNode(d.document, g),
- e.setStart(g, 0).setCursor(!1, !0)
- }
- }
- }),
- UE.plugin.register('webapp', function () {
- function a(a, c) {
- return c
- ? '<iframe class="edui-faked-webapp" title="' +
- a.title +
- '" ' +
- (a.align && !a.cssfloat ? 'align="' + a.align + '"' : '') +
- (a.cssfloat ? 'style="float:' + a.cssfloat + '"' : '') +
- 'width="' +
- a.width +
- '" height="' +
- a.height +
- '" scrolling="no" frameborder="0" src="' +
- a.url +
- '" logo_url = "' +
- a.logo +
- '"></iframe>'
- : '<img title="' +
- a.title +
- '" width="' +
- a.width +
- '" height="' +
- a.height +
- '" src="' +
- b.options.UEDITOR_HOME_URL +
- 'themes/default/images/spacer.gif" _logo_url="' +
- a.logo +
- '" style="background:url(' +
- a.logo +
- ') no-repeat center center; border:1px solid gray;" class="edui-faked-webapp" _url="' +
- a.url +
- '" ' +
- (a.align && !a.cssfloat ? 'align="' + a.align + '"' : '') +
- (a.cssfloat ? 'style="float:' + a.cssfloat + '"' : '') +
- '/>'
- }
- var b = this
- return {
- outputRule: function (b) {
- utils.each(b.getNodesByTagName('img'), function (b) {
- var c
- if ('edui-faked-webapp' == b.getAttr('class')) {
- c = a(
- {
- title: b.getAttr('title'),
- width: b.getAttr('width'),
- height: b.getAttr('height'),
- align: b.getAttr('align'),
- cssfloat: b.getStyle('float'),
- url: b.getAttr('_url'),
- logo: b.getAttr('_logo_url')
- },
- !0
- )
- var d = UE.uNode.createElement(c)
- b.parentNode.replaceChild(d, b)
- }
- })
- },
- inputRule: function (b) {
- utils.each(b.getNodesByTagName('iframe'), function (b) {
- if ('edui-faked-webapp' == b.getAttr('class')) {
- var c = UE.uNode.createElement(
- a({
- title: b.getAttr('title'),
- width: b.getAttr('width'),
- height: b.getAttr('height'),
- align: b.getAttr('align'),
- cssfloat: b.getStyle('float'),
- url: b.getAttr('src'),
- logo: b.getAttr('logo_url')
- })
- )
- b.parentNode.replaceChild(c, b)
- }
- })
- },
- commands: {
- webapp: {
- execCommand: function (b, c) {
- var d = this,
- e = a(utils.extend(c, { align: 'none' }), !1)
- d.execCommand('inserthtml', e)
- },
- queryCommandState: function () {
- var a = this,
- b = a.selection.getRange().getClosedNode(),
- c = b && 'edui-faked-webapp' == b.className
- return c ? 1 : 0
- }
- }
- }
- }
- }),
- (UE.plugins.template = function () {
- ;(UE.commands.template = {
- execCommand: function (a, b) {
- b.html && this.execCommand('inserthtml', b.html)
- }
- }),
- this.addListener('click', function (a, b) {
- var c = b.target || b.srcElement,
- d = this.selection.getRange(),
- e = domUtils.findParent(
- c,
- function (a) {
- if (a.className && domUtils.hasClass(a, 'ue_t')) return a
- },
- !0
- )
- e && d.selectNode(e).shrinkBoundary().select()
- }),
- this.addListener('keydown', function (a, b) {
- var c = this.selection.getRange()
- if (
- !c.collapsed &&
- !(b.ctrlKey || b.metaKey || b.shiftKey || b.altKey)
- ) {
- var d = domUtils.findParent(
- c.startContainer,
- function (a) {
- if (a.className && domUtils.hasClass(a, 'ue_t')) return a
- },
- !0
- )
- d && domUtils.removeClasses(d, ['ue_t'])
- }
- })
- }),
- UE.plugin.register('music', function () {
- function a(a, c, d, e, f, g) {
- return g
- ? '<embed type="application/x-shockwave-flash" class="edui-faked-music" pluginspage="http://www.macromedia.com/go/getflashplayer" src="' +
- a +
- '" width="' +
- c +
- '" height="' +
- d +
- '" ' +
- (e && !f ? 'align="' + e + '"' : '') +
- (f ? 'style="float:' + f + '"' : '') +
- ' wmode="transparent" play="true" loop="false" menu="false" allowscriptaccess="never" allowfullscreen="true" >'
- : '<img ' +
- (e && !f ? 'align="' + e + '"' : '') +
- (f ? 'style="float:' + f + '"' : '') +
- ' width="' +
- c +
- '" height="' +
- d +
- '" _url="' +
- a +
- '" class="edui-faked-music" src="' +
- b.options.langPath +
- b.options.lang +
- '/images/music.png" />'
- }
- var b = this
- return {
- outputRule: function (b) {
- utils.each(b.getNodesByTagName('img'), function (b) {
- var c
- if ('edui-faked-music' == b.getAttr('class')) {
- var d = b.getStyle('float'),
- e = b.getAttr('align')
- c = a(
- b.getAttr('_url'),
- b.getAttr('width'),
- b.getAttr('height'),
- e,
- d,
- !0
- )
- var f = UE.uNode.createElement(c)
- b.parentNode.replaceChild(f, b)
- }
- })
- },
- inputRule: function (b) {
- utils.each(b.getNodesByTagName('embed'), function (b) {
- if ('edui-faked-music' == b.getAttr('class')) {
- var c = b.getStyle('float'),
- d = b.getAttr('align')
- html = a(
- b.getAttr('src'),
- b.getAttr('width'),
- b.getAttr('height'),
- d,
- c,
- !1
- )
- var e = UE.uNode.createElement(html)
- b.parentNode.replaceChild(e, b)
- }
- })
- },
- commands: {
- music: {
- execCommand: function (b, c) {
- var d = this,
- e = a(c.url, c.width || 400, c.height || 95, 'none', !1)
- d.execCommand('inserthtml', e)
- },
- queryCommandState: function () {
- var a = this,
- b = a.selection.getRange().getClosedNode(),
- c = b && 'edui-faked-music' == b.className
- return c ? 1 : 0
- }
- }
- }
- }
- }),
- UE.plugin.register('autoupload', function () {
- function a(a, b) {
- var c,
- d,
- e,
- f,
- g,
- h,
- i,
- j,
- k = b,
- l = /image\/\w+/i.test(a.type) ? 'image' : 'file',
- m = 'loading_' + (+new Date()).toString(36)
- if (
- ((c = k.getOpt(l + 'FieldName')),
- (d = k.getOpt(l + 'UrlPrefix')),
- (e = k.getOpt(l + 'MaxSize')),
- (f = k.getOpt(l + 'AllowFiles')),
- (g = k.getActionUrl(k.getOpt(l + 'ActionName'))),
- (i = function (a) {
- var b = k.document.getElementById(m)
- b && domUtils.remove(b),
- k.fireEvent('showmessage', {
- id: m,
- content: a,
- type: 'error',
- timeout: 4e3
- })
- }),
- 'image' == l
- ? ((h =
- '<img class="loadingclass" id="' +
- m +
- '" src="' +
- k.options.themePath +
- k.options.theme +
- '/images/spacer.gif" title="' +
- (k.getLang('autoupload.loading') || '') +
- '" >'),
- (j = function (a) {
- var b = d + a.url,
- c = k.document.getElementById(m)
- c &&
- (c.setAttribute('src', b),
- c.setAttribute('_src', b),
- c.setAttribute('title', a.title || ''),
- c.setAttribute('alt', a.original || ''),
- c.removeAttribute('id'),
- domUtils.removeClasses(c, 'loadingclass'))
- }))
- : ((h =
- '<p><img class="loadingclass" id="' +
- m +
- '" src="' +
- k.options.themePath +
- k.options.theme +
- '/images/spacer.gif" title="' +
- (k.getLang('autoupload.loading') || '') +
- '" ></p>'),
- (j = function (a) {
- var b = d + a.url,
- c = k.document.getElementById(m),
- e = k.selection.getRange(),
- f = e.createBookmark()
- e.selectNode(c).select(),
- k.execCommand('insertfile', { url: b }),
- e.moveToBookmark(f).select()
- })),
- k.execCommand('inserthtml', h),
- !k.getOpt(l + 'ActionName'))
- )
- return void i(k.getLang('autoupload.errorLoadConfig'))
- if (a.size > e) return void i(k.getLang('autoupload.exceedSizeError'))
- var n = a.name ? a.name.substr(a.name.lastIndexOf('.')) : ''
- if (
- (n && 'image' != l) ||
- (f && (f.join('') + '.').indexOf(n.toLowerCase() + '.') == -1)
- )
- return void i(k.getLang('autoupload.exceedTypeError'))
- var o = new XMLHttpRequest(),
- p = new FormData(),
- q = utils.serializeParam(k.queryCommandValue('serverparam')) || '',
- r = utils.formatUrl(g + (g.indexOf('?') == -1 ? '?' : '&') + q)
- p.append(c, a, a.name || 'blob.' + a.type.substr('image/'.length)),
- p.append('type', 'ajax'),
- o.open('post', r, !0),
- o.setRequestHeader('X-Requested-With', 'XMLHttpRequest'),
- o.addEventListener('load', function (a) {
- try {
- var b = new Function('return ' + utils.trim(a.target.response))()
- 'SUCCESS' == b.state && b.url ? j(b) : i(b.state)
- } catch (c) {
- i(k.getLang('autoupload.loadError'))
- }
- }),
- o.send(p)
- }
- function b(a) {
- return a.clipboardData &&
- a.clipboardData.items &&
- 1 == a.clipboardData.items.length &&
- /^image\//.test(a.clipboardData.items[0].type)
- ? a.clipboardData.items
- : null
- }
- function c(a) {
- return a.dataTransfer && a.dataTransfer.files
- ? a.dataTransfer.files
- : null
- }
- return {
- outputRule: function (a) {
- utils.each(a.getNodesByTagName('img'), function (a) {
- ;/\b(loaderrorclass)|(bloaderrorclass)\b/.test(
- a.getAttr('class')
- ) && a.parentNode.removeChild(a)
- }),
- utils.each(a.getNodesByTagName('p'), function (a) {
- ;/\bloadpara\b/.test(a.getAttr('class')) &&
- a.parentNode.removeChild(a)
- })
- },
- bindEvents: {
- ready: function (d) {
- var e = this
- window.FormData &&
- window.FileReader &&
- (domUtils.on(e.body, 'paste drop', function (d) {
- var f,
- g = !1
- if ((f = 'paste' == d.type ? b(d) : c(d))) {
- for (var h, i = f.length; i--; )
- (h = f[i]),
- h.getAsFile && (h = h.getAsFile()),
- h && h.size > 0 && (a(h, e), (g = !0))
- g && d.preventDefault()
- }
- }),
- domUtils.on(e.body, 'dragover', function (a) {
- 'Files' == a.dataTransfer.types[0] && a.preventDefault()
- }),
- utils.cssRule(
- 'loading',
- ".loadingclass{display:inline-block;cursor:default;background: url('" +
- this.options.themePath +
- this.options.theme +
- "/images/loading.gif') no-repeat center center transparent;border:1px solid #cccccc;margin-left:1px;height: 22px;width: 22px;}\n.loaderrorclass{display:inline-block;cursor:default;background: url('" +
- this.options.themePath +
- this.options.theme +
- "/images/loaderror.png') no-repeat center center transparent;border:1px solid #cccccc;margin-right:1px;height: 22px;width: 22px;}",
- this.document
- ))
- }
- }
- }
- }),
- UE.plugin.register('autosave', function () {
- function a(a) {
- var f
- if (!(new Date() - c < d)) {
- if (!a.hasContents()) return void (e && b.removePreferences(e))
- ;(c = new Date()),
- (a._saveFlag = null),
- (f = b.body.innerHTML),
- a.fireEvent('beforeautosave', { content: f }) !== !1 &&
- (b.setPreferences(e, f),
- a.fireEvent('afterautosave', { content: f }))
- }
- }
- var b = this,
- c = new Date(),
- d = 20,
- e = null
- return {
- defaultOptions: { saveInterval: 500, enableAutoSave: !0 },
- bindEvents: {
- ready: function () {
- var a = '-drafts-data',
- c = null
- ;(c = b.key
- ? b.key + a
- : (b.container.parentNode.id || 'ue-common') + a),
- (e =
- (location.protocol + location.host + location.pathname).replace(
- /[.:\/]/g,
- '_'
- ) + c)
- },
- contentchange: function () {
- b.getOpt('enableAutoSave') &&
- e &&
- (b._saveFlag && window.clearTimeout(b._saveFlag),
- b.options.saveInterval > 0
- ? (b._saveFlag = window.setTimeout(function () {
- a(b)
- }, b.options.saveInterval))
- : a(b))
- }
- },
- commands: {
- clearlocaldata: {
- execCommand: function (a, c) {
- e && b.getPreferences(e) && b.removePreferences(e)
- },
- notNeedUndo: !0,
- ignoreContentChange: !0
- },
- getlocaldata: {
- execCommand: function (a, c) {
- return e ? b.getPreferences(e) || '' : ''
- },
- notNeedUndo: !0,
- ignoreContentChange: !0
- },
- drafts: {
- execCommand: function (a, c) {
- e &&
- ((b.body.innerHTML =
- b.getPreferences(e) || '<p>' + domUtils.fillHtml + '</p>'),
- b.focus(!0))
- },
- queryCommandState: function () {
- return e ? (null === b.getPreferences(e) ? -1 : 0) : -1
- },
- notNeedUndo: !0,
- ignoreContentChange: !0
- }
- }
- }
- }),
- UE.plugin.register('charts', function () {
- function a(a) {
- var b = null,
- c = 0
- if (a.rows.length < 2) return !1
- if (a.rows[0].cells.length < 2) return !1
- ;(b = a.rows[0].cells), (c = b.length)
- for (var d, e = 0; (d = b[e]); e++)
- if ('th' !== d.tagName.toLowerCase()) return !1
- for (var f, e = 1; (f = a.rows[e]); e++) {
- if (f.cells.length != c) return !1
- if ('th' !== f.cells[0].tagName.toLowerCase()) return !1
- for (var d, g = 1; (d = f.cells[g]); g++) {
- var h = utils.trim(d.innerText || d.textContent || '')
- if (
- ((h = h
- .replace(new RegExp(UE.dom.domUtils.fillChar, 'g'), '')
- .replace(/^\s+|\s+$/g, '')),
- !/^\d*\.?\d+$/.test(h))
- )
- return !1
- }
- }
- return !0
- }
- var b = this
- return {
- bindEvents: { chartserror: function () {} },
- commands: {
- charts: {
- execCommand: function (c, d) {
- var e = domUtils.findParentByTagName(
- this.selection.getRange().startContainer,
- 'table',
- !0
- ),
- f = [],
- g = {}
- if (!e) return !1
- if (!a(e)) return b.fireEvent('chartserror'), !1
- ;(g.title = d.title || ''),
- (g.subTitle = d.subTitle || ''),
- (g.xTitle = d.xTitle || ''),
- (g.yTitle = d.yTitle || ''),
- (g.suffix = d.suffix || ''),
- (g.tip = d.tip || ''),
- (g.dataFormat = d.tableDataFormat || ''),
- (g.chartType = d.chartType || 0)
- for (var h in g) g.hasOwnProperty(h) && f.push(h + ':' + g[h])
- e.setAttribute('data-chart', f.join(';')),
- domUtils.addClass(e, 'edui-charts-table')
- },
- queryCommandState: function (b, c) {
- var d = domUtils.findParentByTagName(
- this.selection.getRange().startContainer,
- 'table',
- !0
- )
- return d && a(d) ? 0 : -1
- }
- }
- },
- inputRule: function (a) {
- utils.each(a.getNodesByTagName('table'), function (a) {
- void 0 !== a.getAttr('data-chart') && a.setAttr('style')
- })
- },
- outputRule: function (a) {
- utils.each(a.getNodesByTagName('table'), function (a) {
- void 0 !== a.getAttr('data-chart') &&
- a.setAttr('style', 'display: none;')
- })
- }
- }
- }),
- UE.plugin.register('section', function () {
- function a(a) {
- ;(this.tag = ''),
- (this.level = -1),
- (this.dom = null),
- (this.nextSection = null),
- (this.previousSection = null),
- (this.parentSection = null),
- (this.startAddress = []),
- (this.endAddress = []),
- (this.children = [])
- }
- function b(b) {
- var c = new a()
- return utils.extend(c, b)
- }
- function c(a, b) {
- for (var c = b, d = 0; d < a.length; d++) {
- if (!c.childNodes) return null
- c = c.childNodes[a[d]]
- }
- return c
- }
- var d = this
- return {
- bindMultiEvents: {
- type: 'aftersetcontent afterscencerestore',
- handler: function () {
- d.fireEvent('updateSections')
- }
- },
- bindEvents: {
- ready: function () {
- d.fireEvent('updateSections'),
- domUtils.on(d.body, 'drop paste', function () {
- d.fireEvent('updateSections')
- })
- },
- afterexeccommand: function (a, b) {
- 'paragraph' == b && d.fireEvent('updateSections')
- },
- keyup: function (a, b) {
- var c = this,
- d = c.selection.getRange()
- if (1 != d.collapsed) c.fireEvent('updateSections')
- else {
- var e = b.keyCode || b.which
- ;(13 != e && 8 != e && 46 != e) || c.fireEvent('updateSections')
- }
- }
- },
- commands: {
- getsections: {
- execCommand: function (a, c) {
- function d(a) {
- for (var b = 0; b < f.length; b++) if (f[b](a)) return b
- return -1
- }
- function e(a, c) {
- for (
- var f, g, i, k = null, l = a.childNodes, m = 0, n = l.length;
- m < n;
- m++
- )
- if (((i = l[m]), (f = d(i)), f >= 0)) {
- var o = h.selection
- .getRange()
- .selectNode(i)
- .createAddress(!0).startAddress,
- p = b({
- tag: i.tagName,
- title: i.innerText || i.textContent || '',
- level: f,
- dom: i,
- startAddress: utils.clone(o, []),
- endAddress: utils.clone(o, []),
- children: []
- })
- for (
- j.nextSection = p, p.previousSection = j, g = j;
- f <= g.level;
- )
- g = g.parentSection
- ;(p.parentSection = g), g.children.push(p), (k = j = p)
- } else
- 1 === i.nodeType && e(i, c),
- k && k.endAddress[k.endAddress.length - 1]++
- }
- for (
- var f = c || ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'], g = 0;
- g < f.length;
- g++
- )
- 'string' == typeof f[g]
- ? (f[g] = (function (a) {
- return function (b) {
- return b.tagName == a.toUpperCase()
- }
- })(f[g]))
- : 'function' != typeof f[g] &&
- (f[g] = function (a) {
- return null
- })
- var h = this,
- i = b({ level: -1, title: 'root' }),
- j = i
- return e(h.body, i), i
- },
- notNeedUndo: !0
- },
- movesection: {
- execCommand: function (a, b, d, e) {
- function f(a, b, c) {
- for (
- var d = !1, e = !1, f = 0;
- f < a.length && !(f >= c.length);
- f++
- ) {
- if (c[f] > a[f]) {
- d = !0
- break
- }
- if (c[f] < a[f]) break
- }
- for (var f = 0; f < b.length && !(f >= c.length); f++) {
- if (c[f] < a[f]) {
- e = !0
- break
- }
- if (c[f] > a[f]) break
- }
- return d && e
- }
- var g,
- h,
- i = this
- if (
- b &&
- d &&
- d.level != -1 &&
- ((g = e ? d.endAddress : d.startAddress),
- (h = c(g, i.body)),
- g && h && !f(b.startAddress, b.endAddress, g))
- ) {
- var j,
- k,
- l = c(b.startAddress, i.body),
- m = c(b.endAddress, i.body)
- if (e)
- for (
- j = m;
- j &&
- !(
- domUtils.getPosition(l, j) & domUtils.POSITION_FOLLOWING
- ) &&
- ((k = j.previousSibling),
- domUtils.insertAfter(h, j),
- j != l);
- )
- j = k
- else
- for (
- j = l;
- j &&
- !(
- domUtils.getPosition(j, m) & domUtils.POSITION_FOLLOWING
- ) &&
- ((k = j.nextSibling),
- h.parentNode.insertBefore(j, h),
- j != m);
- )
- j = k
- i.fireEvent('updateSections')
- }
- }
- },
- deletesection: {
- execCommand: function (a, b, c) {
- function d(a) {
- for (var b = e.body, c = 0; c < a.length; c++) {
- if (!b.childNodes) return null
- b = b.childNodes[a[c]]
- }
- return b
- }
- var e = this
- if (b) {
- var f,
- g = d(b.startAddress),
- h = d(b.endAddress),
- i = g
- if (c) domUtils.remove(i)
- else
- for (
- ;
- i &&
- domUtils.inDoc(h, e.document) &&
- !(domUtils.getPosition(i, h) & domUtils.POSITION_FOLLOWING);
- )
- (f = i.nextSibling), domUtils.remove(i), (i = f)
- e.fireEvent('updateSections')
- }
- }
- },
- selectsection: {
- execCommand: function (a, b) {
- if (!b && !b.dom) return !1
- var c = this,
- d = c.selection.getRange(),
- e = {
- startAddress: utils.clone(b.startAddress, []),
- endAddress: utils.clone(b.endAddress, [])
- }
- return (
- e.endAddress[e.endAddress.length - 1]++,
- d.moveToAddress(e).select().scrollToView(),
- !0
- )
- },
- notNeedUndo: !0
- },
- scrolltosection: {
- execCommand: function (a, b) {
- if (!b && !b.dom) return !1
- var c = this,
- d = c.selection.getRange(),
- e = { startAddress: b.startAddress, endAddress: b.endAddress }
- return (
- e.endAddress[e.endAddress.length - 1]++,
- d.moveToAddress(e).scrollToView(),
- !0
- )
- },
- notNeedUndo: !0
- }
- }
- }
- }),
- UE.plugin.register('simpleupload', function () {
- function a() {
- var a = b.offsetWidth || 20,
- e = b.offsetHeight || 20,
- f =
- 'display:block;width:' +
- a +
- 'px;height:' +
- e +
- 'px;overflow:hidden;border:0;margin:0;padding:0;position:absolute;top:0;left:0;filter:alpha(opacity=0);-moz-opacity:0;-khtml-opacity: 0;opacity: 0;cursor:pointer;',
- g = document.createElement('form'),
- h = document.createElement('input')
- ;(g.id = 'edui_form_' + d),
- (g.enctype = 'multipart/form-data'),
- (g.style = f),
- (h.id = 'edui_input_' + d),
- (h.type = 'file'),
- (h.accept = 'image/*'),
- (h.name = c.options.imageFieldName),
- (h.style = f),
- g.appendChild(h),
- b.appendChild(g),
- h.addEventListener('change', function (a) {
- function b(a) {
- if (d) {
- var b = c.document.getElementById(d)
- b && domUtils.remove(b),
- c.fireEvent('showmessage', {
- id: d,
- content: a,
- type: 'error',
- timeout: 4e3
- })
- }
- }
- if (h.value) {
- var d = 'loading_' + (+new Date()).toString(36),
- e = c.getActionUrl(c.getOpt('imageActionName')),
- f =
- utils.serializeParam(c.queryCommandValue('serverparam')) ||
- '',
- i = utils.formatUrl(e + (e.indexOf('?') == -1 ? '?' : '&') + f),
- j = c.getOpt('imageAllowFiles')
- if (
- (c.focus(),
- c.execCommand(
- 'inserthtml',
- '<img class="loadingclass" id="' +
- d +
- '" src="' +
- c.options.themePath +
- c.options.theme +
- '/images/spacer.gif" title="' +
- (c.getLang('simpleupload.loading') || '') +
- '" >'
- ),
- !c.getOpt('imageActionName'))
- )
- return void b(c.getLang('autoupload.errorLoadConfig'))
- var k = h.value,
- l = k ? k.substr(k.lastIndexOf('.')) : ''
- if (
- !l ||
- (j && (j.join('') + '.').indexOf(l.toLowerCase() + '.') == -1)
- )
- return void b(c.getLang('simpleupload.exceedTypeError'))
- var m = new XMLHttpRequest()
- if (
- (m.open('post', i, !0),
- c.options.headers &&
- '[object Object]' ===
- Object.prototype.toString.apply(c.options.headers))
- )
- for (var n in c.options.headers)
- m.setRequestHeader(n, c.options.headers[n])
- ;(m.onload = function () {
- if ((m.status >= 200 && m.status < 300) || 304 == m.status) {
- var a = JSON.parse(m.responseText),
- e = c.options.imageUrlPrefix + a.url
- 'SUCCESS' == a.state && a.url
- ? ((loader = c.document.getElementById(d)),
- loader.setAttribute('src', e),
- loader.setAttribute('_src', e),
- loader.setAttribute('title', a.title || ''),
- loader.setAttribute('alt', a.original || ''),
- loader.removeAttribute('id'),
- domUtils.removeClasses(loader, 'loadingclass'),
- c.fireEvent('contentchange'))
- : b(a.state)
- } else b(c.getLang('simpleupload.loadError'))
- }),
- (m.onerror = function () {
- b(c.getLang('simpleupload.loadError'))
- }),
- m.send(new FormData(g)),
- g.reset()
- }
- })
- }
- var b,
- c = this,
- d = (+new Date()).toString(36)
- return {
- bindEvents: {
- ready: function () {
- utils.cssRule(
- 'loading',
- ".loadingclass{display:inline-block;cursor:default;background: url('" +
- this.options.themePath +
- this.options.theme +
- "/images/loading.gif') no-repeat center center transparent;border:1px solid #cccccc;margin-right:1px;height: 22px;width: 22px;}\n.loaderrorclass{display:inline-block;cursor:default;background: url('" +
- this.options.themePath +
- this.options.theme +
- "/images/loaderror.png') no-repeat center center transparent;border:1px solid #cccccc;margin-right:1px;height: 22px;width: 22px;}",
- this.document
- )
- },
- simpleuploadbtnready: function (d, e) {
- ;(b = e), c.afterConfigReady(a)
- }
- },
- outputRule: function (a) {
- utils.each(a.getNodesByTagName('img'), function (a) {
- ;/\b(loaderrorclass)|(bloaderrorclass)\b/.test(
- a.getAttr('class')
- ) && a.parentNode.removeChild(a)
- })
- }
- }
- }),
- UE.plugin.register('serverparam', function () {
- var a = {}
- return {
- commands: {
- serverparam: {
- execCommand: function (b, c, d) {
- void 0 === c || null === c
- ? (a = {})
- : utils.isString(c)
- ? void 0 === d || null === d
- ? delete a[c]
- : (a[c] = d)
- : utils.isObject(c)
- ? utils.extend(a, c, !0)
- : utils.isFunction(c) && utils.extend(a, c(), !0)
- },
- queryCommandValue: function () {
- return a || {}
- }
- }
- }
- }
- }),
- UE.plugin.register('insertfile', function () {
- function a(a) {
- var b = a.substr(a.lastIndexOf('.') + 1).toLowerCase(),
- c = {
- rar: 'icon_rar.gif',
- zip: 'icon_rar.gif',
- tar: 'icon_rar.gif',
- gz: 'icon_rar.gif',
- bz2: 'icon_rar.gif',
- doc: 'icon_doc.gif',
- docx: 'icon_doc.gif',
- pdf: 'icon_pdf.gif',
- mp3: 'icon_mp3.gif',
- xls: 'icon_xls.gif',
- chm: 'icon_chm.gif',
- ppt: 'icon_ppt.gif',
- pptx: 'icon_ppt.gif',
- avi: 'icon_mv.gif',
- rmvb: 'icon_mv.gif',
- wmv: 'icon_mv.gif',
- flv: 'icon_mv.gif',
- swf: 'icon_mv.gif',
- rm: 'icon_mv.gif',
- exe: 'icon_exe.gif',
- psd: 'icon_psd.gif',
- txt: 'icon_txt.gif',
- jpg: 'icon_jpg.gif',
- png: 'icon_jpg.gif',
- jpeg: 'icon_jpg.gif',
- gif: 'icon_jpg.gif',
- ico: 'icon_jpg.gif',
- bmp: 'icon_jpg.gif'
- }
- return c[b] ? c[b] : c.txt
- }
- var b = this
- return {
- commands: {
- insertfile: {
- execCommand: function (c, d) {
- d = utils.isArray(d) ? d : [d]
- var e,
- f,
- g,
- h,
- i = '',
- j = b.getOpt('UEDITOR_HOME_URL'),
- k =
- j +
- ('/' == j.substr(j.length - 1) ? '' : '/') +
- 'dialogs/attachment/fileTypeImages/'
- for (e = 0; e < d.length; e++)
- (f = d[e]),
- (g = k + a(f.url)),
- (h = f.title || f.url.substr(f.url.lastIndexOf('/') + 1)),
- (i +=
- '<p style="line-height: 16px;"><img style="vertical-align: middle; margin-right: 2px;" src="' +
- g +
- '" _src="' +
- g +
- '" /><a style="font-size:12px; color:#0066cc;" href="' +
- f.url +
- '" title="' +
- h +
- '">' +
- h +
- '</a></p>')
- b.execCommand('insertHtml', i)
- }
- }
- }
- }
- }),
- (UE.plugins.xssFilter = function () {
- function a(a) {
- var b = a.tagName,
- d = a.attrs
- return c.hasOwnProperty(b)
- ? void UE.utils.each(d, function (d, e) {
- c[b].indexOf(e) === -1 && a.setAttr(e)
- })
- : (a.parentNode.removeChild(a), !1)
- }
- var b = UEDITOR_CONFIG,
- c = b.whitList
- c &&
- b.xssFilterRules &&
- (this.options.filterRules = (function () {
- var b = {}
- return (
- UE.utils.each(c, function (c, d) {
- b[d] = function (b) {
- return a(b)
- }
- }),
- b
- )
- })())
- var d = []
- UE.utils.each(c, function (a, b) {
- d.push(b)
- }),
- c &&
- b.inputXssFilter &&
- this.addInputRule(function (b) {
- b.traversal(function (b) {
- return 'element' === b.type && void a(b)
- })
- }),
- c &&
- b.outputXssFilter &&
- this.addOutputRule(function (b) {
- b.traversal(function (b) {
- return 'element' === b.type && void a(b)
- })
- })
- })
- var baidu = baidu || {}
- ;(baidu.editor = baidu.editor || {}),
- (UE.ui = baidu.editor.ui = {}),
- (function () {
- function a() {
- var a = document.getElementById('edui_fixedlayer')
- i.setViewportOffset(a, { left: 0, top: 0 })
- }
- function b(b) {
- d.on(window, 'scroll', a),
- d.on(window, 'resize', baidu.editor.utils.defer(a, 0, !0))
- }
- var c = baidu.editor.browser,
- d = baidu.editor.dom.domUtils,
- e = '$EDITORUI',
- f = (window[e] = {}),
- g = 'ID' + e,
- h = 0,
- i = (baidu.editor.ui.uiUtils = {
- uid: function (a) {
- return a ? a[g] || (a[g] = ++h) : ++h
- },
- hook: function (a, b) {
- var c
- return (
- a && a._callbacks
- ? (c = a)
- : ((c = function () {
- var b
- a && (b = a.apply(this, arguments))
- for (var d = c._callbacks, e = d.length; e--; ) {
- var f = d[e].apply(this, arguments)
- void 0 === b && (b = f)
- }
- return b
- }),
- (c._callbacks = [])),
- c._callbacks.push(b),
- c
- )
- },
- createElementByHtml: function (a) {
- var b = document.createElement('div')
- return (
- (b.innerHTML = a),
- (b = b.firstChild),
- b.parentNode.removeChild(b),
- b
- )
- },
- getViewportElement: function () {
- return c.ie && c.quirks ? document.body : document.documentElement
- },
- getClientRect: function (a) {
- var b
- try {
- b = a.getBoundingClientRect()
- } catch (c) {
- b = { left: 0, top: 0, height: 0, width: 0 }
- }
- for (
- var e,
- f = {
- left: Math.round(b.left),
- top: Math.round(b.top),
- height: Math.round(b.bottom - b.top),
- width: Math.round(b.right - b.left)
- };
- (e = a.ownerDocument) !== document &&
- (a = d.getWindow(e).frameElement);
- )
- (b = a.getBoundingClientRect()),
- (f.left += b.left),
- (f.top += b.top)
- return (
- (f.bottom = f.top + f.height), (f.right = f.left + f.width), f
- )
- },
- getViewportRect: function () {
- var a = i.getViewportElement(),
- b = 0 | (window.innerWidth || a.clientWidth),
- c = 0 | (window.innerHeight || a.clientHeight)
- return { left: 0, top: 0, height: c, width: b, bottom: c, right: b }
- },
- setViewportOffset: function (a, b) {
- var c = i.getFixedLayer()
- a.parentNode === c
- ? ((a.style.left = b.left + 'px'), (a.style.top = b.top + 'px'))
- : d.setViewportOffset(a, b)
- },
- getEventOffset: function (a) {
- var b = a.target || a.srcElement,
- c = i.getClientRect(b),
- d = i.getViewportOffsetByEvent(a)
- return { left: d.left - c.left, top: d.top - c.top }
- },
- getViewportOffsetByEvent: function (a) {
- var b = a.target || a.srcElement,
- c = d.getWindow(b).frameElement,
- e = { left: a.clientX, top: a.clientY }
- if (c && b.ownerDocument !== document) {
- var f = i.getClientRect(c)
- ;(e.left += f.left), (e.top += f.top)
- }
- return e
- },
- setGlobal: function (a, b) {
- return (f[a] = b), e + '["' + a + '"]'
- },
- unsetGlobal: function (a) {
- delete f[a]
- },
- copyAttributes: function (a, b) {
- for (var e = b.attributes, f = e.length; f--; ) {
- var g = e[f]
- 'style' == g.nodeName ||
- 'class' == g.nodeName ||
- (c.ie && !g.specified) ||
- a.setAttribute(g.nodeName, g.nodeValue)
- }
- b.className && d.addClass(a, b.className),
- b.style.cssText && (a.style.cssText += ';' + b.style.cssText)
- },
- removeStyle: function (a, b) {
- if (a.style.removeProperty) a.style.removeProperty(b)
- else {
- if (!a.style.removeAttribute) throw ''
- a.style.removeAttribute(b)
- }
- },
- contains: function (a, b) {
- return (
- a &&
- b &&
- a !== b &&
- (a.contains ? a.contains(b) : 16 & a.compareDocumentPosition(b))
- )
- },
- startDrag: function (a, b, c) {
- function d(a) {
- var c = a.clientX - g,
- d = a.clientY - h
- b.ondragmove(c, d, a),
- a.stopPropagation ? a.stopPropagation() : (a.cancelBubble = !0)
- }
- function e(a) {
- c.removeEventListener('mousemove', d, !0),
- c.removeEventListener('mouseup', e, !0),
- window.removeEventListener('mouseup', e, !0),
- b.ondragstop()
- }
- function f() {
- i.releaseCapture(),
- i.detachEvent('onmousemove', d),
- i.detachEvent('onmouseup', f),
- i.detachEvent('onlosecaptrue', f),
- b.ondragstop()
- }
- var c = c || document,
- g = a.clientX,
- h = a.clientY
- if (c.addEventListener)
- c.addEventListener('mousemove', d, !0),
- c.addEventListener('mouseup', e, !0),
- window.addEventListener('mouseup', e, !0),
- a.preventDefault()
- else {
- var i = a.srcElement
- i.setCapture(),
- i.attachEvent('onmousemove', d),
- i.attachEvent('onmouseup', f),
- i.attachEvent('onlosecaptrue', f),
- (a.returnValue = !1)
- }
- b.ondragstart()
- },
- getFixedLayer: function () {
- var d = document.getElementById('edui_fixedlayer')
- return (
- null == d &&
- ((d = document.createElement('div')),
- (d.id = 'edui_fixedlayer'),
- document.body.appendChild(d),
- c.ie && c.version <= 8
- ? ((d.style.position = 'absolute'), b(), setTimeout(a))
- : (d.style.position = 'fixed'),
- (d.style.left = '0'),
- (d.style.top = '0'),
- (d.style.width = '0'),
- (d.style.height = '0')),
- d
- )
- },
- makeUnselectable: function (a) {
- if (c.opera || (c.ie && c.version < 9)) {
- if (((a.unselectable = 'on'), a.hasChildNodes()))
- for (var b = 0; b < a.childNodes.length; b++)
- 1 == a.childNodes[b].nodeType &&
- i.makeUnselectable(a.childNodes[b])
- } else
- void 0 !== a.style.MozUserSelect
- ? (a.style.MozUserSelect = 'none')
- : void 0 !== a.style.WebkitUserSelect
- ? (a.style.WebkitUserSelect = 'none')
- : void 0 !== a.style.KhtmlUserSelect &&
- (a.style.KhtmlUserSelect = 'none')
- }
- })
- })(),
- (function () {
- var a = baidu.editor.utils,
- b = baidu.editor.ui.uiUtils,
- c = baidu.editor.EventBase,
- d = (baidu.editor.ui.UIBase = function () {})
- ;(d.prototype = {
- className: '',
- uiName: '',
- initOptions: function (a) {
- var c = this
- for (var d in a) c[d] = a[d]
- this.id = this.id || 'edui' + b.uid()
- },
- initUIBase: function () {
- this._globalKey = a.unhtml(b.setGlobal(this.id, this))
- },
- render: function (a) {
- for (
- var c,
- d = this.renderHtml(),
- e = b.createElementByHtml(d),
- f = domUtils.getElementsByTagName(e, '*'),
- g = 'edui-' + (this.theme || this.editor.options.theme),
- h = document.getElementById('edui_fixedlayer'),
- i = 0;
- (c = f[i++]);
- )
- domUtils.addClass(c, g)
- domUtils.addClass(e, g),
- h && ((h.className = ''), domUtils.addClass(h, g))
- var j = this.getDom()
- null != j
- ? (j.parentNode.replaceChild(e, j), b.copyAttributes(e, j))
- : ('string' == typeof a && (a = document.getElementById(a)),
- (a = a || b.getFixedLayer()),
- domUtils.addClass(a, g),
- a.appendChild(e)),
- this.postRender()
- },
- getDom: function (a) {
- return a
- ? document.getElementById(this.id + '_' + a)
- : document.getElementById(this.id)
- },
- postRender: function () {
- this.fireEvent('postrender')
- },
- getHtmlTpl: function () {
- return ''
- },
- formatHtml: function (a) {
- var b = 'edui-' + this.uiName
- return a
- .replace(/##/g, this.id)
- .replace(/%%-/g, this.uiName ? b + '-' : '')
- .replace(/%%/g, (this.uiName ? b : '') + ' ' + this.className)
- .replace(/\$\$/g, this._globalKey)
- },
- renderHtml: function () {
- return this.formatHtml(this.getHtmlTpl())
- },
- dispose: function () {
- var a = this.getDom()
- a && baidu.editor.dom.domUtils.remove(a), b.unsetGlobal(this.id)
- }
- }),
- a.inherits(d, c)
- })(),
- (function () {
- var a = baidu.editor.utils,
- b = baidu.editor.ui.UIBase,
- c = (baidu.editor.ui.Separator = function (a) {
- this.initOptions(a), this.initSeparator()
- })
- ;(c.prototype = {
- uiName: 'separator',
- initSeparator: function () {
- this.initUIBase()
- },
- getHtmlTpl: function () {
- return '<div id="##" class="edui-box %%"></div>'
- }
- }),
- a.inherits(c, b)
- })(),
- (function () {
- var a = baidu.editor.utils,
- b = baidu.editor.dom.domUtils,
- c = baidu.editor.ui.UIBase,
- d = baidu.editor.ui.uiUtils,
- e = (baidu.editor.ui.Mask = function (a) {
- this.initOptions(a), this.initUIBase()
- })
- ;(e.prototype = {
- getHtmlTpl: function () {
- return '<div id="##" class="edui-mask %%" onclick="return $$._onClick(event, this);" onmousedown="return $$._onMouseDown(event, this);"></div>'
- },
- postRender: function () {
- var a = this
- b.on(window, 'resize', function () {
- setTimeout(function () {
- a.isHidden() || a._fill()
- })
- })
- },
- show: function (a) {
- this._fill(),
- (this.getDom().style.display = ''),
- (this.getDom().style.zIndex = a)
- },
- hide: function () {
- ;(this.getDom().style.display = 'none'),
- (this.getDom().style.zIndex = '')
- },
- isHidden: function () {
- return 'none' == this.getDom().style.display
- },
- _onMouseDown: function () {
- return !1
- },
- _onClick: function (a, b) {
- this.fireEvent('click', a, b)
- },
- _fill: function () {
- var a = this.getDom(),
- b = d.getViewportRect()
- ;(a.style.width = b.width + 'px'), (a.style.height = b.height + 'px')
- }
- }),
- a.inherits(e, c)
- })(),
- (function () {
- function a(a, b) {
- for (var c = 0; c < g.length; c++) {
- var d = g[c]
- if (!d.isHidden() && d.queryAutoHide(b) !== !1) {
- if (
- a &&
- /scroll/gi.test(a.type) &&
- 'edui-wordpastepop' == d.className
- )
- return
- d.hide()
- }
- }
- g.length && d.editor.fireEvent('afterhidepop')
- }
- var b = baidu.editor.utils,
- c = baidu.editor.ui.uiUtils,
- d = baidu.editor.dom.domUtils,
- e = baidu.editor.ui.UIBase,
- f = (baidu.editor.ui.Popup = function (a) {
- this.initOptions(a), this.initPopup()
- }),
- g = []
- f.postHide = a
- var h = [
- 'edui-anchor-topleft',
- 'edui-anchor-topright',
- 'edui-anchor-bottomleft',
- 'edui-anchor-bottomright'
- ]
- ;(f.prototype = {
- SHADOW_RADIUS: 5,
- content: null,
- _hidden: !1,
- autoRender: !0,
- canSideLeft: !0,
- canSideUp: !0,
- initPopup: function () {
- this.initUIBase(), g.push(this)
- },
- getHtmlTpl: function () {
- return (
- '<div id="##" class="edui-popup %%" onmousedown="return false;"> <div id="##_body" class="edui-popup-body"> <iframe style="position:absolute;z-index:-1;left:0;top:0;background-color: transparent;" frameborder="0" width="100%" height="100%" src="about:blank"></iframe> <div class="edui-shadow"></div> <div id="##_content" class="edui-popup-content">' +
- this.getContentHtmlTpl() +
- ' </div> </div></div>'
- )
- },
- getContentHtmlTpl: function () {
- return this.content
- ? 'string' == typeof this.content
- ? this.content
- : this.content.renderHtml()
- : ''
- },
- _UIBase_postRender: e.prototype.postRender,
- postRender: function () {
- if (
- (this.content instanceof e && this.content.postRender(),
- this.captureWheel && !this.captured)
- ) {
- this.captured = !0
- var a =
- (document.documentElement.clientHeight ||
- document.body.clientHeight) - 80,
- b = this.getDom().offsetHeight,
- f = c.getClientRect(this.combox.getDom()).top,
- g = this.getDom('content'),
- h = this.getDom('body').getElementsByTagName('iframe'),
- i = this
- for (h.length && (h = h[0]); f + b > a; ) b -= 30
- ;(g.style.height = b + 'px'),
- h && (h.style.height = b + 'px'),
- window.XMLHttpRequest
- ? d.on(
- g,
- 'onmousewheel' in document.body
- ? 'mousewheel'
- : 'DOMMouseScroll',
- function (a) {
- a.preventDefault
- ? a.preventDefault()
- : (a.returnValue = !1),
- a.wheelDelta
- ? (g.scrollTop -= (a.wheelDelta / 120) * 60)
- : (g.scrollTop -= (a.detail / -3) * 60)
- }
- )
- : d.on(this.getDom(), 'mousewheel', function (a) {
- ;(a.returnValue = !1),
- (i.getDom('content').scrollTop -=
- (a.wheelDelta / 120) * 60)
- })
- }
- this.fireEvent('postRenderAfter'),
- this.hide(!0),
- this._UIBase_postRender()
- },
- _doAutoRender: function () {
- !this.getDom() && this.autoRender && this.render()
- },
- mesureSize: function () {
- var a = this.getDom('content')
- return c.getClientRect(a)
- },
- fitSize: function () {
- if (this.captureWheel && this.sized) return this.__size
- this.sized = !0
- var a = this.getDom('body')
- ;(a.style.width = ''), (a.style.height = '')
- var b = this.mesureSize()
- if (this.captureWheel) {
- a.style.width = -(-20 - b.width) + 'px'
- var c = parseInt(this.getDom('content').style.height, 10)
- !window.isNaN(c) && (b.height = c)
- } else a.style.width = b.width + 'px'
- return (
- (a.style.height = b.height + 'px'),
- (this.__size = b),
- this.captureWheel &&
- (this.getDom('content').style.overflow = 'auto'),
- b
- )
- },
- showAnchor: function (a, b) {
- this.showAnchorRect(c.getClientRect(a), b)
- },
- showAnchorRect: function (a, b, e) {
- this._doAutoRender()
- var f = c.getViewportRect()
- ;(this.getDom().style.visibility = 'hidden'), this._show()
- var g,
- i,
- j,
- k,
- l = this.fitSize()
- b
- ? ((g =
- this.canSideLeft &&
- a.right + l.width > f.right &&
- a.left > l.width),
- (i =
- this.canSideUp &&
- a.top + l.height > f.bottom &&
- a.bottom > l.height),
- (j = g ? a.left - l.width : a.right),
- (k = i ? a.bottom - l.height : a.top))
- : ((g =
- this.canSideLeft &&
- a.right + l.width > f.right &&
- a.left > l.width),
- (i =
- this.canSideUp &&
- a.top + l.height > f.bottom &&
- a.bottom > l.height),
- (j = g ? a.right - l.width : a.left),
- (k = i ? a.top - l.height : a.bottom))
- var m = this.getDom()
- c.setViewportOffset(m, { left: j, top: k }),
- d.removeClasses(m, h),
- (m.className += ' ' + h[2 * (i ? 1 : 0) + (g ? 1 : 0)]),
- this.editor &&
- ((m.style.zIndex = 1 * this.editor.container.style.zIndex + 10),
- (baidu.editor.ui.uiUtils.getFixedLayer().style.zIndex =
- m.style.zIndex - 1)),
- (this.getDom().style.visibility = 'visible')
- },
- showAt: function (a) {
- var b = a.left,
- c = a.top,
- d = { left: b, top: c, right: b, bottom: c, height: 0, width: 0 }
- this.showAnchorRect(d, !1, !0)
- },
- _show: function () {
- if (this._hidden) {
- var a = this.getDom()
- ;(a.style.display = ''), (this._hidden = !1), this.fireEvent('show')
- }
- },
- isHidden: function () {
- return this._hidden
- },
- show: function () {
- this._doAutoRender(), this._show()
- },
- hide: function (a) {
- !this._hidden &&
- this.getDom() &&
- ((this.getDom().style.display = 'none'),
- (this._hidden = !0),
- a || this.fireEvent('hide'))
- },
- queryAutoHide: function (a) {
- return !a || !c.contains(this.getDom(), a)
- }
- }),
- b.inherits(f, e),
- d.on(document, 'mousedown', function (b) {
- var c = b.target || b.srcElement
- a(b, c)
- }),
- d.on(window, 'scroll', function (b, c) {
- a(b, c)
- })
- })(),
- (function () {
- function a(a, b) {
- for (
- var c =
- '<div id="##" class="edui-colorpicker %%"><div class="edui-colorpicker-topbar edui-clearfix"><div unselectable="on" id="##_preview" class="edui-colorpicker-preview"></div><div unselectable="on" class="edui-colorpicker-nocolor" onclick="$$._onPickNoColor(event, this);">' +
- a +
- '</div></div><table class="edui-box" style="border-collapse: collapse;" onmouseover="$$._onTableOver(event, this);" onmouseout="$$._onTableOut(event, this);" onclick="return $$._onTableClick(event, this);" cellspacing="0" cellpadding="0"><tr style="border-bottom: 1px solid #ddd;font-size: 13px;line-height: 25px;color:#39C;padding-top: 2px"><td colspan="10">' +
- b.getLang('themeColor') +
- '</td> </tr><tr class="edui-colorpicker-tablefirstrow" >',
- d = 0;
- d < e.length;
- d++
- )
- d &&
- d % 10 === 0 &&
- (c +=
- '</tr>' +
- (60 == d
- ? '<tr style="border-bottom: 1px solid #ddd;font-size: 13px;line-height: 25px;color:#39C;"><td colspan="10">' +
- b.getLang('standardColor') +
- '</td></tr>'
- : '') +
- '<tr' +
- (60 == d ? ' class="edui-colorpicker-tablefirstrow"' : '') +
- '>'),
- (c +=
- d < 70
- ? '<td style="padding: 0 2px;"><a hidefocus title="' +
- e[d] +
- '" onclick="return false;" href="javascript:" unselectable="on" class="edui-box edui-colorpicker-colorcell" data-color="#' +
- e[d] +
- '" style="background-color:#' +
- e[d] +
- ';border:solid #ccc;' +
- (d < 10 || d >= 60
- ? 'border-width:1px;'
- : d >= 10 && d < 20
- ? 'border-width:1px 1px 0 1px;'
- : 'border-width:0 1px 0 1px;') +
- '"></a></td>'
- : '')
- return (c += '</tr></table></div>')
- }
- var b = baidu.editor.utils,
- c = baidu.editor.ui.UIBase,
- d = (baidu.editor.ui.ColorPicker = function (a) {
- this.initOptions(a),
- (this.noColorText =
- this.noColorText || this.editor.getLang('clearColor')),
- this.initUIBase()
- })
- ;(d.prototype = {
- getHtmlTpl: function () {
- return a(this.noColorText, this.editor)
- },
- _onTableClick: function (a) {
- var b = a.target || a.srcElement,
- c = b.getAttribute('data-color')
- c && this.fireEvent('pickcolor', c)
- },
- _onTableOver: function (a) {
- var b = a.target || a.srcElement,
- c = b.getAttribute('data-color')
- c && (this.getDom('preview').style.backgroundColor = c)
- },
- _onTableOut: function () {
- this.getDom('preview').style.backgroundColor = ''
- },
- _onPickNoColor: function () {
- this.fireEvent('picknocolor')
- }
- }),
- b.inherits(d, c)
- var e =
- 'ffffff,000000,eeece1,1f497d,4f81bd,c0504d,9bbb59,8064a2,4bacc6,f79646,f2f2f2,7f7f7f,ddd9c3,c6d9f0,dbe5f1,f2dcdb,ebf1dd,e5e0ec,dbeef3,fdeada,d8d8d8,595959,c4bd97,8db3e2,b8cce4,e5b9b7,d7e3bc,ccc1d9,b7dde8,fbd5b5,bfbfbf,3f3f3f,938953,548dd4,95b3d7,d99694,c3d69b,b2a2c7,92cddc,fac08f,a5a5a5,262626,494429,17365d,366092,953734,76923c,5f497a,31859b,e36c09,7f7f7f,0c0c0c,1d1b10,0f243e,244061,632423,4f6128,3f3151,205867,974806,c00000,ff0000,ffc000,ffff00,92d050,00b050,00b0f0,0070c0,002060,7030a0,'.split(
- ','
- )
- })(),
- (function () {
- var a = baidu.editor.utils,
- b = baidu.editor.ui.uiUtils,
- c = baidu.editor.ui.UIBase,
- d = (baidu.editor.ui.TablePicker = function (a) {
- this.initOptions(a), this.initTablePicker()
- })
- ;(d.prototype = {
- defaultNumRows: 10,
- defaultNumCols: 10,
- maxNumRows: 20,
- maxNumCols: 20,
- numRows: 10,
- numCols: 10,
- lengthOfCellSide: 22,
- initTablePicker: function () {
- this.initUIBase()
- },
- getHtmlTpl: function () {
- return '<div id="##" class="edui-tablepicker %%"><div class="edui-tablepicker-body"><div class="edui-infoarea"><span id="##_label" class="edui-label"></span></div><div class="edui-pickarea" onmousemove="$$._onMouseMove(event, this);" onmouseover="$$._onMouseOver(event, this);" onmouseout="$$._onMouseOut(event, this);" onclick="$$._onClick(event, this);"><div id="##_overlay" class="edui-overlay"></div></div></div></div>'
- },
- _UIBase_render: c.prototype.render,
- render: function (a) {
- this._UIBase_render(a),
- (this.getDom('label').innerHTML =
- '0' +
- this.editor.getLang('t_row') +
- ' x 0' +
- this.editor.getLang('t_col'))
- },
- _track: function (a, b) {
- var c = this.getDom('overlay').style,
- d = this.lengthOfCellSide
- ;(c.width = a * d + 'px'), (c.height = b * d + 'px')
- var e = this.getDom('label')
- ;(e.innerHTML =
- a +
- this.editor.getLang('t_col') +
- ' x ' +
- b +
- this.editor.getLang('t_row')),
- (this.numCols = a),
- (this.numRows = b)
- },
- _onMouseOver: function (a, c) {
- var d = a.relatedTarget || a.fromElement
- b.contains(c, d) ||
- c === d ||
- ((this.getDom('label').innerHTML =
- '0' +
- this.editor.getLang('t_col') +
- ' x 0' +
- this.editor.getLang('t_row')),
- (this.getDom('overlay').style.visibility = ''))
- },
- _onMouseOut: function (a, c) {
- var d = a.relatedTarget || a.toElement
- b.contains(c, d) ||
- c === d ||
- ((this.getDom('label').innerHTML =
- '0' +
- this.editor.getLang('t_col') +
- ' x 0' +
- this.editor.getLang('t_row')),
- (this.getDom('overlay').style.visibility = 'hidden'))
- },
- _onMouseMove: function (a, c) {
- var d = (this.getDom('overlay').style, b.getEventOffset(a)),
- e = this.lengthOfCellSide,
- f = Math.ceil(d.left / e),
- g = Math.ceil(d.top / e)
- this._track(f, g)
- },
- _onClick: function () {
- this.fireEvent('picktable', this.numCols, this.numRows)
- }
- }),
- a.inherits(d, c)
- })(),
- (function () {
- var a = baidu.editor.browser,
- b = baidu.editor.dom.domUtils,
- c = baidu.editor.ui.uiUtils,
- d =
- 'onmousedown="$$.Stateful_onMouseDown(event, this);" onmouseup="$$.Stateful_onMouseUp(event, this);"' +
- (a.ie
- ? ' onmouseenter="$$.Stateful_onMouseEnter(event, this);" onmouseleave="$$.Stateful_onMouseLeave(event, this);"'
- : ' onmouseover="$$.Stateful_onMouseOver(event, this);" onmouseout="$$.Stateful_onMouseOut(event, this);"')
- baidu.editor.ui.Stateful = {
- alwalysHoverable: !1,
- target: null,
- Stateful_init: function () {
- ;(this._Stateful_dGetHtmlTpl = this.getHtmlTpl),
- (this.getHtmlTpl = this.Stateful_getHtmlTpl)
- },
- Stateful_getHtmlTpl: function () {
- var a = this._Stateful_dGetHtmlTpl()
- return a.replace(/stateful/g, function () {
- return d
- })
- },
- Stateful_onMouseEnter: function (a, b) {
- ;(this.target = b),
- (this.isDisabled() && !this.alwalysHoverable) ||
- (this.addState('hover'), this.fireEvent('over'))
- },
- Stateful_onMouseLeave: function (a, b) {
- ;(this.isDisabled() && !this.alwalysHoverable) ||
- (this.removeState('hover'),
- this.removeState('active'),
- this.fireEvent('out'))
- },
- Stateful_onMouseOver: function (a, b) {
- var d = a.relatedTarget
- c.contains(b, d) || b === d || this.Stateful_onMouseEnter(a, b)
- },
- Stateful_onMouseOut: function (a, b) {
- var d = a.relatedTarget
- c.contains(b, d) || b === d || this.Stateful_onMouseLeave(a, b)
- },
- Stateful_onMouseDown: function (a, b) {
- this.isDisabled() || this.addState('active')
- },
- Stateful_onMouseUp: function (a, b) {
- this.isDisabled() || this.removeState('active')
- },
- Stateful_postRender: function () {
- this.disabled &&
- !this.hasState('disabled') &&
- this.addState('disabled')
- },
- hasState: function (a) {
- return b.hasClass(this.getStateDom(), 'edui-state-' + a)
- },
- addState: function (a) {
- this.hasState(a) ||
- (this.getStateDom().className += ' edui-state-' + a)
- },
- removeState: function (a) {
- this.hasState(a) &&
- b.removeClasses(this.getStateDom(), ['edui-state-' + a])
- },
- getStateDom: function () {
- return this.getDom('state')
- },
- isChecked: function () {
- return this.hasState('checked')
- },
- setChecked: function (a) {
- !this.isDisabled() && a
- ? this.addState('checked')
- : this.removeState('checked')
- },
- isDisabled: function () {
- return this.hasState('disabled')
- },
- setDisabled: function (a) {
- a
- ? (this.removeState('hover'),
- this.removeState('checked'),
- this.removeState('active'),
- this.addState('disabled'))
- : this.removeState('disabled')
- }
- }
- })(),
- (function () {
- var a = baidu.editor.utils,
- b = baidu.editor.ui.UIBase,
- c = baidu.editor.ui.Stateful,
- d = (baidu.editor.ui.Button = function (a) {
- if (a.name) {
- var b = a.name,
- c = a.cssRules
- a.className || (a.className = 'edui-for-' + b),
- (a.cssRules =
- '.edui-default .edui-for-' + b + ' .edui-icon {' + c + '}')
- }
- this.initOptions(a), this.initButton()
- })
- ;(d.prototype = {
- uiName: 'button',
- label: '',
- title: '',
- showIcon: !0,
- showText: !0,
- cssRules: '',
- initButton: function () {
- this.initUIBase(),
- this.Stateful_init(),
- this.cssRules &&
- a.cssRule('edui-customize-' + this.name + '-style', this.cssRules)
- },
- getHtmlTpl: function () {
- return (
- '<div id="##" class="edui-box %%"><div id="##_state" stateful><div class="%%-wrap"><div id="##_body" unselectable="on" ' +
- (this.title ? 'title="' + this.title + '"' : '') +
- ' class="%%-body" onmousedown="return $$._onMouseDown(event, this);" onclick="return $$._onClick(event, this);">' +
- (this.showIcon ? '<div class="edui-box edui-icon"></div>' : '') +
- (this.showText
- ? '<div class="edui-box edui-label">' + this.label + '</div>'
- : '') +
- '</div></div></div></div>'
- )
- },
- postRender: function () {
- this.Stateful_postRender(), this.setDisabled(this.disabled)
- },
- _onMouseDown: function (a) {
- var b = a.target || a.srcElement,
- c = b && b.tagName && b.tagName.toLowerCase()
- if ('input' == c || 'object' == c || 'object' == c) return !1
- },
- _onClick: function () {
- this.isDisabled() || this.fireEvent('click')
- },
- setTitle: function (a) {
- var b = this.getDom('label')
- b.innerHTML = a
- }
- }),
- a.inherits(d, b),
- a.extend(d.prototype, c)
- })(),
- (function () {
- var a = baidu.editor.utils,
- b = baidu.editor.ui.uiUtils,
- c = (baidu.editor.dom.domUtils, baidu.editor.ui.UIBase),
- d = baidu.editor.ui.Stateful,
- e = (baidu.editor.ui.SplitButton = function (a) {
- this.initOptions(a), this.initSplitButton()
- })
- ;(e.prototype = {
- popup: null,
- uiName: 'splitbutton',
- title: '',
- initSplitButton: function () {
- this.initUIBase(), this.Stateful_init()
- if (null != this.popup) {
- var a = this.popup
- ;(this.popup = null), this.setPopup(a)
- }
- },
- _UIBase_postRender: c.prototype.postRender,
- postRender: function () {
- this.Stateful_postRender(), this._UIBase_postRender()
- },
- setPopup: function (c) {
- this.popup !== c &&
- (null != this.popup && this.popup.dispose(),
- c.addListener('show', a.bind(this._onPopupShow, this)),
- c.addListener('hide', a.bind(this._onPopupHide, this)),
- c.addListener(
- 'postrender',
- a.bind(function () {
- c
- .getDom('body')
- .appendChild(
- b.createElementByHtml(
- '<div id="' +
- this.popup.id +
- '_bordereraser" class="edui-bordereraser edui-background" style="width:' +
- (b.getClientRect(this.getDom()).width + 20) +
- 'px"></div>'
- )
- ),
- (c.getDom().className += ' ' + this.className)
- }, this)
- ),
- (this.popup = c))
- },
- _onPopupShow: function () {
- this.addState('opened')
- },
- _onPopupHide: function () {
- this.removeState('opened')
- },
- getHtmlTpl: function () {
- return (
- '<div id="##" class="edui-box %%"><div ' +
- (this.title ? 'title="' + this.title + '"' : '') +
- ' id="##_state" stateful><div class="%%-body"><div id="##_button_body" class="edui-box edui-button-body" onclick="$$._onButtonClick(event, this);"><div class="edui-box edui-icon"></div></div><div class="edui-box edui-splitborder"></div><div class="edui-box edui-arrow" onclick="$$._onArrowClick();"></div></div></div></div>'
- )
- },
- showPopup: function () {
- var a = b.getClientRect(this.getDom())
- ;(a.top -= this.popup.SHADOW_RADIUS),
- (a.height += this.popup.SHADOW_RADIUS),
- this.popup.showAnchorRect(a)
- },
- _onArrowClick: function (a, b) {
- this.isDisabled() || this.showPopup()
- },
- _onButtonClick: function () {
- this.isDisabled() || this.fireEvent('buttonclick')
- }
- }),
- a.inherits(e, c),
- a.extend(e.prototype, d, !0)
- })(),
- (function () {
- var a = baidu.editor.utils,
- b = baidu.editor.ui.uiUtils,
- c = baidu.editor.ui.ColorPicker,
- d = baidu.editor.ui.Popup,
- e = baidu.editor.ui.SplitButton,
- f = (baidu.editor.ui.ColorButton = function (a) {
- this.initOptions(a), this.initColorButton()
- })
- ;(f.prototype = {
- initColorButton: function () {
- var a = this
- ;(this.popup = new d({
- content: new c({
- noColorText: a.editor.getLang('clearColor'),
- editor: a.editor,
- onpickcolor: function (b, c) {
- a._onPickColor(c)
- },
- onpicknocolor: function (b, c) {
- a._onPickNoColor(c)
- }
- }),
- editor: a.editor
- })),
- this.initSplitButton()
- },
- _SplitButton_postRender: e.prototype.postRender,
- postRender: function () {
- this._SplitButton_postRender(),
- this.getDom('button_body').appendChild(
- b.createElementByHtml(
- '<div id="' +
- this.id +
- '_colorlump" class="edui-colorlump"></div>'
- )
- ),
- (this.getDom().className += ' edui-colorbutton')
- },
- setColor: function (a) {
- ;(this.getDom('colorlump').style.backgroundColor = a),
- (this.color = a)
- },
- _onPickColor: function (a) {
- this.fireEvent('pickcolor', a) !== !1 &&
- (this.setColor(a), this.popup.hide())
- },
- _onPickNoColor: function (a) {
- this.fireEvent('picknocolor') !== !1 && this.popup.hide()
- }
- }),
- a.inherits(f, e)
- })(),
- (function () {
- var a = baidu.editor.utils,
- b = baidu.editor.ui.Popup,
- c = baidu.editor.ui.TablePicker,
- d = baidu.editor.ui.SplitButton,
- e = (baidu.editor.ui.TableButton = function (a) {
- this.initOptions(a), this.initTableButton()
- })
- ;(e.prototype = {
- initTableButton: function () {
- var a = this
- ;(this.popup = new b({
- content: new c({
- editor: a.editor,
- onpicktable: function (b, c, d) {
- a._onPickTable(c, d)
- }
- }),
- editor: a.editor
- })),
- this.initSplitButton()
- },
- _onPickTable: function (a, b) {
- this.fireEvent('picktable', a, b) !== !1 && this.popup.hide()
- }
- }),
- a.inherits(e, d)
- })(),
- (function () {
- var a = baidu.editor.utils,
- b = baidu.editor.ui.UIBase,
- c = (baidu.editor.ui.AutoTypeSetPicker = function (a) {
- this.initOptions(a), this.initAutoTypeSetPicker()
- })
- ;(c.prototype = {
- initAutoTypeSetPicker: function () {
- this.initUIBase()
- },
- getHtmlTpl: function () {
- var a = this.editor,
- b = a.options.autotypeset,
- c = a.getLang('autoTypeSet'),
- d = 'textAlignValue' + a.uid,
- e = 'imageBlockLineValue' + a.uid,
- f = 'symbolConverValue' + a.uid
- return (
- '<div id="##" class="edui-autotypesetpicker %%"><div class="edui-autotypesetpicker-body"><table ><tr><td nowrap><input type="checkbox" name="mergeEmptyline" ' +
- (b.mergeEmptyline ? 'checked' : '') +
- '>' +
- c.mergeLine +
- '</td><td colspan="2"><input type="checkbox" name="removeEmptyline" ' +
- (b.removeEmptyline ? 'checked' : '') +
- '>' +
- c.delLine +
- '</td></tr><tr><td nowrap><input type="checkbox" name="removeClass" ' +
- (b.removeClass ? 'checked' : '') +
- '>' +
- c.removeFormat +
- '</td><td colspan="2"><input type="checkbox" name="indent" ' +
- (b.indent ? 'checked' : '') +
- '>' +
- c.indent +
- '</td></tr><tr><td nowrap><input type="checkbox" name="textAlign" ' +
- (b.textAlign ? 'checked' : '') +
- '>' +
- c.alignment +
- '</td><td colspan="2" id="' +
- d +
- '"><input type="radio" name="' +
- d +
- '" value="left" ' +
- (b.textAlign && 'left' == b.textAlign ? 'checked' : '') +
- '>' +
- a.getLang('justifyleft') +
- '<input type="radio" name="' +
- d +
- '" value="center" ' +
- (b.textAlign && 'center' == b.textAlign ? 'checked' : '') +
- '>' +
- a.getLang('justifycenter') +
- '<input type="radio" name="' +
- d +
- '" value="right" ' +
- (b.textAlign && 'right' == b.textAlign ? 'checked' : '') +
- '>' +
- a.getLang('justifyright') +
- '</td></tr><tr><td nowrap><input type="checkbox" name="imageBlockLine" ' +
- (b.imageBlockLine ? 'checked' : '') +
- '>' +
- c.imageFloat +
- '</td><td nowrap id="' +
- e +
- '"><input type="radio" name="' +
- e +
- '" value="none" ' +
- (b.imageBlockLine && 'none' == b.imageBlockLine ? 'checked' : '') +
- '>' +
- a.getLang('default') +
- '<input type="radio" name="' +
- e +
- '" value="left" ' +
- (b.imageBlockLine && 'left' == b.imageBlockLine ? 'checked' : '') +
- '>' +
- a.getLang('justifyleft') +
- '<input type="radio" name="' +
- e +
- '" value="center" ' +
- (b.imageBlockLine && 'center' == b.imageBlockLine
- ? 'checked'
- : '') +
- '>' +
- a.getLang('justifycenter') +
- '<input type="radio" name="' +
- e +
- '" value="right" ' +
- (b.imageBlockLine && 'right' == b.imageBlockLine ? 'checked' : '') +
- '>' +
- a.getLang('justifyright') +
- '</td></tr><tr><td nowrap><input type="checkbox" name="clearFontSize" ' +
- (b.clearFontSize ? 'checked' : '') +
- '>' +
- c.removeFontsize +
- '</td><td colspan="2"><input type="checkbox" name="clearFontFamily" ' +
- (b.clearFontFamily ? 'checked' : '') +
- '>' +
- c.removeFontFamily +
- '</td></tr><tr><td nowrap colspan="3"><input type="checkbox" name="removeEmptyNode" ' +
- (b.removeEmptyNode ? 'checked' : '') +
- '>' +
- c.removeHtml +
- '</td></tr><tr><td nowrap colspan="3"><input type="checkbox" name="pasteFilter" ' +
- (b.pasteFilter ? 'checked' : '') +
- '>' +
- c.pasteFilter +
- '</td></tr><tr><td nowrap><input type="checkbox" name="symbolConver" ' +
- (b.bdc2sb || b.tobdc ? 'checked' : '') +
- '>' +
- c.symbol +
- '</td><td id="' +
- f +
- '"><input type="radio" name="bdc" value="bdc2sb" ' +
- (b.bdc2sb ? 'checked' : '') +
- '>' +
- c.bdc2sb +
- '<input type="radio" name="bdc" value="tobdc" ' +
- (b.tobdc ? 'checked' : '') +
- '>' +
- c.tobdc +
- '</td><td nowrap align="right"><button >' +
- c.run +
- '</button></td></tr></table></div></div>'
- )
- },
- _UIBase_render: b.prototype.render
- }),
- a.inherits(c, b)
- })(),
- (function () {
- function a(a) {
- for (
- var c,
- d = {},
- e = a.getDom(),
- f = a.editor.uid,
- g = null,
- h = null,
- i = domUtils.getElementsByTagName(e, 'input'),
- j = i.length - 1;
- (c = i[j--]);
- )
- if (((g = c.getAttribute('type')), 'checkbox' == g))
- if (
- ((h = c.getAttribute('name')), d[h] && delete d[h], c.checked)
- ) {
- var k = document.getElementById(h + 'Value' + f)
- if (k) {
- if (/input/gi.test(k.tagName)) d[h] = k.value
- else
- for (
- var l,
- m = k.getElementsByTagName('input'),
- n = m.length - 1;
- (l = m[n--]);
- )
- if (l.checked) {
- d[h] = l.value
- break
- }
- } else d[h] = !0
- } else d[h] = !1
- else d[c.getAttribute('value')] = c.checked
- for (
- var o, p = domUtils.getElementsByTagName(e, 'select'), j = 0;
- (o = p[j++]);
- ) {
- var q = o.getAttribute('name')
- d[q] = d[q] ? o.value : ''
- }
- b.extend(a.editor.options.autotypeset, d),
- a.editor.setPreferences('autotypeset', d)
- }
- var b = baidu.editor.utils,
- c = baidu.editor.ui.Popup,
- d = baidu.editor.ui.AutoTypeSetPicker,
- e = baidu.editor.ui.SplitButton,
- f = (baidu.editor.ui.AutoTypeSetButton = function (a) {
- this.initOptions(a), this.initAutoTypeSetButton()
- })
- ;(f.prototype = {
- initAutoTypeSetButton: function () {
- var b = this
- this.popup = new c({
- content: new d({ editor: b.editor }),
- editor: b.editor,
- hide: function () {
- !this._hidden &&
- this.getDom() &&
- (a(this),
- (this.getDom().style.display = 'none'),
- (this._hidden = !0),
- this.fireEvent('hide'))
- }
- })
- var e = 0
- this.popup.addListener('postRenderAfter', function () {
- var c = this
- if (!e) {
- var d = this.getDom(),
- f = d.getElementsByTagName('button')[0]
- ;(f.onclick = function () {
- a(c), b.editor.execCommand('autotypeset'), c.hide()
- }),
- domUtils.on(d, 'click', function (d) {
- var e = d.target || d.srcElement,
- f = b.editor.uid
- if (e && 'INPUT' == e.tagName) {
- if (
- 'imageBlockLine' == e.name ||
- 'textAlign' == e.name ||
- 'symbolConver' == e.name
- )
- for (
- var g = e.checked,
- h = document.getElementById(e.name + 'Value' + f),
- i = h.getElementsByTagName('input'),
- j = {
- imageBlockLine: 'none',
- textAlign: 'left',
- symbolConver: 'tobdc'
- },
- k = 0;
- k < i.length;
- k++
- )
- g
- ? i[k].value == j[e.name] &&
- (i[k].checked = 'checked')
- : (i[k].checked = !1)
- if (
- e.name == 'imageBlockLineValue' + f ||
- e.name == 'textAlignValue' + f ||
- 'bdc' == e.name
- ) {
- var l =
- e.parentNode.previousSibling.getElementsByTagName(
- 'input'
- )
- l && (l[0].checked = !0)
- }
- a(c)
- }
- }),
- (e = 1)
- }
- }),
- this.initSplitButton()
- }
- }),
- b.inherits(f, e)
- })(),
- (function () {
- var a = baidu.editor.utils,
- b = baidu.editor.ui.Popup,
- c = baidu.editor.ui.Stateful,
- d = baidu.editor.ui.UIBase,
- e = (baidu.editor.ui.CellAlignPicker = function (a) {
- this.initOptions(a), this.initSelected(), this.initCellAlignPicker()
- })
- ;(e.prototype = {
- initSelected: function () {
- var a = {
- valign: { top: 0, middle: 1, bottom: 2 },
- align: { left: 0, center: 1, right: 2 },
- count: 3
- }
- this.selected &&
- (this.selectedIndex =
- a.valign[this.selected.valign] * a.count +
- a.align[this.selected.align])
- },
- initCellAlignPicker: function () {
- this.initUIBase(), this.Stateful_init()
- },
- getHtmlTpl: function () {
- for (
- var a = ['left', 'center', 'right'],
- b = 9,
- c = null,
- d = -1,
- e = [],
- f = 0;
- f < b;
- f++
- )
- (c =
- this.selectedIndex === f
- ? ' class="edui-cellalign-selected" '
- : ''),
- (d = f % 3),
- 0 === d && e.push('<tr>'),
- e.push(
- '<td index="' +
- f +
- '" ' +
- c +
- ' stateful><div class="edui-icon edui-' +
- a[d] +
- '"></div></td>'
- ),
- 2 === d && e.push('</tr>')
- return (
- '<div id="##" class="edui-cellalignpicker %%"><div class="edui-cellalignpicker-body"><table onclick="$$._onClick(event);">' +
- e.join('') +
- '</table></div></div>'
- )
- },
- getStateDom: function () {
- return this.target
- },
- _onClick: function (a) {
- var c = a.target || a.srcElement
- ;/icon/.test(c.className) &&
- (this.items[c.parentNode.getAttribute('index')].onclick(),
- b.postHide(a))
- },
- _UIBase_render: d.prototype.render
- }),
- a.inherits(e, d),
- a.extend(e.prototype, c, !0)
- })(),
- (function () {
- var a = baidu.editor.utils,
- b = baidu.editor.ui.Stateful,
- c = baidu.editor.ui.uiUtils,
- d = baidu.editor.ui.UIBase,
- e = (baidu.editor.ui.PastePicker = function (a) {
- this.initOptions(a), this.initPastePicker()
- })
- ;(e.prototype = {
- initPastePicker: function () {
- this.initUIBase(), this.Stateful_init()
- },
- getHtmlTpl: function () {
- return (
- '<div class="edui-pasteicon" onclick="$$._onClick(this)"></div><div class="edui-pastecontainer"><div class="edui-title">' +
- this.editor.getLang('pasteOpt') +
- '</div><div class="edui-button"><div title="' +
- this.editor.getLang('pasteSourceFormat') +
- '" onclick="$$.format(false)" stateful><div class="edui-richtxticon"></div></div><div title="' +
- this.editor.getLang('tagFormat') +
- '" onclick="$$.format(2)" stateful><div class="edui-tagicon"></div></div><div title="' +
- this.editor.getLang('pasteTextFormat') +
- '" onclick="$$.format(true)" stateful><div class="edui-plaintxticon"></div></div></div></div></div>'
- )
- },
- getStateDom: function () {
- return this.target
- },
- format: function (a) {
- ;(this.editor.ui._isTransfer = !0),
- this.editor.fireEvent('pasteTransfer', a)
- },
- _onClick: function (a) {
- var b = domUtils.getNextDomNode(a),
- d = c.getViewportRect().height,
- e = c.getClientRect(b)
- e.top + e.height > d
- ? (b.style.top = -e.height - a.offsetHeight + 'px')
- : (b.style.top = ''),
- /hidden/gi.test(domUtils.getComputedStyle(b, 'visibility'))
- ? ((b.style.visibility = 'visible'),
- domUtils.addClass(a, 'edui-state-opened'))
- : ((b.style.visibility = 'hidden'),
- domUtils.removeClasses(a, 'edui-state-opened'))
- },
- _UIBase_render: d.prototype.render
- }),
- a.inherits(e, d),
- a.extend(e.prototype, b, !0)
- })(),
- (function () {
- var a = baidu.editor.utils,
- b = baidu.editor.ui.uiUtils,
- c = baidu.editor.ui.UIBase,
- d = (baidu.editor.ui.Toolbar = function (a) {
- this.initOptions(a), this.initToolbar()
- })
- ;(d.prototype = {
- items: null,
- initToolbar: function () {
- ;(this.items = this.items || []), this.initUIBase()
- },
- add: function (a, b) {
- void 0 === b ? this.items.push(a) : this.items.splice(b, 0, a)
- },
- getHtmlTpl: function () {
- for (var a = [], b = 0; b < this.items.length; b++)
- a[b] = this.items[b].renderHtml()
- return (
- '<div id="##" class="edui-toolbar %%" onselectstart="return false;" onmousedown="return $$._onMouseDown(event, this);">' +
- a.join('') +
- '</div>'
- )
- },
- postRender: function () {
- for (var a = this.getDom(), c = 0; c < this.items.length; c++)
- this.items[c].postRender()
- b.makeUnselectable(a)
- },
- _onMouseDown: function (a) {
- var b = a.target || a.srcElement,
- c = b && b.tagName && b.tagName.toLowerCase()
- if ('input' == c || 'object' == c || 'object' == c) return !1
- }
- }),
- a.inherits(d, c)
- })(),
- (function () {
- var a = baidu.editor.utils,
- b = baidu.editor.dom.domUtils,
- c = baidu.editor.ui.uiUtils,
- d = baidu.editor.ui.UIBase,
- e = baidu.editor.ui.Popup,
- f = baidu.editor.ui.Stateful,
- g = baidu.editor.ui.CellAlignPicker,
- h = (baidu.editor.ui.Menu = function (a) {
- this.initOptions(a), this.initMenu()
- }),
- i = {
- renderHtml: function () {
- return '<div class="edui-menuitem edui-menuseparator"><div class="edui-menuseparator-inner"></div></div>'
- },
- postRender: function () {},
- queryAutoHide: function () {
- return !0
- }
- }
- ;(h.prototype = {
- items: null,
- uiName: 'menu',
- initMenu: function () {
- ;(this.items = this.items || []), this.initPopup(), this.initItems()
- },
- initItems: function () {
- for (var a = 0; a < this.items.length; a++) {
- var b = this.items[a]
- '-' == b
- ? (this.items[a] = this.getSeparator())
- : b instanceof j ||
- ((b.editor = this.editor),
- (b.theme = this.editor.options.theme),
- (this.items[a] = this.createItem(b)))
- }
- },
- getSeparator: function () {
- return i
- },
- createItem: function (a) {
- return (a.menu = this), new j(a)
- },
- _Popup_getContentHtmlTpl: e.prototype.getContentHtmlTpl,
- getContentHtmlTpl: function () {
- if (0 == this.items.length) return this._Popup_getContentHtmlTpl()
- for (var a = [], b = 0; b < this.items.length; b++) {
- var c = this.items[b]
- a[b] = c.renderHtml()
- }
- return '<div class="%%-body">' + a.join('') + '</div>'
- },
- _Popup_postRender: e.prototype.postRender,
- postRender: function () {
- for (var a = this, d = 0; d < this.items.length; d++) {
- var e = this.items[d]
- ;(e.ownerMenu = this), e.postRender()
- }
- b.on(this.getDom(), 'mouseover', function (b) {
- b = b || event
- var d = b.relatedTarget || b.fromElement,
- e = a.getDom()
- c.contains(e, d) || e === d || a.fireEvent('over')
- }),
- this._Popup_postRender()
- },
- queryAutoHide: function (a) {
- if (a) {
- if (c.contains(this.getDom(), a)) return !1
- for (var b = 0; b < this.items.length; b++) {
- var d = this.items[b]
- if (d.queryAutoHide(a) === !1) return !1
- }
- }
- },
- clearItems: function () {
- for (var a = 0; a < this.items.length; a++) {
- var b = this.items[a]
- clearTimeout(b._showingTimer),
- clearTimeout(b._closingTimer),
- b.subMenu && b.subMenu.destroy()
- }
- this.items = []
- },
- destroy: function () {
- this.getDom() && b.remove(this.getDom()), this.clearItems()
- },
- dispose: function () {
- this.destroy()
- }
- }),
- a.inherits(h, e)
- var j = (baidu.editor.ui.MenuItem = function (a) {
- if (
- (this.initOptions(a),
- this.initUIBase(),
- this.Stateful_init(),
- this.subMenu && !(this.subMenu instanceof h))
- )
- if (a.className && a.className.indexOf('aligntd') != -1) {
- var c = this
- ;(this.subMenu.selected =
- this.editor.queryCommandValue('cellalignment')),
- (this.subMenu = new e({
- content: new g(this.subMenu),
- parentMenu: c,
- editor: c.editor,
- destroy: function () {
- this.getDom() && b.remove(this.getDom())
- }
- })),
- this.subMenu.addListener('postRenderAfter', function () {
- b.on(this.getDom(), 'mouseover', function () {
- c.addState('opened')
- })
- })
- } else this.subMenu = new h(this.subMenu)
- })
- ;(j.prototype = {
- label: '',
- subMenu: null,
- ownerMenu: null,
- uiName: 'menuitem',
- alwalysHoverable: !0,
- getHtmlTpl: function () {
- return (
- '<div id="##" class="%%" stateful onclick="$$._onClick(event, this);"><div class="%%-body">' +
- this.renderLabelHtml() +
- '</div></div>'
- )
- },
- postRender: function () {
- var a = this
- this.addListener('over', function () {
- a.ownerMenu.fireEvent('submenuover', a),
- a.subMenu && a.delayShowSubMenu()
- }),
- this.subMenu &&
- ((this.getDom().className += ' edui-hassubmenu'),
- this.subMenu.render(),
- this.addListener('out', function () {
- a.delayHideSubMenu()
- }),
- this.subMenu.addListener('over', function () {
- clearTimeout(a._closingTimer),
- (a._closingTimer = null),
- a.addState('opened')
- }),
- this.ownerMenu.addListener('hide', function () {
- a.hideSubMenu()
- }),
- this.ownerMenu.addListener('submenuover', function (b, c) {
- c !== a && a.delayHideSubMenu()
- }),
- (this.subMenu._bakQueryAutoHide = this.subMenu.queryAutoHide),
- (this.subMenu.queryAutoHide = function (b) {
- return (
- (!b || !c.contains(a.getDom(), b)) &&
- this._bakQueryAutoHide(b)
- )
- })),
- (this.getDom().style.tabIndex = '-1'),
- c.makeUnselectable(this.getDom()),
- this.Stateful_postRender()
- },
- delayShowSubMenu: function () {
- var a = this
- a.isDisabled() ||
- (a.addState('opened'),
- clearTimeout(a._showingTimer),
- clearTimeout(a._closingTimer),
- (a._closingTimer = null),
- (a._showingTimer = setTimeout(function () {
- a.showSubMenu()
- }, 250)))
- },
- delayHideSubMenu: function () {
- var a = this
- a.isDisabled() ||
- (a.removeState('opened'),
- clearTimeout(a._showingTimer),
- a._closingTimer ||
- (a._closingTimer = setTimeout(function () {
- a.hasState('opened') || a.hideSubMenu(),
- (a._closingTimer = null)
- }, 400)))
- },
- renderLabelHtml: function () {
- return (
- '<div class="edui-arrow"></div><div class="edui-box edui-icon"></div><div class="edui-box edui-label %%-label">' +
- (this.label || '') +
- '</div>'
- )
- },
- getStateDom: function () {
- return this.getDom()
- },
- queryAutoHide: function (a) {
- if (this.subMenu && this.hasState('opened'))
- return this.subMenu.queryAutoHide(a)
- },
- _onClick: function (a, b) {
- this.hasState('disabled') ||
- (this.fireEvent('click', a, b) !== !1 &&
- (this.subMenu ? this.showSubMenu() : e.postHide(a)))
- },
- showSubMenu: function () {
- var a = c.getClientRect(this.getDom())
- ;(a.right -= 5),
- (a.left += 2),
- (a.width -= 7),
- (a.top -= 4),
- (a.bottom += 4),
- (a.height += 8),
- this.subMenu.showAnchorRect(a, !0, !0)
- },
- hideSubMenu: function () {
- this.subMenu.hide()
- }
- }),
- a.inherits(j, d),
- a.extend(j.prototype, f, !0)
- })(),
- (function () {
- var a = baidu.editor.utils,
- b = baidu.editor.ui.uiUtils,
- c = baidu.editor.ui.Menu,
- d = baidu.editor.ui.SplitButton,
- e = (baidu.editor.ui.Combox = function (a) {
- this.initOptions(a), this.initCombox()
- })
- ;(e.prototype = {
- uiName: 'combox',
- onbuttonclick: function () {
- this.showPopup()
- },
- initCombox: function () {
- var a = this
- this.items = this.items || []
- for (var b = 0; b < this.items.length; b++) {
- var d = this.items[b]
- ;(d.uiName = 'listitem'),
- (d.index = b),
- (d.onclick = function () {
- a.selectByIndex(this.index)
- })
- }
- ;(this.popup = new c({
- items: this.items,
- uiName: 'list',
- editor: this.editor,
- captureWheel: !0,
- combox: this
- })),
- this.initSplitButton()
- },
- _SplitButton_postRender: d.prototype.postRender,
- postRender: function () {
- this._SplitButton_postRender(),
- this.setLabel(this.label || ''),
- this.setValue(this.initValue || '')
- },
- showPopup: function () {
- var a = b.getClientRect(this.getDom())
- ;(a.top += 1),
- (a.bottom -= 1),
- (a.height -= 2),
- this.popup.showAnchorRect(a)
- },
- getValue: function () {
- return this.value
- },
- setValue: function (a) {
- var b = this.indexByValue(a)
- b != -1
- ? ((this.selectedIndex = b),
- this.setLabel(this.items[b].label),
- (this.value = this.items[b].value))
- : ((this.selectedIndex = -1),
- this.setLabel(this.getLabelForUnknowValue(a)),
- (this.value = a))
- },
- setLabel: function (a) {
- ;(this.getDom('button_body').innerHTML = a), (this.label = a)
- },
- getLabelForUnknowValue: function (a) {
- return a
- },
- indexByValue: function (a) {
- for (var b = 0; b < this.items.length; b++)
- if (a == this.items[b].value) return b
- return -1
- },
- getItem: function (a) {
- return this.items[a]
- },
- selectByIndex: function (a) {
- a < this.items.length &&
- this.fireEvent('select', a) !== !1 &&
- ((this.selectedIndex = a),
- (this.value = this.items[a].value),
- this.setLabel(this.items[a].label))
- }
- }),
- a.inherits(e, d)
- })(),
- (function () {
- var a,
- b,
- c,
- d = baidu.editor.utils,
- e = baidu.editor.dom.domUtils,
- f = baidu.editor.ui.uiUtils,
- g = baidu.editor.ui.Mask,
- h = baidu.editor.ui.UIBase,
- i = baidu.editor.ui.Button,
- j = (baidu.editor.ui.Dialog = function (a) {
- if (a.name) {
- var b = a.name,
- c = a.cssRules
- a.className || (a.className = 'edui-for-' + b),
- c &&
- (a.cssRules =
- '.edui-default .edui-for-' +
- b +
- ' .edui-dialog-content {' +
- c +
- '}')
- }
- this.initOptions(
- d.extend(
- {
- autoReset: !0,
- draggable: !0,
- onok: function () {},
- oncancel: function () {},
- onclose: function (a, b) {
- return b ? this.onok() : this.oncancel()
- },
- holdScroll: !1
- },
- a
- )
- ),
- this.initDialog()
- })
- ;(j.prototype = {
- draggable: !1,
- uiName: 'dialog',
- initDialog: function () {
- var e = this,
- f = this.editor.options.theme
- if (
- (this.cssRules &&
- d.cssRule(
- 'edui-customize-' + this.name + '-style',
- this.cssRules
- ),
- this.initUIBase(),
- (this.modalMask =
- a ||
- (a = new g({
- className: 'edui-dialog-modalmask',
- theme: f,
- onclick: function () {
- c && c.close(!1)
- }
- }))),
- (this.dragMask =
- b ||
- (b = new g({ className: 'edui-dialog-dragmask', theme: f }))),
- (this.closeButton = new i({
- className: 'edui-dialog-closebutton',
- title: e.closeDialog,
- theme: f,
- onclick: function () {
- e.close(!1)
- }
- })),
- this.fullscreen && this.initResizeEvent(),
- this.buttons)
- )
- for (var h = 0; h < this.buttons.length; h++)
- this.buttons[h] instanceof i ||
- (this.buttons[h] = new i(
- d.extend(this.buttons[h], { editor: this.editor }, !0)
- ))
- },
- initResizeEvent: function () {
- var a = this
- e.on(window, 'resize', function () {
- a._hidden ||
- void 0 === a._hidden ||
- (a.__resizeTimer && window.clearTimeout(a.__resizeTimer),
- (a.__resizeTimer = window.setTimeout(function () {
- a.__resizeTimer = null
- var b = a.getDom(),
- c = a.getDom('content'),
- d = UE.ui.uiUtils.getClientRect(b),
- e = UE.ui.uiUtils.getClientRect(c),
- g = f.getViewportRect()
- ;(c.style.width = g.width - d.width + e.width + 'px'),
- (c.style.height = g.height - d.height + e.height + 'px'),
- (b.style.width = g.width + 'px'),
- (b.style.height = g.height + 'px'),
- a.fireEvent('resize')
- }, 100)))
- })
- },
- fitSize: function () {
- var a = this.getDom('body'),
- b = this.mesureSize()
- return (
- (a.style.width = b.width + 'px'),
- (a.style.height = b.height + 'px'),
- b
- )
- },
- safeSetOffset: function (a) {
- var b = this,
- c = b.getDom(),
- d = f.getViewportRect(),
- e = f.getClientRect(c),
- g = a.left
- g + e.width > d.right && (g = d.right - e.width)
- var h = a.top
- h + e.height > d.bottom && (h = d.bottom - e.height),
- (c.style.left = Math.max(g, 0) + 'px'),
- (c.style.top = Math.max(h, 0) + 'px')
- },
- showAtCenter: function () {
- var a = f.getViewportRect()
- if (this.fullscreen) {
- var b = this.getDom(),
- c = this.getDom('content')
- b.style.display = 'block'
- var d = UE.ui.uiUtils.getClientRect(b),
- g = UE.ui.uiUtils.getClientRect(c)
- ;(b.style.left = '-100000px'),
- (c.style.width = a.width - d.width + g.width + 'px'),
- (c.style.height = a.height - d.height + g.height + 'px'),
- (b.style.width = a.width + 'px'),
- (b.style.height = a.height + 'px'),
- (b.style.left = 0),
- (this._originalContext = {
- html: {
- overflowX: document.documentElement.style.overflowX,
- overflowY: document.documentElement.style.overflowY
- },
- body: {
- overflowX: document.body.style.overflowX,
- overflowY: document.body.style.overflowY
- }
- }),
- (document.documentElement.style.overflowX = 'hidden'),
- (document.documentElement.style.overflowY = 'hidden'),
- (document.body.style.overflowX = 'hidden'),
- (document.body.style.overflowY = 'hidden')
- } else {
- this.getDom().style.display = ''
- var h = this.fitSize(),
- i = 0 | this.getDom('titlebar').offsetHeight,
- j = a.width / 2 - h.width / 2,
- k = a.height / 2 - (h.height - i) / 2 - i,
- l = this.getDom()
- this.safeSetOffset({
- left: Math.max(0 | j, 0),
- top: Math.max(0 | k, 0)
- }),
- e.hasClass(l, 'edui-state-centered') ||
- (l.className += ' edui-state-centered')
- }
- this._show()
- },
- getContentHtml: function () {
- var a = ''
- return (
- 'string' == typeof this.content
- ? (a = this.content)
- : this.iframeUrl &&
- (a =
- '<span id="' +
- this.id +
- '_contmask" class="dialogcontmask"></span><iframe id="' +
- this.id +
- '_iframe" class="%%-iframe" height="100%" width="100%" frameborder="0" src="' +
- this.iframeUrl +
- '"></iframe>'),
- a
- )
- },
- getHtmlTpl: function () {
- var a = ''
- if (this.buttons) {
- for (var b = [], c = 0; c < this.buttons.length; c++)
- b[c] = this.buttons[c].renderHtml()
- a =
- '<div class="%%-foot"><div id="##_buttons" class="%%-buttons">' +
- b.join('') +
- '</div></div>'
- }
- return (
- '<div id="##" class="%%"><div ' +
- (this.fullscreen
- ? 'class="%%-wrap edui-dialog-fullscreen-flag"'
- : 'class="%%"') +
- '><div id="##_body" class="%%-body"><div class="%%-shadow"></div><div id="##_titlebar" class="%%-titlebar"><div class="%%-draghandle" onmousedown="$$._onTitlebarMouseDown(event, this);"><span class="%%-caption">' +
- (this.title || '') +
- '</span></div>' +
- this.closeButton.renderHtml() +
- '</div><div id="##_content" class="%%-content">' +
- (this.autoReset ? '' : this.getContentHtml()) +
- '</div>' +
- a +
- '</div></div></div>'
- )
- },
- postRender: function () {
- this.modalMask.getDom() ||
- (this.modalMask.render(), this.modalMask.hide()),
- this.dragMask.getDom() ||
- (this.dragMask.render(), this.dragMask.hide())
- var a = this
- if (
- (this.addListener('show', function () {
- a.modalMask.show(this.getDom().style.zIndex - 2)
- }),
- this.addListener('hide', function () {
- a.modalMask.hide()
- }),
- this.buttons)
- )
- for (var b = 0; b < this.buttons.length; b++)
- this.buttons[b].postRender()
- e.on(window, 'resize', function () {
- setTimeout(function () {
- a.isHidden() || a.safeSetOffset(f.getClientRect(a.getDom()))
- })
- }),
- this._hide()
- },
- mesureSize: function () {
- var a = this.getDom('body'),
- b = f.getClientRect(this.getDom('content')).width,
- c = a.style
- return (c.width = b), f.getClientRect(a)
- },
- _onTitlebarMouseDown: function (a, b) {
- if (this.draggable) {
- var c,
- d = (f.getViewportRect(), this)
- f.startDrag(a, {
- ondragstart: function () {
- ;(c = f.getClientRect(d.getDom())),
- (d.getDom('contmask').style.visibility = 'visible'),
- d.dragMask.show(d.getDom().style.zIndex - 1)
- },
- ondragmove: function (a, b) {
- var e = c.left + a,
- f = c.top + b
- d.safeSetOffset({ left: e, top: f })
- },
- ondragstop: function () {
- ;(d.getDom('contmask').style.visibility = 'hidden'),
- e.removeClasses(d.getDom(), ['edui-state-centered']),
- d.dragMask.hide()
- }
- })
- }
- },
- reset: function () {
- ;(this.getDom('content').innerHTML = this.getContentHtml()),
- this.fireEvent('dialogafterreset')
- },
- _show: function () {
- this._hidden &&
- ((this.getDom().style.display = ''),
- this.editor.container.style.zIndex &&
- (this.getDom().style.zIndex =
- 1 * this.editor.container.style.zIndex + 10),
- (this._hidden = !1),
- this.fireEvent('show'),
- (baidu.editor.ui.uiUtils.getFixedLayer().style.zIndex =
- this.getDom().style.zIndex - 4))
- },
- isHidden: function () {
- return this._hidden
- },
- _hide: function () {
- if (!this._hidden) {
- var a = this.getDom()
- ;(a.style.display = 'none'),
- (a.style.zIndex = ''),
- (a.style.width = ''),
- (a.style.height = ''),
- (this._hidden = !0),
- this.fireEvent('hide')
- }
- },
- open: function () {
- if (this.autoReset)
- try {
- this.reset()
- } catch (a) {
- this.render(), this.open()
- }
- if ((this.showAtCenter(), this.iframeUrl))
- try {
- this.getDom('iframe').focus()
- } catch (b) {}
- c = this
- },
- _onCloseButtonClick: function (a, b) {
- this.close(!1)
- },
- close: function (a) {
- if (this.fireEvent('close', a) !== !1) {
- this.fullscreen &&
- ((document.documentElement.style.overflowX =
- this._originalContext.html.overflowX),
- (document.documentElement.style.overflowY =
- this._originalContext.html.overflowY),
- (document.body.style.overflowX =
- this._originalContext.body.overflowX),
- (document.body.style.overflowY =
- this._originalContext.body.overflowY),
- delete this._originalContext),
- this._hide()
- var b = this.getDom('content'),
- c = this.getDom('iframe')
- if (b && c) {
- var d = c.contentDocument || c.contentWindow.document
- d && (d.body.innerHTML = ''), e.remove(b)
- }
- }
- }
- }),
- d.inherits(j, h)
- })(),
- (function () {
- var a = baidu.editor.utils,
- b = baidu.editor.ui.Menu,
- c = baidu.editor.ui.SplitButton,
- d = (baidu.editor.ui.MenuButton = function (a) {
- this.initOptions(a), this.initMenuButton()
- })
- ;(d.prototype = {
- initMenuButton: function () {
- var a = this
- ;(this.uiName = 'menubutton'),
- (this.popup = new b({
- items: a.items,
- className: a.className,
- editor: a.editor
- })),
- this.popup.addListener('show', function () {
- for (var b = this, c = 0; c < b.items.length; c++)
- b.items[c].removeState('checked'),
- b.items[c].value == a._value &&
- (b.items[c].addState('checked'), (this.value = a._value))
- }),
- this.initSplitButton()
- },
- setValue: function (a) {
- this._value = a
- }
- }),
- a.inherits(d, c)
- })(),
- (function () {
- var a = baidu.editor.utils,
- b = baidu.editor.ui.Popup,
- c = baidu.editor.ui.SplitButton,
- d = (baidu.editor.ui.MultiMenuPop = function (a) {
- this.initOptions(a), this.initMultiMenu()
- })
- ;(d.prototype = {
- initMultiMenu: function () {
- var a = this
- ;(this.popup = new b({
- content: '',
- editor: a.editor,
- iframe_rendered: !1,
- onshow: function () {
- this.iframe_rendered ||
- ((this.iframe_rendered = !0),
- (this.getDom('content').innerHTML =
- '<iframe id="' +
- a.id +
- '_iframe" src="' +
- a.iframeUrl +
- '" frameborder="0"></iframe>'),
- a.editor.container.style.zIndex &&
- (this.getDom().style.zIndex =
- 1 * a.editor.container.style.zIndex + 1))
- }
- })),
- (this.onbuttonclick = function () {
- this.showPopup()
- }),
- this.initSplitButton()
- }
- }),
- a.inherits(d, c)
- })(),
- (function () {
- function a(a) {
- var b = a.target || a.srcElement,
- c = g.findParent(
- b,
- function (a) {
- return (
- g.hasClass(a, 'edui-shortcutmenu') ||
- g.hasClass(a, 'edui-popup')
- )
- },
- !0
- )
- if (!c) for (var d, e = 0; (d = h[e++]); ) d.hide()
- }
- var b,
- c = baidu.editor.ui,
- d = c.UIBase,
- e = c.uiUtils,
- f = baidu.editor.utils,
- g = baidu.editor.dom.domUtils,
- h = [],
- i = !1,
- j = (c.ShortCutMenu = function (a) {
- this.initOptions(a), this.initShortCutMenu()
- })
- ;(j.postHide = a),
- (j.prototype = {
- isHidden: !0,
- SPACE: 5,
- initShortCutMenu: function () {
- ;(this.items = this.items || []),
- this.initUIBase(),
- this.initItems(),
- this.initEvent(),
- h.push(this)
- },
- initEvent: function () {
- var a = this,
- c = a.editor.document
- g.on(c, 'mousemove', function (c) {
- if (a.isHidden === !1) {
- if (a.getSubMenuMark() || 'contextmenu' == a.eventType) return
- var d = !0,
- e = a.getDom(),
- f = e.offsetWidth,
- g = e.offsetHeight,
- h = f / 2 + a.SPACE,
- i = g / 2,
- j = Math.abs(c.screenX - a.left),
- k = Math.abs(c.screenY - a.top)
- clearTimeout(b),
- (b = setTimeout(function () {
- k > 0 && k < i
- ? a.setOpacity(e, '1')
- : k > i && k < i + 70
- ? (a.setOpacity(e, '0.5'), (d = !1))
- : k > i + 70 && k < i + 140 && a.hide(),
- d && j > 0 && j < h
- ? a.setOpacity(e, '1')
- : j > h && j < h + 70
- ? a.setOpacity(e, '0.5')
- : j > h + 70 && j < h + 140 && a.hide()
- }))
- }
- }),
- browser.chrome &&
- g.on(c, 'mouseout', function (b) {
- var c = b.relatedTarget || b.toElement
- ;(null != c && 'HTML' != c.tagName) || a.hide()
- }),
- a.editor.addListener('afterhidepop', function () {
- a.isHidden || (i = !0)
- })
- },
- initItems: function () {
- if (f.isArray(this.items))
- for (var a = 0, b = this.items.length; a < b; a++) {
- var d = this.items[a].toLowerCase()
- c[d] &&
- ((this.items[a] = new c[d](this.editor)),
- (this.items[a].className += ' edui-shortcutsubmenu '))
- }
- },
- setOpacity: function (a, b) {
- browser.ie && browser.version < 9
- ? (a.style.filter =
- 'alpha(opacity = ' + 100 * parseFloat(b) + ');')
- : (a.style.opacity = b)
- },
- getSubMenuMark: function () {
- i = !1
- for (
- var a,
- b = e.getFixedLayer(),
- c = g.getElementsByTagName(b, 'div', function (a) {
- return g.hasClass(a, 'edui-shortcutsubmenu edui-popup')
- }),
- d = 0;
- (a = c[d++]);
- )
- 'none' != a.style.display && (i = !0)
- return i
- },
- show: function (a, b) {
- function c(a) {
- a.left < 0 && (a.left = 0),
- a.top < 0 && (a.top = 0),
- (i.style.cssText =
- 'position:absolute;left:' +
- a.left +
- 'px;top:' +
- a.top +
- 'px;')
- }
- function d(a) {
- a.tagName || (a = a.getDom()),
- (h.left = parseInt(a.style.left)),
- (h.top = parseInt(a.style.top)),
- (h.top -= i.offsetHeight + 15),
- c(h)
- }
- var f = this,
- h = {},
- i = this.getDom(),
- j = e.getFixedLayer()
- if (
- ((f.eventType = a.type),
- (i.style.cssText = 'display:block;left:-9999px'),
- 'contextmenu' == a.type && b)
- ) {
- var k = g.getElementsByTagName(j, 'div', 'edui-contextmenu')[0]
- k
- ? d(k)
- : f.editor.addListener('aftershowcontextmenu', function (a, b) {
- d(b)
- })
- } else
- (h = e.getViewportOffsetByEvent(a)),
- (h.top -= i.offsetHeight + f.SPACE),
- (h.left += f.SPACE + 20),
- c(h),
- f.setOpacity(i, 0.2)
- ;(f.isHidden = !1),
- (f.left = a.screenX + i.offsetWidth / 2 - f.SPACE),
- (f.top = a.screenY - i.offsetHeight / 2 - f.SPACE),
- f.editor &&
- ((i.style.zIndex = 1 * f.editor.container.style.zIndex + 10),
- (j.style.zIndex = i.style.zIndex - 1))
- },
- hide: function () {
- this.getDom() && (this.getDom().style.display = 'none'),
- (this.isHidden = !0)
- },
- postRender: function () {
- if (f.isArray(this.items))
- for (var a, b = 0; (a = this.items[b++]); ) a.postRender()
- },
- getHtmlTpl: function () {
- var a
- if (f.isArray(this.items)) {
- a = []
- for (var b = 0; b < this.items.length; b++)
- a[b] = this.items[b].renderHtml()
- a = a.join('')
- } else a = this.items
- return (
- '<div id="##" class="%% edui-toolbar" data-src="shortcutmenu" onmousedown="return false;" onselectstart="return false;" >' +
- a +
- '</div>'
- )
- }
- }),
- f.inherits(j, d),
- g.on(document, 'mousedown', function (b) {
- a(b)
- }),
- g.on(window, 'scroll', function (b) {
- a(b)
- })
- })(),
- (function () {
- var a = baidu.editor.utils,
- b = baidu.editor.ui.UIBase,
- c = (baidu.editor.ui.Breakline = function (a) {
- this.initOptions(a), this.initSeparator()
- })
- ;(c.prototype = {
- uiName: 'Breakline',
- initSeparator: function () {
- this.initUIBase()
- },
- getHtmlTpl: function () {
- return '<br/>'
- }
- }),
- a.inherits(c, b)
- })(),
- (function () {
- var a = baidu.editor.utils,
- b = baidu.editor.dom.domUtils,
- c = baidu.editor.ui.UIBase,
- d = (baidu.editor.ui.Message = function (a) {
- this.initOptions(a), this.initMessage()
- })
- ;(d.prototype = {
- initMessage: function () {
- this.initUIBase()
- },
- getHtmlTpl: function () {
- return '<div id="##" class="edui-message %%"> <div id="##_closer" class="edui-message-closer">×</div> <div id="##_body" class="edui-message-body edui-message-type-info"> <iframe style="position:absolute;z-index:-1;left:0;top:0;background-color: transparent;" frameborder="0" width="100%" height="100%" src="about:blank"></iframe> <div class="edui-shadow"></div> <div id="##_content" class="edui-message-content"> </div> </div></div>'
- },
- reset: function (a) {
- var b = this
- a.keepshow ||
- (clearTimeout(this.timer),
- (b.timer = setTimeout(function () {
- b.hide()
- }, a.timeout || 4e3))),
- void 0 !== a.content && b.setContent(a.content),
- void 0 !== a.type && b.setType(a.type),
- b.show()
- },
- postRender: function () {
- var a = this,
- c = this.getDom('closer')
- c &&
- b.on(c, 'click', function () {
- a.hide()
- })
- },
- setContent: function (a) {
- this.getDom('content').innerHTML = a
- },
- setType: function (a) {
- a = a || 'info'
- var b = this.getDom('body')
- b.className = b.className.replace(
- /edui-message-type-[\w-]+/,
- 'edui-message-type-' + a
- )
- },
- getContent: function () {
- return this.getDom('content').innerHTML
- },
- getType: function () {
- var a = this.getDom('body').match(/edui-message-type-([\w-]+)/)
- return a ? a[1] : ''
- },
- show: function () {
- this.getDom().style.display = 'block'
- },
- hide: function () {
- var a = this.getDom()
- a &&
- ((a.style.display = 'none'),
- a.parentNode && a.parentNode.removeChild(a))
- }
- }),
- a.inherits(d, c)
- })(),
- (function () {
- var a = baidu.editor.utils,
- b = baidu.editor.ui,
- c = b.Dialog
- ;(b.buttons = {}),
- (b.Dialog = function (a) {
- var b = new c(a)
- return (
- b.addListener('hide', function () {
- if (b.editor) {
- var a = b.editor
- try {
- if (browser.gecko) {
- var c = a.window.scrollY,
- d = a.window.scrollX
- a.body.focus(), a.window.scrollTo(d, c)
- } else a.focus()
- } catch (e) {}
- }
- }),
- b
- )
- })
- for (
- var d,
- e = {
- anchor: '~/dialogs/anchor/anchor.html',
- insertimage: '~/dialogs/image/image.html',
- link: '~/dialogs/link/link.html',
- spechars: '~/dialogs/spechars/spechars.html',
- searchreplace: '~/dialogs/searchreplace/searchreplace.html',
- map: '~/dialogs/map/map.html',
- gmap: '~/dialogs/gmap/gmap.html',
- insertvideo: '~/dialogs/video/video.html',
- help: '~/dialogs/help/help.html',
- preview: '~/dialogs/preview/preview.html',
- emotion: '~/dialogs/emotion/emotion.html',
- wordimage: '~/dialogs/wordimage/wordimage.html',
- attachment: '~/dialogs/attachment/attachment.html',
- insertframe: '~/dialogs/insertframe/insertframe.html',
- edittip: '~/dialogs/table/edittip.html',
- edittable: '~/dialogs/table/edittable.html',
- edittd: '~/dialogs/table/edittd.html',
- webapp: '~/dialogs/webapp/webapp.html',
- snapscreen: '~/dialogs/snapscreen/snapscreen.html',
- scrawl: '~/dialogs/scrawl/scrawl.html',
- music: '~/dialogs/music/music.html',
- template: '~/dialogs/template/template.html',
- background: '~/dialogs/background/background.html',
- charts: '~/dialogs/charts/charts.html'
- },
- f = [
- 'undo',
- 'redo',
- 'formatmatch',
- 'bold',
- 'italic',
- 'underline',
- 'fontborder',
- 'touppercase',
- 'tolowercase',
- 'strikethrough',
- 'subscript',
- 'superscript',
- 'source',
- 'indent',
- 'outdent',
- 'blockquote',
- 'pasteplain',
- 'pagebreak',
- 'selectall',
- 'print',
- 'horizontal',
- 'removeformat',
- 'time',
- 'date',
- 'unlink',
- 'insertparagraphbeforetable',
- 'insertrow',
- 'insertcol',
- 'mergeright',
- 'mergedown',
- 'deleterow',
- 'deletecol',
- 'splittorows',
- 'splittocols',
- 'splittocells',
- 'mergecells',
- 'deletetable',
- 'drafts'
- ],
- g = 0;
- (d = f[g++]);
- )
- (d = d.toLowerCase()),
- (b[d] = (function (a) {
- return function (c) {
- var d = new b.Button({
- className: 'edui-for-' + a,
- title:
- c.options.labelMap[a] || c.getLang('labelMap.' + a) || '',
- onclick: function () {
- c.execCommand(a)
- },
- theme: c.options.theme,
- showText: !1
- })
- return (
- (b.buttons[a] = d),
- c.addListener('selectionchange', function (b, e, f) {
- var g = c.queryCommandState(a)
- g == -1
- ? (d.setDisabled(!0), d.setChecked(!1))
- : f || (d.setDisabled(!1), d.setChecked(g))
- }),
- d
- )
- }
- })(d))
- b.cleardoc = function (a) {
- var c = new b.Button({
- className: 'edui-for-cleardoc',
- title:
- a.options.labelMap.cleardoc || a.getLang('labelMap.cleardoc') || '',
- theme: a.options.theme,
- onclick: function () {
- confirm(a.getLang('confirmClear')) && a.execCommand('cleardoc')
- }
- })
- return (
- (b.buttons.cleardoc = c),
- a.addListener('selectionchange', function () {
- c.setDisabled(a.queryCommandState('cleardoc') == -1)
- }),
- c
- )
- }
- var h = {
- justify: ['left', 'right', 'center', 'justify'],
- imagefloat: ['none', 'left', 'center', 'right'],
- directionality: ['ltr', 'rtl']
- }
- for (var i in h)
- !(function (a, c) {
- for (var d, e = 0; (d = c[e++]); )
- !(function (c) {
- b[a.replace('float', '') + c] = function (d) {
- var e = new b.Button({
- className: 'edui-for-' + a.replace('float', '') + c,
- title:
- d.options.labelMap[a.replace('float', '') + c] ||
- d.getLang('labelMap.' + a.replace('float', '') + c) ||
- '',
- theme: d.options.theme,
- onclick: function () {
- d.execCommand(a, c)
- }
- })
- return (
- (b.buttons[a] = e),
- d.addListener('selectionchange', function (b, f, g) {
- e.setDisabled(d.queryCommandState(a) == -1),
- e.setChecked(d.queryCommandValue(a) == c && !g)
- }),
- e
- )
- }
- })(d)
- })(i, h[i])
- for (var d, g = 0; (d = ['backcolor', 'forecolor'][g++]); )
- b[d] = (function (a) {
- return function (c) {
- var d = new b.ColorButton({
- className: 'edui-for-' + a,
- color: 'default',
- title: c.options.labelMap[a] || c.getLang('labelMap.' + a) || '',
- editor: c,
- onpickcolor: function (b, d) {
- c.execCommand(a, d)
- },
- onpicknocolor: function () {
- c.execCommand(a, 'default'),
- this.setColor('transparent'),
- (this.color = 'default')
- },
- onbuttonclick: function () {
- c.execCommand(a, this.color)
- }
- })
- return (
- (b.buttons[a] = d),
- c.addListener('selectionchange', function () {
- d.setDisabled(c.queryCommandState(a) == -1)
- }),
- d
- )
- }
- })(d)
- var j = {
- noOk: ['searchreplace', 'help', 'spechars', 'webapp', 'preview'],
- ok: [
- 'attachment',
- 'anchor',
- 'link',
- 'insertimage',
- 'map',
- 'gmap',
- 'insertframe',
- 'wordimage',
- 'insertvideo',
- 'insertframe',
- 'edittip',
- 'edittable',
- 'edittd',
- 'scrawl',
- 'template',
- 'music',
- 'background',
- 'charts'
- ]
- }
- for (var i in j)
- !(function (c, d) {
- for (var f, g = 0; (f = d[g++]); )
- (browser.opera && 'searchreplace' === f) ||
- !(function (d) {
- b[d] = function (f, g, h) {
- ;(g = g || (f.options.iframeUrlMap || {})[d] || e[d]),
- (h =
- f.options.labelMap[d] || f.getLang('labelMap.' + d) || '')
- var i
- g &&
- ((i = new b.Dialog(
- a.extend(
- {
- iframeUrl: f.ui.mapUrl(g),
- editor: f,
- className: 'edui-for-' + d,
- title: h,
- holdScroll: 'insertimage' === d,
- fullscreen: /charts|preview/.test(d),
- closeDialog: f.getLang('closeDialog')
- },
- 'ok' == c
- ? {
- buttons: [
- {
- className: 'edui-okbutton',
- label: f.getLang('ok'),
- editor: f,
- onclick: function () {
- i.close(!0)
- }
- },
- {
- className: 'edui-cancelbutton',
- label: f.getLang('cancel'),
- editor: f,
- onclick: function () {
- i.close(!1)
- }
- }
- ]
- }
- : {}
- )
- )),
- (f.ui._dialogs[d + 'Dialog'] = i))
- var j = new b.Button({
- className: 'edui-for-' + d,
- title: h,
- onclick: function () {
- if (i)
- switch (d) {
- case 'wordimage':
- var a = f.execCommand('wordimage')
- a && a.length && (i.render(), i.open())
- break
- case 'scrawl':
- f.queryCommandState('scrawl') != -1 &&
- (i.render(), i.open())
- break
- default:
- i.render(), i.open()
- }
- },
- theme: f.options.theme,
- disabled:
- ('scrawl' == d && f.queryCommandState('scrawl') == -1) ||
- 'charts' == d
- })
- return (
- (b.buttons[d] = j),
- f.addListener('selectionchange', function () {
- var a = { edittable: 1 }
- if (!(d in a)) {
- var b = f.queryCommandState(d)
- j.getDom() && (j.setDisabled(b == -1), j.setChecked(b))
- }
- }),
- j
- )
- }
- })(f.toLowerCase())
- })(i, j[i])
- ;(b.snapscreen = function (a, c, d) {
- d =
- a.options.labelMap.snapscreen ||
- a.getLang('labelMap.snapscreen') ||
- ''
- var f = new b.Button({
- className: 'edui-for-snapscreen',
- title: d,
- onclick: function () {
- a.execCommand('snapscreen')
- },
- theme: a.options.theme
- })
- if (
- ((b.buttons.snapscreen = f),
- (c = c || (a.options.iframeUrlMap || {}).snapscreen || e.snapscreen))
- ) {
- var g = new b.Dialog({
- iframeUrl: a.ui.mapUrl(c),
- editor: a,
- className: 'edui-for-snapscreen',
- title: d,
- buttons: [
- {
- className: 'edui-okbutton',
- label: a.getLang('ok'),
- editor: a,
- onclick: function () {
- g.close(!0)
- }
- },
- {
- className: 'edui-cancelbutton',
- label: a.getLang('cancel'),
- editor: a,
- onclick: function () {
- g.close(!1)
- }
- }
- ]
- })
- g.render(), (a.ui._dialogs.snapscreenDialog = g)
- }
- return (
- a.addListener('selectionchange', function () {
- f.setDisabled(a.queryCommandState('snapscreen') == -1)
- }),
- f
- )
- }),
- (b.insertcode = function (c, d, e) {
- ;(d = c.options.insertcode || []),
- (e =
- c.options.labelMap.insertcode ||
- c.getLang('labelMap.insertcode') ||
- '')
- var f = []
- a.each(d, function (a, b) {
- f.push({
- label: a,
- value: b,
- theme: c.options.theme,
- renderLabelHtml: function () {
- return (
- '<div class="edui-label %%-label" >' +
- (this.label || '') +
- '</div>'
- )
- }
- })
- })
- var g = new b.Combox({
- editor: c,
- items: f,
- onselect: function (a, b) {
- c.execCommand('insertcode', this.items[b].value)
- },
- onbuttonclick: function () {
- this.showPopup()
- },
- title: e,
- initValue: e,
- className: 'edui-for-insertcode',
- indexByValue: function (a) {
- if (a)
- for (var b, c = 0; (b = this.items[c]); c++)
- if (b.value.indexOf(a) != -1) return c
- return -1
- }
- })
- return (
- (b.buttons.insertcode = g),
- c.addListener('selectionchange', function (a, b, d) {
- if (!d) {
- var f = c.queryCommandState('insertcode')
- if (f == -1) g.setDisabled(!0)
- else {
- g.setDisabled(!1)
- var h = c.queryCommandValue('insertcode')
- if (!h) return void g.setValue(e)
- h && (h = h.replace(/['"]/g, '').split(',')[0]), g.setValue(h)
- }
- }
- }),
- g
- )
- }),
- (b.fontfamily = function (c, d, e) {
- if (
- ((d = c.options.fontfamily || []),
- (e =
- c.options.labelMap.fontfamily ||
- c.getLang('labelMap.fontfamily') ||
- ''),
- d.length)
- ) {
- for (var f, g = 0, h = []; (f = d[g]); g++) {
- var i = c.getLang('fontfamily')[f.name] || ''
- !(function (b, d) {
- h.push({
- label: b,
- value: d,
- theme: c.options.theme,
- renderLabelHtml: function () {
- return (
- '<div class="edui-label %%-label" style="font-family:' +
- a.unhtml(this.value) +
- '">' +
- (this.label || '') +
- '</div>'
- )
- }
- })
- })(f.label || i, f.val)
- }
- var j = new b.Combox({
- editor: c,
- items: h,
- onselect: function (a, b) {
- c.execCommand('FontFamily', this.items[b].value)
- },
- onbuttonclick: function () {
- this.showPopup()
- },
- title: e,
- initValue: e,
- className: 'edui-for-fontfamily',
- indexByValue: function (a) {
- if (a)
- for (var b, c = 0; (b = this.items[c]); c++)
- if (b.value.indexOf(a) != -1) return c
- return -1
- }
- })
- return (
- (b.buttons.fontfamily = j),
- c.addListener('selectionchange', function (a, b, d) {
- if (!d) {
- var e = c.queryCommandState('FontFamily')
- if (e == -1) j.setDisabled(!0)
- else {
- j.setDisabled(!1)
- var f = c.queryCommandValue('FontFamily')
- f && (f = f.replace(/['"]/g, '').split(',')[0]),
- j.setValue(f)
- }
- }
- }),
- j
- )
- }
- }),
- (b.fontsize = function (a, c, d) {
- if (
- ((d =
- a.options.labelMap.fontsize ||
- a.getLang('labelMap.fontsize') ||
- ''),
- (c = c || a.options.fontsize || []),
- c.length)
- ) {
- for (var e = [], f = 0; f < c.length; f++) {
- var g = c[f] + 'px'
- e.push({
- label: g,
- value: g,
- theme: a.options.theme,
- renderLabelHtml: function () {
- return (
- '<div class="edui-label %%-label" style="line-height:1;font-size:' +
- this.value +
- '">' +
- (this.label || '') +
- '</div>'
- )
- }
- })
- }
- var h = new b.Combox({
- editor: a,
- items: e,
- title: d,
- initValue: d,
- onselect: function (b, c) {
- a.execCommand('FontSize', this.items[c].value)
- },
- onbuttonclick: function () {
- this.showPopup()
- },
- className: 'edui-for-fontsize'
- })
- return (
- (b.buttons.fontsize = h),
- a.addListener('selectionchange', function (b, c, d) {
- if (!d) {
- var e = a.queryCommandState('FontSize')
- e == -1
- ? h.setDisabled(!0)
- : (h.setDisabled(!1),
- h.setValue(a.queryCommandValue('FontSize')))
- }
- }),
- h
- )
- }
- }),
- (b.paragraph = function (c, d, e) {
- if (
- ((e =
- c.options.labelMap.paragraph ||
- c.getLang('labelMap.paragraph') ||
- ''),
- (d = c.options.paragraph || []),
- !a.isEmptyObject(d))
- ) {
- var f = []
- for (var g in d)
- f.push({
- value: g,
- label: d[g] || c.getLang('paragraph')[g],
- theme: c.options.theme,
- renderLabelHtml: function () {
- return (
- '<div class="edui-label %%-label"><span class="edui-for-' +
- this.value +
- '">' +
- (this.label || '') +
- '</span></div>'
- )
- }
- })
- var h = new b.Combox({
- editor: c,
- items: f,
- title: e,
- initValue: e,
- className: 'edui-for-paragraph',
- onselect: function (a, b) {
- c.execCommand('Paragraph', this.items[b].value)
- },
- onbuttonclick: function () {
- this.showPopup()
- }
- })
- return (
- (b.buttons.paragraph = h),
- c.addListener('selectionchange', function (a, b, d) {
- if (!d) {
- var e = c.queryCommandState('Paragraph')
- if (e == -1) h.setDisabled(!0)
- else {
- h.setDisabled(!1)
- var f = c.queryCommandValue('Paragraph'),
- g = h.indexByValue(f)
- g != -1 ? h.setValue(f) : h.setValue(h.initValue)
- }
- }
- }),
- h
- )
- }
- }),
- (b.customstyle = function (a) {
- var c = a.options.customstyle || [],
- d =
- a.options.labelMap.customstyle ||
- a.getLang('labelMap.customstyle') ||
- ''
- if (c.length) {
- for (
- var e, f = a.getLang('customstyle'), g = 0, h = [];
- (e = c[g++]);
- )
- !(function (b) {
- var c = {}
- ;(c.label = b.label ? b.label : f[b.name]),
- (c.style = b.style),
- (c.className = b.className),
- (c.tag = b.tag),
- h.push({
- label: c.label,
- value: c,
- theme: a.options.theme,
- renderLabelHtml: function () {
- return (
- '<div class="edui-label %%-label"><' +
- c.tag +
- ' ' +
- (c.className ? ' class="' + c.className + '"' : '') +
- (c.style ? ' style="' + c.style + '"' : '') +
- '>' +
- c.label +
- '</' +
- c.tag +
- '></div>'
- )
- }
- })
- })(e)
- var i = new b.Combox({
- editor: a,
- items: h,
- title: d,
- initValue: d,
- className: 'edui-for-customstyle',
- onselect: function (b, c) {
- a.execCommand('customstyle', this.items[c].value)
- },
- onbuttonclick: function () {
- this.showPopup()
- },
- indexByValue: function (a) {
- for (var b, c = 0; (b = this.items[c++]); )
- if (b.label == a) return c - 1
- return -1
- }
- })
- return (
- (b.buttons.customstyle = i),
- a.addListener('selectionchange', function (b, c, d) {
- if (!d) {
- var e = a.queryCommandState('customstyle')
- if (e == -1) i.setDisabled(!0)
- else {
- i.setDisabled(!1)
- var f = a.queryCommandValue('customstyle'),
- g = i.indexByValue(f)
- g != -1 ? i.setValue(f) : i.setValue(i.initValue)
- }
- }
- }),
- i
- )
- }
- }),
- (b.inserttable = function (a, c, d) {
- d =
- a.options.labelMap.inserttable ||
- a.getLang('labelMap.inserttable') ||
- ''
- var e = new b.TableButton({
- editor: a,
- title: d,
- className: 'edui-for-inserttable',
- onpicktable: function (b, c, d) {
- a.execCommand('InsertTable', {
- numRows: d,
- numCols: c,
- border: 1
- })
- },
- onbuttonclick: function () {
- this.showPopup()
- }
- })
- return (
- (b.buttons.inserttable = e),
- a.addListener('selectionchange', function () {
- e.setDisabled(a.queryCommandState('inserttable') == -1)
- }),
- e
- )
- }),
- (b.lineheight = function (a) {
- var c = a.options.lineheight || []
- if (c.length) {
- for (var d, e = 0, f = []; (d = c[e++]); )
- f.push({
- label: d,
- value: d,
- theme: a.options.theme,
- onclick: function () {
- a.execCommand('lineheight', this.value)
- }
- })
- var g = new b.MenuButton({
- editor: a,
- className: 'edui-for-lineheight',
- title:
- a.options.labelMap.lineheight ||
- a.getLang('labelMap.lineheight') ||
- '',
- items: f,
- onbuttonclick: function () {
- var b = a.queryCommandValue('LineHeight') || this.value
- a.execCommand('LineHeight', b)
- }
- })
- return (
- (b.buttons.lineheight = g),
- a.addListener('selectionchange', function () {
- var b = a.queryCommandState('LineHeight')
- if (b == -1) g.setDisabled(!0)
- else {
- g.setDisabled(!1)
- var c = a.queryCommandValue('LineHeight')
- c && g.setValue((c + '').replace(/cm/, '')), g.setChecked(b)
- }
- }),
- g
- )
- }
- })
- for (var k, l = ['top', 'bottom'], m = 0; (k = l[m++]); )
- !(function (a) {
- b['rowspacing' + a] = function (c) {
- var d = c.options['rowspacing' + a] || []
- if (!d.length) return null
- for (var e, f = 0, g = []; (e = d[f++]); )
- g.push({
- label: e,
- value: e,
- theme: c.options.theme,
- onclick: function () {
- c.execCommand('rowspacing', this.value, a)
- }
- })
- var h = new b.MenuButton({
- editor: c,
- className: 'edui-for-rowspacing' + a,
- title:
- c.options.labelMap['rowspacing' + a] ||
- c.getLang('labelMap.rowspacing' + a) ||
- '',
- items: g,
- onbuttonclick: function () {
- var b = c.queryCommandValue('rowspacing', a) || this.value
- c.execCommand('rowspacing', b, a)
- }
- })
- return (
- (b.buttons[a] = h),
- c.addListener('selectionchange', function () {
- var b = c.queryCommandState('rowspacing', a)
- if (b == -1) h.setDisabled(!0)
- else {
- h.setDisabled(!1)
- var d = c.queryCommandValue('rowspacing', a)
- d && h.setValue((d + '').replace(/%/, '')), h.setChecked(b)
- }
- }),
- h
- )
- }
- })(k)
- for (
- var n, o = ['insertorderedlist', 'insertunorderedlist'], p = 0;
- (n = o[p++]);
- )
- !(function (a) {
- b[a] = function (c) {
- var d = c.options[a],
- e = function () {
- c.execCommand(a, this.value)
- },
- f = []
- for (var g in d)
- f.push({
- label: d[g] || c.getLang()[a][g] || '',
- value: g,
- theme: c.options.theme,
- onclick: e
- })
- var h = new b.MenuButton({
- editor: c,
- className: 'edui-for-' + a,
- title: c.getLang('labelMap.' + a) || '',
- items: f,
- onbuttonclick: function () {
- var b = c.queryCommandValue(a) || this.value
- c.execCommand(a, b)
- }
- })
- return (
- (b.buttons[a] = h),
- c.addListener('selectionchange', function () {
- var b = c.queryCommandState(a)
- if (b == -1) h.setDisabled(!0)
- else {
- h.setDisabled(!1)
- var d = c.queryCommandValue(a)
- h.setValue(d), h.setChecked(b)
- }
- }),
- h
- )
- }
- })(n)
- ;(b.fullscreen = function (a, c) {
- c =
- a.options.labelMap.fullscreen ||
- a.getLang('labelMap.fullscreen') ||
- ''
- var d = new b.Button({
- className: 'edui-for-fullscreen',
- title: c,
- theme: a.options.theme,
- onclick: function () {
- a.ui && a.ui.setFullScreen(!a.ui.isFullScreen()),
- this.setChecked(a.ui.isFullScreen())
- }
- })
- return (
- (b.buttons.fullscreen = d),
- a.addListener('selectionchange', function () {
- var b = a.queryCommandState('fullscreen')
- d.setDisabled(b == -1), d.setChecked(a.ui.isFullScreen())
- }),
- d
- )
- }),
- (b.emotion = function (a, c) {
- var d = 'emotion',
- f = new b.MultiMenuPop({
- title: a.options.labelMap[d] || a.getLang('labelMap.' + d) || '',
- editor: a,
- className: 'edui-for-' + d,
- iframeUrl: a.ui.mapUrl(
- c || (a.options.iframeUrlMap || {})[d] || e[d]
- )
- })
- return (
- (b.buttons[d] = f),
- a.addListener('selectionchange', function () {
- f.setDisabled(a.queryCommandState(d) == -1)
- }),
- f
- )
- }),
- (b.autotypeset = function (a) {
- var c = new b.AutoTypeSetButton({
- editor: a,
- title:
- a.options.labelMap.autotypeset ||
- a.getLang('labelMap.autotypeset') ||
- '',
- className: 'edui-for-autotypeset',
- onbuttonclick: function () {
- a.execCommand('autotypeset')
- }
- })
- return (
- (b.buttons.autotypeset = c),
- a.addListener('selectionchange', function () {
- c.setDisabled(a.queryCommandState('autotypeset') == -1)
- }),
- c
- )
- }),
- (b.simpleupload = function (a) {
- var c = 'simpleupload',
- d = new b.Button({
- className: 'edui-for-' + c,
- title: a.options.labelMap[c] || a.getLang('labelMap.' + c) || '',
- onclick: function () {},
- theme: a.options.theme,
- showText: !1
- })
- return (
- (b.buttons[c] = d),
- a.addListener('ready', function () {
- var b = d.getDom('body'),
- c = b.children[0]
- a.fireEvent('simpleuploadbtnready', c)
- }),
- a.addListener('selectionchange', function (b, e, f) {
- var g = a.queryCommandState(c)
- g == -1
- ? (d.setDisabled(!0), d.setChecked(!1))
- : f || (d.setDisabled(!1), d.setChecked(g))
- }),
- d
- )
- })
- })(),
- (function () {
- function a(a) {
- this.initOptions(a), this.initEditorUI()
- }
- var b = baidu.editor.utils,
- c = baidu.editor.ui.uiUtils,
- d = baidu.editor.ui.UIBase,
- e = baidu.editor.dom.domUtils,
- f = []
- ;(a.prototype = {
- uiName: 'editor',
- initEditorUI: function () {
- function a(a, b) {
- a.setOpt({
- wordCount: !0,
- maximumWords: 1e4,
- wordCountMsg: a.options.wordCountMsg || a.getLang('wordCountMsg'),
- wordOverFlowMsg:
- a.options.wordOverFlowMsg || a.getLang('wordOverFlowMsg')
- })
- var c = a.options,
- d = c.maximumWords,
- e = c.wordCountMsg,
- f = c.wordOverFlowMsg,
- g = b.getDom('wordcount')
- if (c.wordCount) {
- var h = a.getContentLength(!0)
- h > d
- ? ((g.innerHTML = f), a.fireEvent('wordcountoverflow'))
- : (g.innerHTML = e
- .replace('{#leave}', d - h)
- .replace('{#count}', h))
- }
- }
- ;(this.editor.ui = this),
- (this._dialogs = {}),
- this.initUIBase(),
- this._initToolbars()
- var b = this.editor,
- c = this
- b.addListener('ready', function () {
- function d() {
- a(b, c), e.un(b.document, 'click', arguments.callee)
- }
- ;(b.getDialog = function (a) {
- return b.ui._dialogs[a + 'Dialog']
- }),
- e.on(b.window, 'scroll', function (a) {
- baidu.editor.ui.Popup.postHide(a)
- }),
- (b.ui._actualFrameWidth = b.options.initialFrameWidth),
- UE.browser.ie &&
- 6 === UE.browser.version &&
- b.container.ownerDocument.execCommand(
- 'BackgroundImageCache',
- !1,
- !0
- ),
- b.options.elementPathEnabled &&
- (b.ui.getDom('elementpath').innerHTML =
- '<div class="edui-editor-breadcrumb">' +
- b.getLang('elementPathTip') +
- ':</div>'),
- b.options.wordCount &&
- (e.on(b.document, 'click', d),
- (b.ui.getDom('wordcount').innerHTML =
- b.getLang('wordCountTip'))),
- b.ui._scale(),
- b.options.scaleEnabled
- ? (b.autoHeightEnabled && b.disableAutoHeight(),
- c.enableScale())
- : c.disableScale(),
- b.options.elementPathEnabled ||
- b.options.wordCount ||
- b.options.scaleEnabled ||
- ((b.ui.getDom('elementpath').style.display = 'none'),
- (b.ui.getDom('wordcount').style.display = 'none'),
- (b.ui.getDom('scale').style.display = 'none')),
- b.selection.isFocus() && b.fireEvent('selectionchange', !1, !0)
- }),
- b.addListener('mousedown', function (a, b) {
- var c = b.target || b.srcElement
- baidu.editor.ui.Popup.postHide(b, c),
- baidu.editor.ui.ShortCutMenu.postHide(b)
- }),
- b.addListener('delcells', function () {
- UE.ui.edittip && new UE.ui.edittip(b),
- b.getDialog('edittip').open()
- })
- var d,
- f,
- g = !1
- b.addListener('afterpaste', function () {
- b.queryCommandState('pasteplain') ||
- (baidu.editor.ui.PastePicker &&
- ((d = new baidu.editor.ui.Popup({
- content: new baidu.editor.ui.PastePicker({ editor: b }),
- editor: b,
- className: 'edui-wordpastepop'
- })),
- d.render()),
- (g = !0))
- }),
- b.addListener('afterinserthtml', function () {
- clearTimeout(f),
- (f = setTimeout(function () {
- if (d && (g || b.ui._isTransfer)) {
- if (d.isHidden()) {
- var a = e.createElement(b.document, 'span', {
- style: 'line-height:0px;',
- innerHTML: '\ufeff'
- }),
- c = b.selection.getRange()
- c.insertNode(a)
- var f = getDomNode(a, 'firstChild', 'previousSibling')
- f && d.showAnchor(3 == f.nodeType ? f.parentNode : f),
- e.remove(a)
- } else d.show()
- delete b.ui._isTransfer, (g = !1)
- }
- }, 200))
- }),
- b.addListener('contextmenu', function (a, b) {
- baidu.editor.ui.Popup.postHide(b)
- }),
- b.addListener('keydown', function (a, b) {
- d && d.dispose(b)
- var c = b.keyCode || b.which
- b.altKey && 90 == c && UE.ui.buttons.fullscreen.onclick()
- }),
- b.addListener('wordcount', function (b) {
- a(this, c)
- }),
- b.addListener('selectionchange', function () {
- b.options.elementPathEnabled &&
- c[
- (b.queryCommandState('elementpath') == -1 ? 'dis' : 'en') +
- 'ableElementPath'
- ](),
- b.options.scaleEnabled &&
- c[
- (b.queryCommandState('scale') == -1 ? 'dis' : 'en') +
- 'ableScale'
- ]()
- })
- var h = new baidu.editor.ui.Popup({
- editor: b,
- content: '',
- className: 'edui-bubble',
- _onEditButtonClick: function () {
- this.hide(), b.ui._dialogs.linkDialog.open()
- },
- _onImgEditButtonClick: function (a) {
- this.hide(), b.ui._dialogs[a] && b.ui._dialogs[a].open()
- },
- _onImgSetFloat: function (a) {
- this.hide(), b.execCommand('imagefloat', a)
- },
- _setIframeAlign: function (a) {
- var b = h.anchorEl,
- c = b.cloneNode(!0)
- switch (a) {
- case -2:
- c.setAttribute('align', '')
- break
- case -1:
- c.setAttribute('align', 'left')
- break
- case 1:
- c.setAttribute('align', 'right')
- }
- b.parentNode.insertBefore(c, b),
- e.remove(b),
- (h.anchorEl = c),
- h.showAnchor(h.anchorEl)
- },
- _updateIframe: function () {
- var a = (b._iframe = h.anchorEl)
- e.hasClass(a, 'ueditor_baidumap')
- ? (b.selection.getRange().selectNode(a).select(),
- b.ui._dialogs.mapDialog.open(),
- h.hide())
- : (b.ui._dialogs.insertframeDialog.open(), h.hide())
- },
- _onRemoveButtonClick: function (a) {
- b.execCommand(a), this.hide()
- },
- queryAutoHide: function (a) {
- return a &&
- a.ownerDocument == b.document &&
- ('img' == a.tagName.toLowerCase() ||
- e.findParentByTagName(a, 'a', !0))
- ? a !== h.anchorEl
- : baidu.editor.ui.Popup.prototype.queryAutoHide.call(this, a)
- }
- })
- h.render(),
- b.options.imagePopup &&
- (b.addListener('mouseover', function (a, c) {
- c = c || window.event
- var d = c.target || c.srcElement
- if (
- b.ui._dialogs.insertframeDialog &&
- /iframe/gi.test(d.tagName)
- ) {
- var e = h.formatHtml(
- '<nobr>' +
- b.getLang('property') +
- ': <span onclick=$$._setIframeAlign(-2) class="edui-clickable">' +
- b.getLang('default') +
- '</span> <span onclick=$$._setIframeAlign(-1) class="edui-clickable">' +
- b.getLang('justifyleft') +
- '</span> <span onclick=$$._setIframeAlign(1) class="edui-clickable">' +
- b.getLang('justifyright') +
- '</span> <span onclick="$$._updateIframe( this);" class="edui-clickable">' +
- b.getLang('modify') +
- '</span></nobr>'
- )
- e
- ? ((h.getDom('content').innerHTML = e),
- (h.anchorEl = d),
- h.showAnchor(h.anchorEl))
- : h.hide()
- }
- }),
- b.addListener('selectionchange', function (a, c) {
- if (c) {
- var d = '',
- f = '',
- g = b.selection.getRange().getClosedNode(),
- i = b.ui._dialogs
- if (g && 'IMG' == g.tagName) {
- var j = 'insertimageDialog'
- if (
- ((g.className.indexOf('edui-faked-video') == -1 &&
- g.className.indexOf('edui-upload-video') == -1) ||
- (j = 'insertvideoDialog'),
- g.className.indexOf('edui-faked-webapp') != -1 &&
- (j = 'webappDialog'),
- g.src.indexOf('http://api.map.baidu.com') != -1 &&
- (j = 'mapDialog'),
- g.className.indexOf('edui-faked-music') != -1 &&
- (j = 'musicDialog'),
- g.src.indexOf(
- 'http://maps.google.com/maps/api/staticmap'
- ) != -1 && (j = 'gmapDialog'),
- g.getAttribute('anchorname') &&
- ((j = 'anchorDialog'),
- (d = h.formatHtml(
- '<nobr>' +
- b.getLang('property') +
- ': <span onclick=$$._onImgEditButtonClick("anchorDialog") class="edui-clickable">' +
- b.getLang('modify') +
- '</span> <span onclick=$$._onRemoveButtonClick(\'anchor\') class="edui-clickable">' +
- b.getLang('delete') +
- '</span></nobr>'
- ))),
- g.getAttribute('word_img') &&
- ((b.word_img = [g.getAttribute('word_img')]),
- (j = 'wordimageDialog')),
- (e.hasClass(g, 'loadingclass') ||
- e.hasClass(g, 'loaderrorclass')) &&
- (j = ''),
- !i[j])
- )
- return
- ;(f =
- '<nobr>' +
- b.getLang('property') +
- ': <span onclick=$$._onImgSetFloat("none") class="edui-clickable">' +
- b.getLang('default') +
- '</span> <span onclick=$$._onImgSetFloat("left") class="edui-clickable">' +
- b.getLang('justifyleft') +
- '</span> <span onclick=$$._onImgSetFloat("right") class="edui-clickable">' +
- b.getLang('justifyright') +
- '</span> <span onclick=$$._onImgSetFloat("center") class="edui-clickable">' +
- b.getLang('justifycenter') +
- '</span> <span onclick="$$._onImgEditButtonClick(\'' +
- j +
- '\');" class="edui-clickable">' +
- b.getLang('modify') +
- '</span></nobr>'),
- !d && (d = h.formatHtml(f))
- }
- if (b.ui._dialogs.linkDialog) {
- var k,
- l = b.queryCommandValue('link')
- if (
- l &&
- (k = l.getAttribute('_href') || l.getAttribute('href', 2))
- ) {
- var m = k
- k.length > 30 && (m = k.substring(0, 20) + '...'),
- d && (d += '<div style="height:5px;"></div>'),
- (d += h.formatHtml(
- '<nobr>' +
- b.getLang('anthorMsg') +
- ': <a target="_blank" href="' +
- k +
- '" title="' +
- k +
- '" >' +
- m +
- '</a> <span class="edui-clickable" onclick="$$._onEditButtonClick();">' +
- b.getLang('modify') +
- '</span> <span class="edui-clickable" onclick="$$._onRemoveButtonClick(\'unlink\');"> ' +
- b.getLang('clear') +
- '</span></nobr>'
- )),
- h.showAnchor(l)
- }
- }
- d
- ? ((h.getDom('content').innerHTML = d),
- (h.anchorEl = g || l),
- h.showAnchor(h.anchorEl))
- : h.hide()
- }
- }))
- },
- _initToolbars: function () {
- for (
- var a = this.editor, b = this.toolbars || [], c = [], d = 0;
- d < b.length;
- d++
- ) {
- for (
- var e = b[d],
- f = new baidu.editor.ui.Toolbar({ theme: a.options.theme }),
- g = 0;
- g < e.length;
- g++
- ) {
- var h = e[g],
- i = null
- if ('string' == typeof h) {
- if (
- ((h = h.toLowerCase()),
- '|' == h && (h = 'Separator'),
- '||' == h && (h = 'Breakline'),
- baidu.editor.ui[h] && (i = new baidu.editor.ui[h](a)),
- 'fullscreen' == h)
- ) {
- c && c[0]
- ? c[0].items.splice(0, 0, i)
- : i && f.items.splice(0, 0, i)
- continue
- }
- } else i = h
- i && i.id && f.add(i)
- }
- c[d] = f
- }
- for (var j in UE._customizeUI) {
- var k,
- l,
- m = UE._customizeUI[j]
- ;(m.id && m.id != a.key) ||
- ((k = m.execFn.call(a, a, j)),
- k &&
- ((l = m.index),
- void 0 === l && (l = f.items.length),
- f.add(k, l)))
- }
- this.toolbars = c
- },
- getHtmlTpl: function () {
- return (
- '<div id="##" class="%%"><div id="##_toolbarbox" class="%%-toolbarbox">' +
- (this.toolbars.length
- ? '<div id="##_toolbarboxouter" class="%%-toolbarboxouter"><div class="%%-toolbarboxinner">' +
- this.renderToolbarBoxHtml() +
- '</div></div>'
- : '') +
- '<div id="##_toolbarmsg" class="%%-toolbarmsg" style="display:none;"><div id = "##_upload_dialog" class="%%-toolbarmsg-upload" onclick="$$.showWordImageDialog();">' +
- this.editor.getLang('clickToUpload') +
- '</div><div class="%%-toolbarmsg-close" onclick="$$.hideToolbarMsg();">x</div><div id="##_toolbarmsg_label" class="%%-toolbarmsg-label"></div><div style="height:0;overflow:hidden;clear:both;"></div></div><div id="##_message_holder" class="%%-messageholder"></div></div><div id="##_iframeholder" class="%%-iframeholder"></div><div id="##_bottombar" class="%%-bottomContainer"><table><tr><td id="##_elementpath" class="%%-bottombar"></td><td id="##_wordcount" class="%%-wordcount"></td><td id="##_scale" class="%%-scale"><div class="%%-icon"></div></td></tr></table></div><div id="##_scalelayer"></div></div>'
- )
- },
- showWordImageDialog: function () {
- this._dialogs.wordimageDialog.open()
- },
- renderToolbarBoxHtml: function () {
- for (var a = [], b = 0; b < this.toolbars.length; b++)
- a.push(this.toolbars[b].renderHtml())
- return a.join('')
- },
- setFullScreen: function (a) {
- var b = this.editor,
- c = b.container.parentNode.parentNode
- if (this._fullscreen != a) {
- if (
- ((this._fullscreen = a),
- this.editor.fireEvent('beforefullscreenchange', a),
- baidu.editor.browser.gecko)
- )
- var d = b.selection.getRange().createBookmark()
- if (a) {
- for (; 'BODY' != c.tagName; ) {
- var e = baidu.editor.dom.domUtils.getComputedStyle(
- c,
- 'position'
- )
- f.push(e), (c.style.position = 'static'), (c = c.parentNode)
- }
- ;(this._bakHtmlOverflow =
- document.documentElement.style.overflow),
- (this._bakBodyOverflow = document.body.style.overflow),
- (this._bakAutoHeight = this.editor.autoHeightEnabled),
- (this._bakScrollTop = Math.max(
- document.documentElement.scrollTop,
- document.body.scrollTop
- )),
- (this._bakEditorContaninerWidth =
- b.iframe.parentNode.offsetWidth),
- this._bakAutoHeight &&
- ((b.autoHeightEnabled = !1), this.editor.disableAutoHeight()),
- (document.documentElement.style.overflow = 'hidden'),
- window.scrollTo(0, window.scrollY),
- (this._bakCssText = this.getDom().style.cssText),
- (this._bakCssText1 = this.getDom('iframeholder').style.cssText),
- (b.iframe.parentNode.style.width = ''),
- this._updateFullScreen()
- } else {
- for (; 'BODY' != c.tagName; )
- (c.style.position = f.shift()), (c = c.parentNode)
- ;(this.getDom().style.cssText = this._bakCssText),
- (this.getDom('iframeholder').style.cssText = this._bakCssText1),
- this._bakAutoHeight &&
- ((b.autoHeightEnabled = !0), this.editor.enableAutoHeight()),
- (document.documentElement.style.overflow =
- this._bakHtmlOverflow),
- (document.body.style.overflow = this._bakBodyOverflow),
- (b.iframe.parentNode.style.width =
- this._bakEditorContaninerWidth + 'px'),
- window.scrollTo(0, this._bakScrollTop)
- }
- if (browser.gecko && 'true' === b.body.contentEditable) {
- var g = document.createElement('input')
- document.body.appendChild(g),
- (b.body.contentEditable = !1),
- setTimeout(function () {
- g.focus(),
- setTimeout(function () {
- ;(b.body.contentEditable = !0),
- b.fireEvent('fullscreenchanged', a),
- b.selection.getRange().moveToBookmark(d).select(!0),
- baidu.editor.dom.domUtils.remove(g),
- a && window.scroll(0, 0)
- }, 0)
- }, 0)
- }
- 'true' === b.body.contentEditable &&
- (this.editor.fireEvent('fullscreenchanged', a),
- this.triggerLayout())
- }
- },
- _updateFullScreen: function () {
- if (this._fullscreen) {
- var a = c.getViewportRect()
- if (
- ((this.getDom().style.cssText =
- 'border:0;position:absolute;left:0;top:' +
- (this.editor.options.topOffset || 0) +
- 'px;width:' +
- a.width +
- 'px;height:' +
- a.height +
- 'px;z-index:' +
- (1 * this.getDom().style.zIndex + 100)),
- c.setViewportOffset(this.getDom(), {
- left: 0,
- top: this.editor.options.topOffset || 0
- }),
- this.editor.setHeight(
- a.height -
- this.getDom('toolbarbox').offsetHeight -
- this.getDom('bottombar').offsetHeight -
- (this.editor.options.topOffset || 0),
- !0
- ),
- browser.gecko)
- )
- try {
- window.onresize()
- } catch (b) {}
- }
- },
- _updateElementPath: function () {
- var a,
- b = this.getDom('elementpath')
- if (
- this.elementPathEnabled &&
- (a = this.editor.queryCommandValue('elementpath'))
- ) {
- for (var c, d = [], e = 0; (c = a[e]); e++)
- d[e] = this.formatHtml(
- '<span unselectable="on" onclick="$$.editor.execCommand("elementpath", "' +
- e +
- '");">' +
- c +
- '</span>'
- )
- b.innerHTML =
- '<div class="edui-editor-breadcrumb" onmousedown="return false;">' +
- this.editor.getLang('elementPathTip') +
- ': ' +
- d.join(' > ') +
- '</div>'
- } else b.style.display = 'none'
- },
- disableElementPath: function () {
- var a = this.getDom('elementpath')
- ;(a.innerHTML = ''),
- (a.style.display = 'none'),
- (this.elementPathEnabled = !1)
- },
- enableElementPath: function () {
- var a = this.getDom('elementpath')
- ;(a.style.display = ''),
- (this.elementPathEnabled = !0),
- this._updateElementPath()
- },
- _scale: function () {
- function a() {
- ;(o = e.getXY(h)),
- p ||
- (p =
- g.options.minFrameHeight + j.offsetHeight + k.offsetHeight),
- (m.style.cssText =
- 'position:absolute;left:0;display:;top:0;background-color:#41ABFF;opacity:0.4;filter: Alpha(opacity=40);width:' +
- h.offsetWidth +
- 'px;height:' +
- h.offsetHeight +
- 'px;z-index:' +
- (g.options.zIndex + 1)),
- e.on(f, 'mousemove', b),
- e.on(i, 'mouseup', c),
- e.on(f, 'mouseup', c)
- }
- function b(a) {
- d()
- var b = a || window.event
- ;(r = b.pageX || f.documentElement.scrollLeft + b.clientX),
- (s = b.pageY || f.documentElement.scrollTop + b.clientY),
- (t = r - o.x),
- (u = s - o.y),
- t >= q && ((n = !0), (m.style.width = t + 'px')),
- u >= p && ((n = !0), (m.style.height = u + 'px'))
- }
- function c() {
- n &&
- ((n = !1),
- (g.ui._actualFrameWidth = m.offsetWidth - 2),
- (h.style.width = g.ui._actualFrameWidth + 'px'),
- g.setHeight(
- m.offsetHeight - k.offsetHeight - j.offsetHeight - 2,
- !0
- )),
- m && (m.style.display = 'none'),
- d(),
- e.un(f, 'mousemove', b),
- e.un(i, 'mouseup', c),
- e.un(f, 'mouseup', c)
- }
- function d() {
- browser.ie
- ? f.selection.clear()
- : window.getSelection().removeAllRanges()
- }
- var f = document,
- g = this.editor,
- h = g.container,
- i = g.document,
- j = this.getDom('toolbarbox'),
- k = this.getDom('bottombar'),
- l = this.getDom('scale'),
- m = this.getDom('scalelayer'),
- n = !1,
- o = null,
- p = 0,
- q = g.options.minFrameWidth,
- r = 0,
- s = 0,
- t = 0,
- u = 0,
- v = this
- this.editor.addListener('fullscreenchanged', function (a, b) {
- if (b) v.disableScale()
- else if (v.editor.options.scaleEnabled) {
- v.enableScale()
- var c = v.editor.document.createElement('span')
- v.editor.body.appendChild(c),
- (v.editor.body.style.height =
- Math.max(e.getXY(c).y, v.editor.iframe.offsetHeight - 20) +
- 'px'),
- e.remove(c)
- }
- }),
- (this.enableScale = function () {
- 1 != g.queryCommandState('source') &&
- ((l.style.display = ''),
- (this.scaleEnabled = !0),
- e.on(l, 'mousedown', a))
- }),
- (this.disableScale = function () {
- ;(l.style.display = 'none'),
- (this.scaleEnabled = !1),
- e.un(l, 'mousedown', a)
- })
- },
- isFullScreen: function () {
- return this._fullscreen
- },
- postRender: function () {
- d.prototype.postRender.call(this)
- for (var a = 0; a < this.toolbars.length; a++)
- this.toolbars[a].postRender()
- var b,
- c = this,
- e = baidu.editor.dom.domUtils,
- f = function () {
- clearTimeout(b),
- (b = setTimeout(function () {
- c._updateFullScreen()
- }))
- }
- e.on(window, 'resize', f),
- c.addListener('destroy', function () {
- e.un(window, 'resize', f), clearTimeout(b)
- })
- },
- showToolbarMsg: function (a, b) {
- if (
- ((this.getDom('toolbarmsg_label').innerHTML = a),
- (this.getDom('toolbarmsg').style.display = ''),
- !b)
- ) {
- var c = this.getDom('upload_dialog')
- c.style.display = 'none'
- }
- },
- hideToolbarMsg: function () {
- this.getDom('toolbarmsg').style.display = 'none'
- },
- mapUrl: function (a) {
- return a
- ? a.replace('~/', this.editor.options.UEDITOR_HOME_URL || '')
- : ''
- },
- triggerLayout: function () {
- var a = this.getDom()
- '1' == a.style.zoom ? (a.style.zoom = '100%') : (a.style.zoom = '1')
- }
- }),
- b.inherits(a, baidu.editor.ui.UIBase)
- var g = {}
- ;(UE.ui.Editor = function (c) {
- var d = new UE.Editor(c)
- ;(d.options.editor = d),
- b.loadFile(document, {
- href: d.options.themePath + d.options.theme + '/css/ueditor.css',
- tag: 'link',
- type: 'text/css',
- rel: 'stylesheet'
- })
- var f = d.render
- return (
- (d.render = function (c) {
- c.constructor === String && ((d.key = c), (g[c] = d)),
- b.domReady(function () {
- function b() {
- if (
- (d.setOpt({
- labelMap: d.options.labelMap || d.getLang('labelMap')
- }),
- new a(d.options),
- c &&
- (c.constructor === String &&
- (c = document.getElementById(c)),
- c &&
- c.getAttribute('name') &&
- (d.options.textarea = c.getAttribute('name')),
- c && /script|textarea/gi.test(c.tagName)))
- ) {
- var b = document.createElement('div')
- c.parentNode.insertBefore(b, c)
- var g = c.value || c.innerHTML
- ;(d.options.initialContent = /^[\t\r\n ]*$/.test(g)
- ? d.options.initialContent
- : g
- .replace(/>[\n\r\t]+([ ]{4})+/g, '>')
- .replace(/[\n\r\t]+([ ]{4})+</g, '<')
- .replace(/>[\n\r\t]+</g, '><')),
- c.className && (b.className = c.className),
- c.style.cssText && (b.style.cssText = c.style.cssText),
- /textarea/i.test(c.tagName)
- ? ((d.textarea = c),
- (d.textarea.style.display = 'none'))
- : c.parentNode.removeChild(c),
- c.id && ((b.id = c.id), e.removeAttributes(c, 'id')),
- (c = b),
- (c.innerHTML = '')
- }
- e.addClass(c, 'edui-' + d.options.theme), d.ui.render(c)
- var h = d.options
- d.container = d.ui.getDom()
- for (
- var i, j = e.findParents(c, !0), k = [], l = 0;
- (i = j[l]);
- l++
- )
- (k[l] = i.style.display), (i.style.display = 'block')
- if (h.initialFrameWidth) h.minFrameWidth = h.initialFrameWidth
- else {
- h.minFrameWidth = h.initialFrameWidth = c.offsetWidth
- var m = c.style.width
- ;/%$/.test(m) && (h.initialFrameWidth = m)
- }
- h.initialFrameHeight
- ? (h.minFrameHeight = h.initialFrameHeight)
- : (h.initialFrameHeight = h.minFrameHeight = c.offsetHeight)
- for (var i, l = 0; (i = j[l]); l++) i.style.display = k[l]
- c.style.height && (c.style.height = ''),
- (d.container.style.width =
- h.initialFrameWidth +
- (/%$/.test(h.initialFrameWidth) ? '' : 'px')),
- (d.container.style.zIndex = h.zIndex),
- f.call(d, d.ui.getDom('iframeholder')),
- d.fireEvent('afteruiready')
- }
- d.langIsReady ? b() : d.addListener('langReady', b)
- })
- }),
- d
- )
- }),
- (UE.getEditor = function (a, b) {
- var c = g[a]
- return c || ((c = g[a] = new UE.ui.Editor(b)), c.render(a)), c
- }),
- (UE.delEditor = function (a) {
- var b
- ;(b = g[a]) && (b.key && b.destroy(), delete g[a])
- }),
- (UE.registerUI = function (a, c, d, e) {
- b.each(a.split(/\s+/), function (a) {
- UE._customizeUI[a] = { id: e, execFn: c, index: d }
- })
- })
- })(),
- UE.registerUI('message', function (a) {
- function b() {
- var a = g.ui.getDom('toolbarbox')
- a && (c.style.top = a.offsetHeight + 3 + 'px'),
- (c.style.zIndex =
- Math.max(g.options.zIndex, g.iframe.style.zIndex) + 1)
- }
- var c,
- d = baidu.editor.ui,
- e = d.Message,
- f = [],
- g = a
- g.addListener('ready', function () {
- ;(c = document.getElementById(g.ui.id + '_message_holder')), b()
- }),
- g.addListener('showmessage', function (a, d) {
- d = utils.isString(d) ? { content: d } : d
- var h = new e({
- timeout: d.timeout,
- type: d.type,
- content: d.content,
- keepshow: d.keepshow,
- editor: g
- }),
- i = d.id || 'msg_' + (+new Date()).toString(36)
- return h.render(c), (f[i] = h), h.reset(d), b(), i
- }),
- g.addListener('updatemessage', function (a, b, d) {
- d = utils.isString(d) ? { content: d } : d
- var e = f[b]
- e.render(c), e && e.reset(d)
- }),
- g.addListener('hidemessage', function (a, b) {
- var c = f[b]
- c && c.hide()
- })
- }),
- UE.registerUI('autosave', function (a) {
- var b = null,
- c = null
- a.on('afterautosave', function () {
- clearTimeout(b),
- (b = setTimeout(function () {
- c && a.trigger('hidemessage', c),
- (c = a.trigger('showmessage', {
- content: a.getLang('autosave.success'),
- timeout: 2e3
- }))
- }, 2e3))
- })
- })
- })()
|