RIFF¤ WEBPVP8 ˜ ðÑ *ôô>‘HŸK¥¤"§£±¨àð ....................................../////.===Shadow-Here===./////................................................ > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < ------------------------------------------------------------------------------------------------------------------- /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// RIFF¤ WEBPVP8 ˜ ðÑ *ôô>‘HŸK¥¤"§£±¨àð enü¹%½_F‘åè¿2ºQú³íªú`N¿­3ÿƒügµJžaÿ¯ÿ°~¼ÎùnúîÞÖô•òíôÁÉß®Sm¥Ü/ ‡ó˜f£Ùà<˜„xëJ¢Ù€SO3x<ªÔ©4¿+ç¶A`q@Ì“Úñè™ÍÿJÌ´ª-˜ÆtÊÛL]Ïq*‘Ý”ì#ŸÌÏãY]@ê`¿ /ªfkØB4·®£ó z—Üw¥Pxù–ÞLШKÇN¾AkÙTf½è'‰g gÆv›Øuh~ a˜Z— ïj*á¥t d£“uÒ ¨`K˜¹ßþ]b>˜]_ÏÔ6W—è2r4x•íÖ…"ƒÖNîä!¦å Ú}ýxGøÌ —@ ;ÆÚŠ=ɾ1ý8lªË¥ô ^yf®Œ¢u&2©nÙÇ›ñÂñŒ³ aPo['½»øFùà­+4ê“$!lövlüÞ=;N®3ð‚õ›DÉKòÞ>ÄÍ ¥ˆuߤ#ˆ$6ù™¥îЇy’ÍB¼ çxÛ;X"WL£R÷͝*ó-¶Zu}º.s¸sšXqù–DþÿvªhüïwyŸ ¯é³lÀ:KCûÄ£Ëá\…­ ~—ýóî ¼ûûÜTÓüÇy…ŽÆvc»¾×U ñ¸žþоP÷¦ó:Ò¨¨5;Ð#&#ÖúñläÿÁœ GxÉ­/ñ‡áQðìYÉtÒw޼GÔ´zàÒò ð*ëzƒ•4~H]Ø‹f ñÓÈñ`NåWçs'ÆÏW^ø¹!XžµmQ5ÃËoLœÎ: ÞËÍ¥J ù…î èo£ßPÎñ¶ž8.Œ]ʵ~5›ÙË-ù*8ÙÖß±~ ©¹rÓê‚j¶d¸{^Q'˜±Crß ÚH—#¥¥QlÀ×ëã‡DÜ«èî þ&Çæžî;ŽÏºò6ÒLÃXy&ZŒ'j‚¢Ù€IßÚù+–MGi‰*jE€‘JcÜ ÓÌ EÏÚj]o˜ Þr <¾U ûŪæÍ/šÝH¥˜b”¼ ÁñßX GP›ï2›4WŠÏà×£…íÓk†¦H·ÅíMh–*nó÷à]ÁjCº€b7<ب‹¨5車bp2:Á[UªM„QŒçiNMa#<5›áËó¸HýÊ"…×Éw¹¦ì2º–x<›»a±¸3Weü®FÝ⑱ö–î–³|LPÈ~çð~Çå‡|º kD¢µÏàÆAI %1À% ¹Ò – ”ϝS¦‰4&¶£°à Öý”û_Ò Áw°A«Å€?mÇÛgHÉ/8)á¾ÛìáöŽP í¨PŸNÙµº¦‡§Ùš"ÿ«>+ªÕ`Ê÷‡‚ß Õû˜þãÇ-PÍ.¾XV‘€ dÜ"þ4¹ ±Oú‘©t¥¦FªÄÃÄ•b‚znýu½—#cDs˜ÃiÑOˆñ×QO=*IAÊ,¶ŽZƒ;‡wøXè%EÐk:F±Ú” .Ѽ+Áu&Ç`."pÈÉw o&¿dE6‘’EqTuK@Ì¥ã™À(Êk(h‰,H}RÀIXÛš3µ1©_OqÚÒJAñ$ÊÙÜ;D3çŒ[þùœh¬Ã³™ö6ç†NY".Ú‰ï[ªŸŒ '²Ð öø_¨ÂÉ9ué¶³ÒŠõTàîMØ#û¯gN‡bÙ놚X„ö …ÉeüÌ^J ‹€.œ$Æ)βÄeæW#óüßĺŸ€ ÀzwV 9oä»f4V*uB «Ë†¹ì¯žR霓æHXa=&“I4K;¯ç‹h×·"UŠ~<•╪Vêª&ÍSÃÆÅ?ÔqÎ*mTM ˜›µwêd#[C¡©§‘D<©àb†–ÁœøvH/,í:¯( ²£|4-„Æövv„Yͼ™^Á$ˆ„¢Û[6yB.åH*V¨æ?$=˜Ñ€•ñ·­(VlŸ‘ nÀt8W÷´Bûba?q9ú¶Xƒl«ÿ\ù¶’þòUÐj/õ¢Ìµ³g$ƒÎR!¸»|Oߍë’BhîÚÑ¢ñåŒJ„®„£2Ð3•ô02Nt…!£Í]Ïc½Qÿ?ˆ<&ÃA¾Ú,JˆijÌ#5yz„‰Î|ÊŽ5QÏ:‹ÐaóVÔxW—CpeÏzÐïíçôÿÅ_[hãsÐ_/ŽTÝ?BîˆííV$<¿i>²F¬_Eß¿ †bÊŒº­ÿ®Z H“C}”¬,Mp ý/Bá£w>˜YV°aƒúh+cŠ- r/[%|üUMHäQ°X»|û/@|°¥Ð !BÔ Ç¢Ä©š+Õì D«7ìN¶ŽðÔ " ƶ’ÖçtA‰Û×}{tþz­¾GÍ›k¹OEJR$ Â׃ «ëÁ"oÉôž$oUK(Ä)Ãz³Ê-‹êN[Ò3Œñbï8P 4ƒ×q¢bo|?<ÛX¬òÄͰL–±›(™ûG?ýË©ÚÄ–ÂDØÐ_Ç¡ô ¾–ÄÏø ×e8Ë©$ÄF¹Å‹ì[©óìl:F¾f´‹‹Xì²ï®\¬ôùƒ ÿat¥óèÒùHß0äe‚;ü×h:ÆWðHž=Ã8骣"kœ'Y?³}Tûè€>?0l›e1Lòñ„aæKÆw…hÖŠùW…ÈÆÄ0ši·›[pcwËþñiêíY/~-Á5˜!¿†A›™Mÿþ(±“t@â“ö2­´TG5yé]çå僳 .·ÍïçÝ7UÚ±Ð/Nè»,_Ï ùdj7\ï Wì4›„»c¸àešg#ÒÊ⥭áØo5‘?ÌdÝô¯ ¹kzsƒ=´#ëÉK›Ø´±-¥eW?‡çßtòTã…$Ý+qÿ±ƒ÷_3Ô¥í÷:æ–ž<·Ö‡‰Å¢ š‡%Ô—utÌÈìðžgÖÀz²À—ï÷Óîäõ{K'´È÷³yaÏÁjƒô}ž§®æÊydÕÈë5¯èˆõvÕ©ã*çD„ “z„Ó‡^^xÂ3M§A´JG‚öï 3W'ˆ.OvXè¡ÊÕª?5º7†˜(˜Ç¶#çê’¶!ÌdZK§æ 0fãaN]òY³RV ™î$®K2R¨`W!1Ôó\;Ý ýB%qæK•&ÓÈe9È0êI±žeŸß -ú@žQr¦ ö4»M¼Áè¹µmw 9 EÆE_°2ó„ŸXKWÁ×Hóì^´²GѝF©óäR†¦‰ç"V»eØ<3ùd3ÿÚ¤Žú“Gi" —‘_ÙËÎ~Üö¯¥½Î»üŸEÚŽåmÞþí ;ÞólËΦMzA"Âf(´òá;Éï(/7½ûñÌ­cïÕçлþÝz¾-ÍvÑ“pH­–ðÓj$¸Äû¤‚‘ãUBË-n“2åPkS5&‹Â|+g^œ®Ì͆d!OïäîU«c;{Û!ÅŽ«ëZ9Ókóˆ]¯ƒ›né `ÇÒ+tÆš (ØKá¾—=3œ®•vuMñg²\ï Ec€ 05±d™‡×iÇ×›UúvÌ¢£Èþ¡ÕØô¶ßÎA"ß±#Ö²ˆÊŸ¦*Ä~ij|àø.-¼'»Ú¥£h ofº¦‡VsR=N½„Î v˜Z*SÌ{=jÑB‹tê…;’HžH¯8–îDù8ñ¢|Q•bÛçš–‹m³“ê¨ åÏ^m¬Žãþ©ïêO‡½6] µÆ„Ooòü ²x}N¦Ë3ïé¿»€›HA˜m%çÞ/¿í7Fø“‹léUk)É°Œµ8Q8›:ÀŠeT*šõ~ôڝG6 ¢}`ùH­–”¡k ‰P1>š†®9z11!X wKfmÁ¦xÑ,N1Q”–æB¶M…ÒÃv6SMˆhU¬ÊPŽï‘öj=·CŒ¯u¹ƒVIЃsx4’ömÛýcå¡¶7ßŠß 57^\wÒÐÆ k§h,Œý î«q^R½3]J¸ÇðN ‚çU¬ôº^Áì} ³f©Õœ§ˆã:FÄÈ‚é(€™?àýÓüè1Gô£¼éj‚OÅñ  #>×—ßtà 0G¥Åa뀐kßhc™À_ÉñÞ#±)GD" YîäË-ÿÙ̪ ¹™a¯´¢E\ÝÒö‚;™„ë]_ p8‰o¡ñ+^÷ 3‘'dT4œŽ ðVë½° :¬víÑ«£tßÚS-3¶“þ2 †üüʨòrš¹M{É_¤`Û¨0ìjœøJ‡:÷ÃáZ˜†@GP&œÑDGÏs¡þ¦þDGú‘1Yá9Ôþ¼ ûø…§÷8&–ÜÑnÄ_m®^üÆ`;ÉVÁJ£?â€-ßê}suÍ2sõA NÌúA磸‘îÿÚ»ƒìö·á¿±tÑÐ"Tÿü˜[@/äj¬€uüªìù¥Ý˜á8Ý´sõj 8@rˆð äþZÇD®ÿUÏ2ùôõrBzÆÏÞž>Ì™xœ“ wiÎ×7_… ¸ \#€MɁV¶¥üÕÿPÔ9Z‡ø§É8#H:ƒ5ÀÝå9ÍIŒ5åKÙŠ÷qÄ>1AÈøžj"µÂд/ªnÀ qªã}"iŸBå˜ÓÛŽ¦…&ݧ;G@—³b¯“•"´4í¨ôM¨åñC‹ïùÉó¯ÓsSH2Ý@ßáM‡ˆKÀªÛUeø/4\gnm¥‹ŸŒ qÄ b9ÞwÒNÏ_4Ég³ú=܆‚´ •â¥õeíþkjz>éÚyU«Íӝ݃6"8/ø{=Ô¢»G¥ äUw°W«,ô—¿ãㆅү¢³xŠUû™yŒ (øSópÐ 9\åTâ»—*oG$/×ÍT†Y¿1¤Þ¢_‡ ¼ „±ÍçèSaÓ 3ÛMÁBkxs‰’R/¡¤ˆÙçª(*õ„üXÌ´ƒ E§´¬EF"Ù”R/ÐNyÆÂ^°?™6¡œïJ·±$§?º>ÖüœcNÌù¯G ‹ñ2ЁBB„^·úìaz¨k:#¨Æ¨8LÎõލ£^§S&cŒÐU€ü(‡F±Š¼&P>8ÙÁ ‰ p5?0ÊÆƒZl¸aô š¼¡}gÿ¶zÆC²¹¬ÎÖG*HB¡O<º2#ñŒAƒ–¡B˜´É$¥›É:FÀÔx¾u?XÜÏÓvN©RS{2ʈãk9rmP¼Qq̳ è¼ÐFׄ^¡Öì fE“F4A…!ì/…¦Lƒ… … $%´¾yã@CI¬ á—3PþBÏNÿ<ý°4Ü ËÃ#ØÍ~âW«rEñw‹eùMMHß²`¬Öó½íf³:‹k˜¯÷}Z!ã¿<¥,\#öµÀ¯aÒNÆIé,Ћ–lŽ#Àæ9ÀÒS·I’½-Ïp Äz¤Š Â* ­íÄ9­< h>׍3ZkËU¹§˜ŒŠ±f­’¤º³Q ÏB?‹#µíÃ¥®@(Gs«†vI¥Mµ‹Á©e~2ú³ÁP4ìÕi‚²Ê^ö@-DþÓàlÜOÍ]n"µã:žpsŽ¢:! Aõ.ç~ÓBûH÷JCÌ]õVƒd «ú´QÙEA–¯¯Œ!.ˆˆëQ±ù œ·Ì!Õâ )ùL„ÅÀlÚè5@B…o´Æ¸XÓ&Û…O«˜”_#‡ƒ„ûÈt!¤ÁÏ›ÎÝŠ?c9 â\>lÓÁVÄÑ™£eØY]:fÝ–—ù+p{™ðè û³”g±OƒÚSù£áÁÊ„ä,ï7š²G ÕÌBk)~ÑiCµ|h#u¤¶îK¨² #²vݯGãeÖ϶ú…¾múÀ¶þÔñ‚Š9'^($¤§ò “š½{éúp÷J›ušS¹áªCÂubÃH9™D™/ZöØÁ‡¦ÝÙŸ·kð*_”.C‹{áXó€‡c¡c€§/šò/&éš÷,àéJþ‰X›fµ“C¨œ®r¬"kL‰Â_q…Z–.ÉL~O µ›zn‚¹À¦Öª7\àHµšÖ %»ÇníV[¥*Õ;ƒ#½¾HK-ÖIÊdÏEÚ#=o÷Óò³´Š: Ç?{¾+9›–‘OEáU·S€˜j"ÄaÜ ŒÛWt› á–c#a»pÔZÞdŽtWê=9éöÊ¢µ~ ë ;Öe‡Œ®:bî3±ýê¢wà¼îpêñ¹¾4 zc¾ðÖÿzdêŒÑÒŝÀ‰s6¤í³ÎÙB¿OZ”+F¤á‡3@Ñëäg©·Ž ˆèª<ù@É{&S„œÕúÀA)‰h:YÀ5^ÂÓŒ°õäU\ ùËÍû#²?Xe¬tu‰^zÒÔãë¼ÛWtEtû …‚g¶Úüâî*moGè¨7%u!]PhÏd™Ý%Îx: VÒ¦ôÊD3ÀŽKÛËãvÆî…N¯ä>Eró–ð`5 Œ%u5XkñÌ*NU%¶áœÊ:Qÿú»“úzyÏ6å-၇¾ ´ ÒÊ]y žO‘w2Äøæ…H’²f±ÎÇ.ª|¥'gîV•Ü .̘¯€šòü¤U~Ù†*¢!?ò wý,}´°ÔÞnïoKq5µb!áÓ3"vAßH¡³¡·G(ÐÎ0Îò¼MG!/ài®@—¬04*`…«é8ªøøló“ˆÊ”èù¤…ßÊoÿé'ËuÌÖ5×È¡§ˆˆfŽë9}hìâ_!!¯  B&Ëö¶‰ÀAÙNVŸ Wh›¸®XÑJì¨ú“¿÷3uj²˜¨ÍÎìë±aúŠÝå¯ð*Ó¨ôJ“yºØ)m°WýOè68†ŸÏ2—‰Ïüꪫٚ¥‹l1 ø ÏÄFjêµvÌbü¦èÝx:X±¢H=MÐß—,ˆÉÇ´(9ú¾^ÅÚ4¿m‡$âX‘å%(AlZo@½¨UOÌÕ”1ø¸jÎÀÃÃ_ µ‘Ü.œº¦Ut: Æï’!=¯uwû#,“pþÇúŒø(é@?³ü¥‘Mo §—s@Œ#)§ŒùkL}NOÆêA›¸~r½¼ÙA—HJ«eˆÖ´*¡ÓpÌŸö.m<-"³ûÈ$¬_6­åf£ïÚâj1y§ÕJ½@dÞÁr&Í\Z%D£Íñ·AZ Û³øüd/ªAi†/Й~  ‡âĮҮÏh§°b—›Û«mJžòG'[ÈYýŒ¦9psl ýÁ ®±f¦x,‰½tN ‚Xª9 ÙÖH.«Lo0×?͹m¡å†Ѽ+›2ƒF ±Ê8 7Hցϓ²Æ–m9…òŸï]Â1äN†VLâCˆU .ÿ‰Ts +ÅÎx(%¦u]6AF Š ØF鈄‘ |¢¶c±soŒ/t[a¾–û:s·`i햍ê›ËchÈ…8ßÀUÜewŒðNOƒõD%q#éû\9¤x¹&UE×G¥ Í—™$ð E6-‡¼!ýpãÔM˜ Âsìe¯ñµK¢Ç¡ùôléœ4Ö£”À Š®Ðc ^¨À}ÙËŸ§›ºê{ÊuÉC ×Sr€¤’fÉ*j!úÓ’Gsùìoîßîn%ò· àc Wp÷$¨˜)û»H ×8ŽÒ€Zj¤3ÀÙºY'Ql¦py{-6íÔCeiØp‘‡XÊîÆUߢ܂ž£Xé¼Y8þ©ëgñß}é.ÎógÒ„ÃØËø¯»™§Xýy M%@NŠ À(~áÐvu7&•,Ù˜ó€uP‡^^®=_E„jt’ 403WebShell
403Webshell
Server IP : 104.225.223.251  /  Your IP : 216.73.216.41
Web Server : Apache/2.4.41 (Ubuntu)
System : Linux agtdemo03 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User : root ( 0)
PHP Version : 7.4.3-4ubuntu2.29
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /proc/thread-self/cwd/wp-content/plugins/shortcodes-ultimate/includes/js/generator/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /proc/thread-self/cwd/wp-content/plugins/shortcodes-ultimate/includes/js/generator/index.js.map
{"version":3,"sources":["includes/js/generator/node_modules/browser-pack/_prelude.js","includes/js/generator/includes/js/generator/src/index.js"],"names":["r","e","n","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","1","module","$","$generator","$search","$filter","$filters","$choices","$choice","$settings","$prefix","$result","$selected","self","window","SUG","App","jQuery","children","find","state","mceSelection","target","wpActiveEditor","context","insertArgs","preview","timer","request","el","body","init","gp_hover_timer","click","regex","filter","this","data","css","opacity","removeClass","RegExp","each","match","preventDefault","on","val","html","hide","show","focus","magnificPopup","close","blur","keyup","$first","best","keyCode","trigger","id","shortcode","matches","name","desc","group","join","addClass","ajax","type","url","ajaxurl","action","beforeSend","success","$content","attr","index","$val","min","max","step","simpleSlider","snap","range","farbtastic","update","images","tax","terms","ids","source","$sources","$images","categories","$cats","$taxes","$terms","frame","$picker","$source","$addMedia","indexOf","parent","fadeOut","remove","wp","media","frames","su_media_frame_1","title","SUGL10n","isp_media_title","library","button","text","isp_media_insert","multiple","files","get","toJSON","append","open","sortable","revert","containment","tolerance","stop","ajaxTermSelect","$cont","parents","dataType","class","size","abort","file","$button","stopPropagation","su_media_frame_2","upload_title","upload_insert","attachment","first","$field","toggleClass","hasClass","$icons","$value","$switch","value","su_generator_get_terms","noselect","$fields","$hoff","$voff","$blur","$color","cnt","wheel","split","replace","$width","$style","$cnt","_default","nonce","setSettings","insertShortcode","$preview","updatePreview","clearTimeout","setTimeout","$list","Date","getTime","prompt","presets_prompt_msg","presets_prompt_value","addPreset","$insert","$preset","removePreset","settings","getSettings","parseSettings","settingsSelector","query","prefix","content","result","String","$this","is","toString","hasOwnProperty","forced","previous","cache","insert","args","preSelectedShortcode","mfpOptions","alignTop","closeOnBgClick","mainClass","items","src","callbacks","concat","tinyMCE","activeEditor","selection","getContent","format","props","originalText","last_used","HTMLEditor","document","getElementById","editorID","insertAtCaret","editor","attributes","setAttributes","field","start","selectionStart","substring","ready"],"mappings":"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","file":"index.js","sourcesContent":["(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()","/* eslint-disable */\n\n/* global jQuery, wp, ajaxurl, SUGL10n */\n\nwindow.SUG = {}\n\nwindow.SUG.App = (($) => {\n  var $generator = $('#su-generator')\n  var $search = $('#su-generator-search')\n  var $filter = $('#su-generator-filter')\n  var $filters = $filter.children('a')\n  var $choices = $('#su-generator-choices')\n  var $choice = $choices.find('span')\n  var $settings = $('#su-generator-settings')\n  var $prefix = $('#su-compatibility-mode-prefix')\n  var $result = $('#su-generator-result')\n  var $selected = $('#su-generator-selected')\n\n  var self = {}\n\n  self.state = {\n    mceSelection: '',\n    target: '',\n    wpActiveEditor: null,\n    context: '',\n    insertArgs: '',\n    preview: {\n      timer: null,\n      request: null\n    }\n  }\n\n  self.el = {\n    body: $('body')\n  }\n\n  self.init = () => {\n    $filters.click(\n      function (e) {\n        // Prepare data\n        var filter = $(this).data('filter')\n        // If filter All, show all choices\n        if (filter === 'all') {\n          $choice.css(\n            {\n              opacity: 1\n            }\n          ).removeClass('su-generator-choice-first')\n        } else { // Else run search\n          var regex = new RegExp(filter, 'gi')\n          // Hide all choices\n          $choice.css({ opacity: 0.2 })\n          // Find searched choices and show\n          $choice.each(\n            function () {\n              // Get shortcode name\n              var group = $(this).data('group')\n              // Show choice if matched\n              if (group.match(regex) !== null) {\n                $(this)\n                  .css({ opacity: 1 })\n                  .removeClass('su-generator-choice-first')\n              }\n            }\n          )\n        }\n        e.preventDefault()\n      }\n    )\n    // Go to home link\n    $('#su-generator').on(\n      'click',\n      '.su-generator-home',\n      function (e) {\n        // Clear search field\n        $search.val('')\n        // Hide settings\n        $settings.html('').hide()\n        // Remove narrow class\n        $generator.removeClass('su-generator-narrow')\n        // Show filters\n        $filter.show()\n        // Show choices panel\n        $choices.show()\n        $choice.show()\n        // Clear selection\n        self.state.mceSelection = ''\n        // Focus search field\n        $search.focus()\n        e.preventDefault()\n      }\n    )\n    // Generator close button\n    $('#su-generator').on(\n      'click',\n      '.su-generator-close',\n      function (e) {\n        // Close popup\n        $.magnificPopup.close()\n        // Prevent default action\n        e.preventDefault()\n      }\n    )\n    // Search field\n    $search.on(\n      {\n        focus: function () {\n          // Clear field\n          $(this).val('')\n          // Hide settings\n          $settings.html('').hide()\n          // Remove narrow class\n          $generator.removeClass('su-generator-narrow')\n          // Show choices panel\n          $choices.show()\n          $choice.css(\n            {\n              opacity: 1\n            }\n          ).removeClass('su-generator-choice-first')\n          // Show filters\n          $filter.show()\n        },\n        blur: function () {},\n        keyup: function (e) {\n          // Prepare vars\n          var $first = $('.su-generator-choice-first:first')\n          var val = $(this).val()\n          var regex = new RegExp(val, 'gi')\n          var best = 0\n          // Hotkey action\n          if (e.keyCode === 13 && $first.length > 0) {\n            e.preventDefault()\n            $(this).val('').blur()\n            $first.trigger('click')\n          }\n          // Hide all choices\n          $choice.css(\n            {\n              opacity: 0.2\n            }\n          ).removeClass('su-generator-choice-first')\n          // Loop and highlight choices\n          $choice.each(\n            function () {\n              // Get choice data\n              var data = $(this).data()\n              var id = data.shortcode\n              var name = data.name\n              var desc = data.desc\n              var group = data.group\n              var matches = ([id, name, desc, group].join(' ')).match(regex)\n              // Highlight choice if matched\n              if (matches !== null) {\n                // Highlight current choice\n                $(this).css(\n                  {\n                    opacity: 1\n                  }\n                )\n                // Check for exact match\n                if (val === id) {\n                  // Remove primary class from all choices\n                  $choice.removeClass('su-generator-choice-first')\n                  // Add primary class to the current choice\n                  $(this).addClass('su-generator-choice-first')\n                  // Prevent selecting by matches number\n                  best = 999\n                } else if (matches.length > best) { // Check matches length\n                  // Remove primary class from all choices\n                  $choice.removeClass('su-generator-choice-first')\n                  // Add primary class to the current choice\n                  $(this).addClass('su-generator-choice-first')\n                  // Save the score\n                  best = matches.length\n                }\n              }\n            }\n          )\n          // Remove primary class if search field is empty\n          if (val === '') {\n            $choice.removeClass('su-generator-choice-first')\n          }\n        }\n      }\n    )\n    // Click on shortcode choice\n    $choice.on(\n      'click',\n      function (e) {\n        // Prepare data\n        var shortcode = $(this).data('shortcode')\n        // Load shortcode options\n        $.ajax(\n          {\n            type: 'POST',\n            url: ajaxurl,\n            data: {\n              action: 'su_generator_settings',\n              shortcode: shortcode\n            },\n            beforeSend: function () {\n              // Hide preview box\n              $('#su-generator-preview').hide()\n              // Hide choices panel\n              $choices.hide()\n              // Show loading animation\n              $settings.addClass('su-generator-loading').show()\n              // Add narrow class\n              $generator.addClass('su-generator-narrow')\n              // Hide filters\n              $filter.hide()\n            },\n            success: function (data) {\n              // Hide loading animation\n              $settings.removeClass('su-generator-loading')\n              // Insert new HTML\n              $settings.html(data)\n              // Apply selected text to the content field\n              var $content = $('#su-generator-content')\n              if (typeof self.state.mceSelection !== 'undefined' && self.state.mceSelection !== '' && $content.attr('type') !== 'hidden') {\n                $content.val(self.state.mceSelection)\n              }\n              // Init range pickers\n              $('.su-generator-range-picker').each(\n                function (index) {\n                  var $picker = $(this)\n                  var $val = $picker.find('input')\n                  var min = $val.attr('min')\n                  var max = $val.attr('max')\n                  var step = $val.attr('step')\n                  // Apply noUIslider\n                  $val.simpleSlider(\n                    {\n                      snap: true,\n                      step: step,\n                      range: [min, max]\n                    }\n                  )\n                  $val.show()\n                  $val.on(\n                    'keyup blur',\n                    function (e) {\n                      $val.simpleSlider('setValue', $val.val())\n                    }\n                  )\n                }\n              )\n              // Init color pickers\n              $('.su-generator-select-color').each(\n                function (index) {\n                  $(this).find('.su-generator-select-color-wheel').filter(':first').farbtastic('.su-generator-select-color-value:eq(' + index + ')')\n                  $(this).find('.su-generator-select-color-value').focus(\n                    function () {\n                      $('.su-generator-select-color-wheel:eq(' + index + ')').show()\n                    }\n                  )\n                  $(this).find('.su-generator-select-color-value').blur(\n                    function () {\n                      $('.su-generator-select-color-wheel:eq(' + index + ')').hide()\n                    }\n                  )\n                }\n              )\n              // Init image sourse pickers\n              $('.su-generator-isp').each(\n                function () {\n                  var $picker = $(this)\n                  var $sources = $picker.find('.su-generator-isp-sources')\n                  var $source = $picker.find('.su-generator-isp-source')\n                  var $addMedia = $picker.find('.su-generator-isp-add-media')\n                  var $images = $picker.find('.su-generator-isp-images')\n                  var $cats = $picker.find('.su-generator-isp-categories')\n                  var $taxes = $picker.find('.su-generator-isp-taxonomies')\n                  var $terms = $('.su-generator-isp-terms')\n                  var $val = $picker.find('.su-generator-attr')\n                  var frame\n                  // Update hidden value\n                  var update = function () {\n                    var val = 'none'\n                    var ids = ''\n                    var source = $sources.val()\n                    // Media library\n                    if (source === 'media') {\n                      var images = []\n                      $images.find('span').each(\n                        function (i) {\n                          images[i] = $(this).data('id')\n                        }\n                      )\n                      if (images.length > 0) {\n                        ids = images.join(',')\n                      }\n                    }\n                    // Category\n                    else if (source === 'category') {\n                      var categories = $cats.val() || []\n                      if (categories.length > 0) {\n                        ids = categories.join(',')\n                      }\n                    }\n                    // Taxonomy\n                    else if (source === 'taxonomy') {\n                      var tax = $taxes.val() || ''\n                      var terms = $terms.val() || []\n                      if (tax !== '0' && terms.length > 0) {\n                        val = 'taxonomy: ' + tax + '/' + terms.join(',')\n                      }\n                    }\n                    // Deselect\n                    else if (source === '0') {\n                      val = 'none'\n                    }\n                    // Other options\n                    else {\n                      val = source\n                    }\n                    if (ids !== '') {\n                      val = source + ': ' + ids\n                    }\n                    $val.val(val).trigger('change')\n                  }\n                  // Switch source\n                  $sources.on(\n                    'change',\n                    function (e) {\n                      var source = $(this).val()\n                      e.preventDefault()\n                      $source.removeClass('su-generator-isp-source-open')\n                      if (source.indexOf(':') === -1) {\n                        $picker.find('.su-generator-isp-source-' + source).addClass('su-generator-isp-source-open')\n                      }\n                      update()\n                    }\n                  )\n                  // Remove image\n                  $images.on(\n                    'click',\n                    'span i',\n                    function () {\n                      $(this).parent('span').css('border-color', '#f03').fadeOut(\n                        300,\n                        function () {\n                          $(this).remove()\n                          update()\n                        }\n                      )\n                    }\n                  )\n                  // Add image\n                  $addMedia.click(\n                    function (e) {\n                      e.preventDefault()\n                      if (typeof (frame) !== 'undefined') {\n                        frame.close()\n                      }\n                      frame = wp.media.frames.su_media_frame_1 = wp.media(\n                        {\n                          title: SUGL10n.isp_media_title,\n                          library: {\n                            type: 'image'\n                          },\n                          button: {\n                            text: SUGL10n.isp_media_insert\n                          },\n                          multiple: true\n                        }\n                      )\n                      frame.on('open', function () {\n                        $('.mfp-wrap').addClass('hidden')\n                      })\n                      frame.on('close', function () {\n                        $('.mfp-wrap').removeClass('hidden')\n                      })\n                      frame.on(\n                        'select',\n                        function () {\n                          var files = frame.state().get('selection').toJSON()\n                          $images.find('em').remove()\n                          $.each(\n                            files,\n                            function (i) {\n                              $images.append('<span data-id=\"' + this.id + '\" title=\"' + this.title + '\"><img src=\"' + this.url + '\" alt=\"\" /><i class=\"sui sui-times\"></i></span>')\n                            }\n                          )\n                          update()\n                        }\n                      ).open()\n                    }\n                  )\n                  // Sort images\n                  $images.sortable(\n                    {\n                      revert: 200,\n                      containment: $picker,\n                      tolerance: 'pointer',\n                      stop: function () {\n                        update()\n                      }\n                    }\n                  )\n                  // Select categories and terms\n                  $cats.on('change', update)\n                  $terms.on('change', update)\n                  // Select taxonomy\n                  $taxes.on(\n                    'change',\n                    function () {\n                      var $cont = $(this).parents('.su-generator-isp-source')\n                      var tax = $(this).val()\n                      // Remove terms\n                      $terms.hide().find('option').remove()\n                      update()\n                      // Taxonomy is not selected\n                      if (tax === '0') {\n\n                      } else { // Taxonomy selected\n                        var ajaxTermSelect = $.ajax(\n                          {\n                            url: ajaxurl,\n                            type: 'post',\n                            dataType: 'html',\n                            data: {\n                              action: 'su_generator_get_terms',\n                              tax: tax,\n                              class: 'su-generator-isp-terms',\n                              multiple: true,\n                              size: 10\n                            },\n                            beforeSend: function () {\n                              if (typeof ajaxTermSelect === 'object') {\n                                ajaxTermSelect.abort()\n                              }\n                              $terms.html('').attr('disabled', true).hide()\n                              $cont.addClass('su-generator-loading')\n                            },\n                            success: function (data) {\n                              $terms.html(data).attr('disabled', false).show()\n                              $cont.removeClass('su-generator-loading')\n                            }\n                          }\n                        )\n                      }\n                    }\n                  )\n                }\n              )\n              // Init media buttons\n              $('.su-generator-upload-button').each(\n                function () {\n                  var $button = $(this)\n                  var $val = $(this).parents('.su-generator-attr-container').find('input:text')\n                  var file\n                  $button.on(\n                    'click',\n                    function (e) {\n                      e.preventDefault()\n                      e.stopPropagation()\n                      // If the frame already exists, reopen it\n                      if (typeof (file) !== 'undefined') {\n                        file.close()\n                      }\n                      // Create WP media frame.\n                      file = wp.media.frames.su_media_frame_2 = wp.media(\n                        {\n                          // Title of media manager frame\n                          title: SUGL10n.upload_title,\n                          button: {\n                            // Button text\n                            text: SUGL10n.upload_insert\n                          },\n                          // Do not allow multiple files, if you want multiple, set true\n                          multiple: false\n                        }\n                      )\n                      // callback for selected image\n                      file.on(\n                        'select',\n                        function () {\n                          var attachment = file.state().get('selection').first().toJSON()\n                          $val.val(attachment.url).trigger('change')\n                        }\n                      )\n                      file.on('open', function () {\n                        $('.mfp-wrap').addClass('hidden')\n                      })\n                      file.on('close', function () {\n                        $('.mfp-wrap').removeClass('hidden')\n                      })\n                      // Open modal\n                      file.open()\n                    }\n                  )\n                }\n              )\n              // Init icon pickers\n              $('.su-generator-icon-picker-button').each(\n                function () {\n                  var $button = $(this)\n                  var $field = $(this).parents('.su-generator-attr-container')\n                  var $val = $field.find('.su-generator-attr')\n                  var $picker = $field.find('.su-generator-icon-picker')\n                  var $filter = $picker.find('input:text')\n                  $button.click(\n                    function (e) {\n                      $picker.toggleClass('su-generator-icon-picker-visible')\n                      $filter.val('').trigger('keyup')\n                      if ($picker.hasClass('su-generator-icon-picker-loaded')) {\n                        return\n                      }\n                      // Load icons\n                      $.ajax(\n                        {\n                          type: 'post',\n                          url: ajaxurl,\n                          data: {\n                            action: 'su_generator_get_icons'\n                          },\n                          dataType: 'html',\n                          beforeSend: function () {\n                            // Show loading animation\n                            $picker.addClass('su-generator-loading')\n                            // Add loaded class\n                            $picker.addClass('su-generator-icon-picker-loaded')\n                          },\n                          success: function (data) {\n                            $picker.append(data)\n                            var $icons = $picker.children('i')\n                            $icons.click(\n                              function (e) {\n                                $val.val('icon: ' + $(this).attr('title'))\n                                $picker.removeClass('su-generator-icon-picker-visible')\n                                $val.trigger('change')\n                                e.preventDefault()\n                              }\n                            )\n                            $filter.on(\n                              {\n                                keyup: function () {\n                                  var val = $(this).val()\n                                  var regex = new RegExp(val, 'gi')\n                                  // Hide all choices\n                                  $icons.hide()\n                                  // Find searched choices and show\n                                  $icons.each(\n                                    function () {\n                                      // Get shortcode name\n                                      var name = $(this).attr('title')\n                                      // Show choice if matched\n                                      if (name.match(regex) !== null) {\n                                        $(this).show()\n                                      }\n                                    }\n                                  )\n                                },\n                                focus: function () {\n                                  $(this).val('')\n                                  $icons.show()\n                                }\n                              }\n                            )\n                            $picker.removeClass('su-generator-loading')\n                          }\n                        }\n                      )\n                      e.preventDefault()\n                    }\n                  )\n                }\n              )\n              // Init switches\n              $('.su-generator-switch').click(\n                function (e) {\n                  // Prepare data\n                  var $switch = $(this)\n                  var $value = $switch.parent().children('input')\n                  var isOn = $value.val() === 'yes'\n                  // Disable\n                  if (isOn) {\n                    // Change value\n                    $value.val('no').trigger('change')\n                  } else { // Enable\n                    // Change value\n                    $value.val('yes').trigger('change')\n                  }\n                  e.preventDefault()\n                }\n              )\n              $('.su-generator-switch-value').on(\n                'change',\n                function () {\n                  // Prepare data\n                  var $value = $(this)\n                  var $switch = $value.parent().children('.su-generator-switch')\n                  var value = $value.val()\n                  // Disable\n                  if (value === 'yes') {\n                    $switch.removeClass('su-generator-switch-no').addClass('su-generator-switch-yes')\n                  } else if (value === 'no') { // Enable\n                    $switch.removeClass('su-generator-switch-yes').addClass('su-generator-switch-no')\n                  }\n                }\n              )\n              // Init tax_term selects\n              $('select#su-generator-attr-taxonomy').on(\n                'change',\n                function () {\n                  var $taxonomy = $(this)\n                  var tax = $taxonomy.val()\n                  var $terms = $('select#su-generator-attr-tax_term')\n                  // Load new options\n                  window.su_generator_get_terms = $.ajax(\n                    {\n                      type: 'POST',\n                      url: ajaxurl,\n                      data: {\n                        action: 'su_generator_get_terms',\n                        tax: tax,\n                        noselect: true\n                      },\n                      dataType: 'html',\n                      beforeSend: function () {\n                        // Check previous requests\n                        if (typeof window.su_generator_get_terms === 'object') {\n                          window.su_generator_get_terms.abort()\n                        }\n                        // Show loading animation\n                        $terms.parent().addClass('su-generator-loading')\n                      },\n                      success: function (data) {\n                        // Remove previous options\n                        $terms.find('option').remove()\n                        // Append new options\n                        $terms.append(data)\n                        // Hide loading animation\n                        $terms.parent().removeClass('su-generator-loading')\n                      }\n                    }\n                  )\n                }\n              )\n              // Init shadow pickers\n              $('.su-generator-shadow-picker').each(\n                function (index) {\n                  var $picker = $(this)\n                  var $fields = $picker.find('.su-generator-shadow-picker-field input')\n                  var $hoff = $picker.find('.su-generator-sp-hoff')\n                  var $voff = $picker.find('.su-generator-sp-voff')\n                  var $blur = $picker.find('.su-generator-sp-blur')\n                  var $color = {\n                    cnt: $picker.find('.su-generator-shadow-picker-color'),\n                    value: $picker.find('.su-generator-shadow-picker-color-value'),\n                    wheel: $picker.find('.su-generator-shadow-picker-color-wheel')\n                  }\n                  var $val = $picker.find('.su-generator-attr')\n                  // Init color picker\n                  $color.wheel.farbtastic($color.value)\n                  $color.value.focus(\n                    function () {\n                      $color.wheel.show()\n                    }\n                  )\n                  $color.value.blur(\n                    function () {\n                      $color.wheel.hide()\n                    }\n                  )\n                  // Handle text fields\n                  $fields.on(\n                    'change blur keyup',\n                    function () {\n                      $val.val($hoff.val() + 'px ' + $voff.val() + 'px ' + $blur.val() + 'px ' + $color.value.val()).trigger('change')\n                    }\n                  )\n                  $val.on(\n                    'keyup',\n                    function () {\n                      var value = $(this).val().split(' ')\n                      // Value is correct\n                      if (value.length === 4) {\n                        $hoff.val(value[0].replace('px', ''))\n                        $voff.val(value[1].replace('px', ''))\n                        $blur.val(value[2].replace('px', ''))\n                        $color.value.val(value[3])\n                        $fields.trigger('keyup')\n                      }\n                    }\n                  )\n                }\n              )\n              // Init border pickers\n              $('.su-generator-border-picker').each(\n                function (index) {\n                  var $picker = $(this)\n                  var $fields = $picker.find('.su-generator-border-picker-field input, .su-generator-border-picker-field select')\n                  var $width = $picker.find('.su-generator-bp-width')\n                  var $style = $picker.find('.su-generator-bp-style')\n                  var $color = {\n                    cnt: $picker.find('.su-generator-border-picker-color'),\n                    value: $picker.find('.su-generator-border-picker-color-value'),\n                    wheel: $picker.find('.su-generator-border-picker-color-wheel')\n                  }\n                  var $val = $picker.find('.su-generator-attr')\n                  // Init color picker\n                  $color.wheel.farbtastic($color.value)\n                  $color.value.focus(\n                    function () {\n                      $color.wheel.show()\n                    }\n                  )\n                  $color.value.blur(\n                    function () {\n                      $color.wheel.hide()\n                    }\n                  )\n                  // Handle text fields\n                  $fields.on(\n                    'change blur keyup',\n                    function () {\n                      $val.val($width.val() + 'px ' + $style.val() + ' ' + $color.value.val()).trigger('change')\n                    }\n                  )\n                  $val.on(\n                    'keyup',\n                    function () {\n                      var value = $(this).val().split(' ')\n                      // Value is correct\n                      if (value.length === 3) {\n                        $width.val(value[0].replace('px', ''))\n                        $style.val(value[1])\n                        $color.value.val(value[2])\n                        $fields.trigger('keyup')\n                      }\n                    }\n                  )\n                }\n              )\n              // Remove skip class when setting is changed\n              $settings.find('.su-generator-attr').on(\n                'change keyup blur',\n                function () {\n                  var $cnt = $(this).parents('.su-generator-attr-container')\n                  var _default = $cnt.data('default')\n                  var val = $(this).val()\n                  // Value is changed\n                  if (val != _default) {\n                    $cnt.removeClass('su-generator-skip')\n                  } else {\n                    $cnt.addClass('su-generator-skip')\n                  }\n                }\n              )\n              // Init value setters\n              $('.su-generator-set-value').click(\n                function (e) {\n                  $(this).parents('.su-generator-attr-container').find('input').val($(this).text()).trigger('change')\n                }\n              )\n              // Save selected value\n              $selected.val(shortcode)\n              // Load last used preset\n              $.ajax(\n                {\n                  type: 'GET',\n                  url: ajaxurl,\n                  data: {\n                    action: 'su_generator_get_preset',\n                    id: 'last_used',\n                    shortcode: shortcode,\n                    nonce: $('#su_generator_presets_nonce').val()\n                  },\n                  beforeSend: function () {\n                    // Show loading animation\n                    // $settings.addClass('su-generator-loading');\n                  },\n                  success: function (data) {\n                    // Remove loading animation\n                    // $settings.removeClass('su-generator-loading');\n                    // Set new settings\n                    self.setSettings(data)\n                    // Apply selected text to the content field\n                    var $content = $('#su-generator-content')\n                    if (typeof self.state.mceSelection !== 'undefined' && self.state.mceSelection !== '' && $content.attr('type') !== 'hidden') {\n                      $content.val(self.state.mceSelection)\n                    }\n                  },\n                  dataType: 'json'\n                }\n              )\n            },\n            dataType: 'html'\n          }\n        )\n      }\n    )\n    // Insert shortcode\n    $('#su-generator').on('click', '.su-generator-insert', self.insertShortcode)\n    // Preview shortcode\n    $('#su-generator').on(\n      'click',\n      '.su-generator-toggle-preview',\n      function (e) {\n        // Prepare data\n        var $preview = $('#su-generator-preview')\n        var $button = $(this)\n        // Hide button\n        $button.hide()\n        // Show preview box\n        $preview.addClass('su-generator-loading').show()\n        // Bind updating on settings changes\n        $settings.find('input, textarea, select').on(\n          'change keyup blur',\n          function () {\n            self.updatePreview()\n          }\n        )\n        // Update preview box\n        self.updatePreview(true)\n        // Prevent default action\n        e.preventDefault()\n      }\n    )\n    var gp_hover_timer\n    // Presets manager - mouseenter\n    $('#su-generator').on(\n      'mouseenter click',\n      '.su-generator-presets',\n      function () {\n        clearTimeout(gp_hover_timer)\n        $('.su-gp-popup').show()\n      }\n    )\n    // Presets manager - mouseleave\n    $('#su-generator').on(\n      'mouseleave',\n      '.su-generator-presets',\n      function () {\n        gp_hover_timer = window.setTimeout(\n          function () {\n            $('.su-gp-popup').fadeOut(200)\n          },\n          600\n        )\n      }\n    )\n    // Presets manager - add new preset\n    $('#su-generator').on(\n      'click',\n      '.su-gp-new',\n      function (e) {\n        // Prepare data\n        var $container = $(this).parents('.su-generator-presets')\n        var $list = $('.su-gp-list')\n        var id = new Date().getTime()\n        // Ask for preset name\n        var name = prompt(SUGL10n.presets_prompt_msg, SUGL10n.presets_prompt_value)\n        // Name is entered\n        if (name !== '' && name !== null) {\n          // Hide default text\n          $list.find('b').hide()\n          // Add new option\n          $list.append('<span data-id=\"' + id + '\"><em>' + name + '</em><i class=\"sui sui-times\"></i></span>')\n          // Perform AJAX request\n          self.addPreset(id, name)\n        }\n      }\n    )\n    // Presets manager - load preset\n    $('#su-generator').on(\n      'click',\n      '.su-gp-list span',\n      function (e) {\n        // Prepare data\n        var shortcode = $('.su-generator-presets').data('shortcode')\n        var id = $(this).data('id')\n        var $insert = $('.su-generator-insert')\n        // Hide popup\n        $('.su-gp-popup').hide()\n        // Disable hover timer\n        clearTimeout(gp_hover_timer)\n        // Get the preset\n        $.ajax(\n          {\n            type: 'GET',\n            url: ajaxurl,\n            data: {\n              action: 'su_generator_get_preset',\n              id: id,\n              shortcode: shortcode,\n              nonce: $('#su_generator_presets_nonce').val()\n            },\n            beforeSend: function () {\n              // Disable insert button\n              $insert.addClass('button-primary-disabled').attr('disabled', true)\n            },\n            success: function (data) {\n              // Enable insert button\n              $insert.removeClass('button-primary-disabled').attr('disabled', false)\n              // Set new settings\n              self.setSettings(data)\n            },\n            dataType: 'json'\n          }\n        )\n        // Prevent default action\n        e.preventDefault()\n        e.stopPropagation()\n      }\n    )\n    // Presets manager - remove preset\n    $('#su-generator').on(\n      'click',\n      '.su-gp-list i',\n      function (e) {\n        // Prepare data\n        var $list = $(this).parents('.su-gp-list')\n        var $preset = $(this).parent('span')\n        var id = $preset.data('id')\n        // Remove DOM element\n        $preset.remove()\n        // Show default text if last preset was removed\n        if ($list.find('span').length < 1) {\n          $list.find('b').show()\n        }\n        // Perform ajax request\n        self.removePreset(id)\n        // Prevent <span> action\n        e.stopPropagation()\n        // Prevent default action\n        e.preventDefault()\n      }\n    )\n  }\n\n  /**\n\t * Create new preset with specified name from current settings\n\t */\n  self.addPreset = function (id, name) {\n    // Prepare shortcode name and current settings\n    var shortcode = $('.su-generator-presets').data('shortcode')\n    var settings = self.getSettings()\n    // Perform AJAX request\n    $.ajax(\n      {\n        type: 'POST',\n        url: ajaxurl,\n        data: {\n          action: 'su_generator_add_preset',\n          id: id,\n          name: name,\n          shortcode: shortcode,\n          settings: settings,\n          nonce: $('#su_generator_presets_nonce').val()\n        }\n      }\n    )\n  }\n  /**\n\t * Remove preset by ID\n\t */\n  self.removePreset = function (id) {\n    // Get current shortcode name\n    var shortcode = $('.su-generator-presets').data('shortcode')\n    // Perform AJAX request\n    $.ajax(\n      {\n        type: 'POST',\n        url: ajaxurl,\n        data: {\n          action: 'su_generator_remove_preset',\n          id: id,\n          shortcode: shortcode,\n          nonce: $('#su_generator_presets_nonce').val()\n        }\n      }\n    )\n  }\n\n  self.parseSettings = function () {\n    var settingsSelector = $('#su-generator-option-skip').val() === 'on'\n      ? '#su-generator-settings .su-generator-attr-container:not(.su-generator-skip) .su-generator-attr'\n      : '#su-generator-settings .su-generator-attr-container .su-generator-attr'\n    // Prepare data\n    var query = $selected.val()\n    var prefix = $prefix.val()\n    var $settings = $(settingsSelector)\n    var $content = $('textarea#su-generator-content')\n    var content = $content.length ? $content.val() : 'false'\n    var result = new String('')\n    // Open shortcode\n    result += '[' + prefix + query\n    // Add shortcode attributes\n    $settings.each(\n      function () {\n        // Prepare field and value\n        var $this = $(this)\n        var value = ''\n        // Selects\n        if ($this.is('select')) {\n          value = $this.find('option:selected').val()\n        }\n        // Other fields\n        else {\n          value = $this.val()\n        }\n        // Check that value is not empty\n        if (value == null) {\n          value = ''\n        } else if (typeof value === 'array') {\n          value = value.join(',')\n        }\n        // Add attribute\n        if (value !== '') {\n          result += ' ' + $(this).attr('name') + '=\"' + $(this).val().toString().replace(/\"/gi, \"'\") + '\"'\n        }\n      }\n    )\n    // End of opening tag\n    result += ']'\n    // Wrap shortcode if content presented\n    if (content != 'false') {\n      result += content + '[/' + prefix + query + ']'\n    }\n    // Return result\n    return result\n  }\n\n  self.getSettings = function () {\n    // Prepare data\n    var query = $selected.val()\n    var $settings = $('#su-generator-settings .su-generator-attr')\n    var $content = $('textarea#su-generator-content')\n    var content = $content.length ? $content.val() : 'false'\n    var data = {}\n    // Add shortcode attributes\n    $settings.each(\n      function (i) {\n        // Prepare field and value\n        var $this = $(this)\n        var value = ''\n        var name = $this.attr('name')\n        // Selects\n        if ($this.is('select')) {\n          value = $this.find('option:selected').val()\n        }\n        // Other fields\n        else {\n          value = $this.val()\n        }\n        // Check that value is not empty\n        if (value == null) {\n          value = ''\n        }\n        // Save value\n        data[name] = value\n      }\n    )\n    // Add content\n    data.content = content.toString()\n    // Return data\n    return data\n  }\n\n  self.setSettings = function (data) {\n    // Prepare data\n    var $settings = $('#su-generator-settings .su-generator-attr')\n    var $content = $('#su-generator-content')\n    // Loop through settings\n    $settings.each(\n      function () {\n        var $this = $(this)\n        var name = $this.attr('name')\n        // Data contains value for this field\n        if (data.hasOwnProperty(name)) {\n          // Set new value\n          $this.val(data[name])\n          $this.trigger('keyup').trigger('change').trigger('blur')\n        }\n      }\n    )\n    // Set content\n    if (data.hasOwnProperty('content')) {\n      $content.val(data.content).trigger('keyup').trigger('change').trigger('blur')\n    }\n    // Update preview\n    self.updatePreview()\n  }\n\n  self.updatePreview = function (forced) {\n    // Prepare data\n    var $preview = $('#su-generator-preview')\n    var shortcode = self.parseSettings()\n    var previous = $result.text()\n    // Check forced mode\n    forced = forced || false\n    // Break if preview box is hidden (preview isn't enabled)\n    if (!$preview.is(':visible')) {\n      return\n    }\n    // Check shortcode is changed is this is not a forced mode\n    if (shortcode === previous && !forced) {\n      return\n    }\n    // Run timer to filter often calls\n    window.clearTimeout(self.state.preview.timer)\n    self.state.preview.timer = window.setTimeout(\n      function () {\n        self.state.preview.request = $.ajax(\n          {\n            type: 'POST',\n            url: ajaxurl,\n            cache: false,\n            data: {\n              action: 'su_generator_preview',\n              shortcode: shortcode\n            },\n            beforeSend: function () {\n              // Abort previous requests\n              if (self.state.preview.request) {\n                self.state.preview.request.abort()\n              }\n              // Show loading animation\n              $preview.addClass('su-generator-loading').html('')\n            },\n            success: function (data) {\n              // Hide loading animation and set new HTML\n              $preview.html(data).removeClass('su-generator-loading')\n            },\n            dataType: 'html'\n          }\n        )\n      },\n      300\n    )\n    // Save shortcode to div\n    $result.text(shortcode)\n  }\n\n  self.insert = function (context, args) {\n    if (typeof context !== 'string' || typeof args !== 'object') {\n      return\n    }\n\n    self.state.context = context\n    self.state.insertArgs = args\n\n    var preSelectedShortcode = args.shortcode || ''\n\n    var mfpOptions = {\n      type: 'inline',\n      alignTop: true,\n      closeOnBgClick: false,\n      mainClass: 'su-generator-mfp',\n      items: {\n        src: '#su-generator'\n      },\n      callbacks: {}\n    }\n\n    mfpOptions.callbacks.open = () => {\n      if (preSelectedShortcode) {\n        $choice.filter(`[data-shortcode=\"${preSelectedShortcode}\"]`).trigger('click')\n      } else {\n        window.setTimeout(() => $search.focus(), 200)\n      }\n\n      // self.el.body.addClass( 'su-mfp-shown' );\n\n      if (\n        typeof tinyMCE !== 'undefined' &&\n\t\t\t\ttinyMCE.activeEditor != null &&\n\t\t\t\ttinyMCE.activeEditor.hasOwnProperty('selection')\n      ) {\n        self.state.mceSelection = tinyMCE.activeEditor.selection.getContent({ format: 'text' })\n      }\n    }\n\n    mfpOptions.callbacks.close = () => {\n      $search.val('')\n      $settings.html('').hide()\n      $generator.removeClass('su-generator-narrow')\n      $filter.show()\n      $choices.show()\n      $choice.show()\n\n      self.state.mceSelection = ''\n\n      // self.el.body.removeClass( 'su-mfp-shown' );\n    }\n\n    $.magnificPopup.open(mfpOptions)\n  }\n\n  self.insertShortcode = function () {\n    var shortcode = self.parseSettings()\n\n    self.addPreset('last_used', SUGL10n.last_used)\n\n    $.magnificPopup.close()\n\n    $result.text(shortcode)\n\n    if (self.state.context === 'html') {\n      var HTMLEditor = document.getElementById(self.state.insertArgs.editorID)\n      self.insertAtCaret(HTMLEditor, shortcode)\n    }\n\n    if (self.state.context === 'classic') {\n      window.wp.media.editor.insert(shortcode)\n    }\n\n    if (self.state.context === 'block') {\n      var props = self.state.insertArgs.props\n\n      if (props.attributes.hasOwnProperty('content')) {\n        props.setAttributes({ content: props.attributes.content + shortcode })\n      } else if (props.name === 'core/shortcode') {\n        var originalText = props.attributes.hasOwnProperty('text')\n          ? props.attributes.text\n          : ''\n\n        props.setAttributes({ text: originalText + shortcode })\n      }\n    }\n  }\n\n  self.insertAtCaret = (field, text) => {\n    var start = field.selectionStart\n    field.value = field.value.substring(0, start) + text + field.value.substring(start)\n    field.focus()\n    field.selectionStart = start + text.length\n  }\n\n  return {\n    init: self.init,\n    insert: self.insert\n  }\n})(jQuery)\n\njQuery(document).ready(window.SUG.App.init)\n"]}

Youez - 2016 - github.com/yon3zu
LinuXploit