Version Description
- (Compatibility) Tested up to WordPress 5.7
- (Core/Post Types) Added the
SlidersPack
plugin post type to the"hidden types"
list. - (Vendor/Yoast) Fixed issue with empty taxonomy meta description.
Download this release
Release Info
Developer | tivnet |
Plugin | WPGlobus – Multilingual Everything! |
Version | 2.7.0 |
Comparing to | |
See all releases |
Code changes from version 2.6.8 to 2.7.0
- data/wpglobus-product-info.json +1 -1
- includes/class-wpglobus-post-types.php +2 -0
- includes/vendor/yoast-seo/class-wpglobus-yoastseo140.php +1612 -1605
- languages/wpglobus.pot +3 -3
- readme.txt +6 -9
- trunk/configs/acf.json +0 -12
- trunk/configs/all-in-one-seo-pack.json +0 -16
- trunk/configs/elementor.json +0 -5
- trunk/configs/pods.json +0 -12
- trunk/configs/rank-math-seo.json +0 -14
- trunk/configs/woocommerce.json +0 -8
- trunk/configs/wpglobus-seo.json +0 -5
- trunk/configs/wpglobus.json +0 -5
- trunk/configs/yoast-seo.json +0 -25
- trunk/data/paid_plugins.json +0 -78
- trunk/data/wpglobus-product-info.json +0 -1
- trunk/flags/ad.alt.png +0 -0
- trunk/flags/ad.png +0 -0
- trunk/flags/ae.png +0 -0
- trunk/flags/af.png +0 -0
- trunk/flags/ag.png +0 -0
- trunk/flags/ai.alt.png +0 -0
- trunk/flags/ai.png +0 -0
- trunk/flags/al.png +0 -0
- trunk/flags/am.png +0 -0
- trunk/flags/an.png +0 -0
- trunk/flags/ao.png +0 -0
- trunk/flags/aq.png +0 -0
- trunk/flags/ar.alt.png +0 -0
- trunk/flags/ar.png +0 -0
- trunk/flags/argm.jpg +0 -0
- trunk/flags/arle.png +0 -0
- trunk/flags/as.png +0 -0
- trunk/flags/asl.gif +0 -0
- trunk/flags/at.alt.png +0 -0
- trunk/flags/at.png +0 -0
- trunk/flags/au.png +0 -0
- trunk/flags/aw.png +0 -0
- trunk/flags/ax.png +0 -0
- trunk/flags/az.png +0 -0
- trunk/flags/ba.png +0 -0
- trunk/flags/bb.png +0 -0
- trunk/flags/bd.png +0 -0
- trunk/flags/be.png +0 -0
- trunk/flags/bf.png +0 -0
- trunk/flags/bg.png +0 -0
- trunk/flags/bh.png +0 -0
- trunk/flags/bi.alt.png +0 -0
- trunk/flags/bi.png +0 -0
- trunk/flags/big/au.png +0 -0
- trunk/flags/big/br.png +0 -0
- trunk/flags/big/ca.png +0 -0
- trunk/flags/big/cn.png +0 -0
- trunk/flags/big/cy.png +0 -0
- trunk/flags/big/de.png +0 -0
- trunk/flags/big/dk.png +0 -0
- trunk/flags/big/es.alt.png +0 -0
- trunk/flags/big/es.png +0 -0
- trunk/flags/big/fi.png +0 -0
- trunk/flags/big/ir.png +0 -0
- trunk/flags/big/it.png +0 -0
- trunk/flags/big/ka.png +0 -0
- trunk/flags/big/ru.png +0 -0
- trunk/flags/big/uk.png +0 -0
- trunk/flags/big/us.png +0 -0
- trunk/flags/bj.png +0 -0
- trunk/flags/bm.png +0 -0
- trunk/flags/bn.png +0 -0
- trunk/flags/bo.png +0 -0
- trunk/flags/br.png +0 -0
- trunk/flags/bs.png +0 -0
- trunk/flags/bt.png +0 -0
- trunk/flags/bv.png +0 -0
- trunk/flags/bw.png +0 -0
- trunk/flags/by.png +0 -0
- trunk/flags/bz.png +0 -0
- trunk/flags/ca.alt.png +0 -0
- trunk/flags/ca.png +0 -0
- trunk/flags/cc.alt.png +0 -0
- trunk/flags/cc.png +0 -0
- trunk/flags/cd.png +0 -0
- trunk/flags/cf.png +0 -0
- trunk/flags/cg.png +0 -0
- trunk/flags/ch.png +0 -0
- trunk/flags/ci.png +0 -0
- trunk/flags/ck.png +0 -0
- trunk/flags/cl.png +0 -0
- trunk/flags/cm.png +0 -0
- trunk/flags/cn.png +0 -0
- trunk/flags/co.png +0 -0
- trunk/flags/cr.alt.png +0 -0
- trunk/flags/cr.png +0 -0
- trunk/flags/cs.png +0 -0
- trunk/flags/cu.png +0 -0
- trunk/flags/cv.png +0 -0
- trunk/flags/cx.png +0 -0
- trunk/flags/cy.png +0 -0
- trunk/flags/cz.png +0 -0
- trunk/flags/de.png +0 -0
- trunk/flags/dj.png +0 -0
- trunk/flags/dk.png +0 -0
- trunk/flags/dm.png +0 -0
- trunk/flags/do.png +0 -0
- trunk/flags/dz.png +0 -0
- trunk/flags/easy_to_read.png +0 -0
- trunk/flags/ec.alt.png +0 -0
- trunk/flags/ec.png +0 -0
- trunk/flags/ee.png +0 -0
- trunk/flags/eg.png +0 -0
- trunk/flags/eh.alt.png +0 -0
- trunk/flags/eh.png +0 -0
- trunk/flags/en.png +0 -0
- trunk/flags/eo.png +0 -0
- trunk/flags/er.png +0 -0
- trunk/flags/es.alt.png +0 -0
- trunk/flags/es.png +0 -0
- trunk/flags/et.alt.png +0 -0
- trunk/flags/et.png +0 -0
- trunk/flags/eu.png +0 -0
- trunk/flags/eus.png +0 -0
- trunk/flags/fi.png +0 -0
- trunk/flags/fj.png +0 -0
- trunk/flags/fk.png +0 -0
- trunk/flags/fm.png +0 -0
- trunk/flags/fo.png +0 -0
- trunk/flags/fr.png +0 -0
- trunk/flags/fr_CA.png +0 -0
- trunk/flags/ga.png +0 -0
- trunk/flags/galego.png +0 -0
- trunk/flags/gb.png +0 -0
- trunk/flags/gd.png +0 -0
- trunk/flags/ge.png +0 -0
- trunk/flags/gf.png +0 -0
- trunk/flags/gg.png +0 -0
- trunk/flags/gh.png +0 -0
- trunk/flags/gi.png +0 -0
- trunk/flags/gl.png +0 -0
- trunk/flags/gm.png +0 -0
- trunk/flags/gn.png +0 -0
- trunk/flags/gp.png +0 -0
- trunk/flags/gq.png +0 -0
- trunk/flags/gr.png +0 -0
- trunk/flags/gs.png +0 -0
- trunk/flags/gt.alt.png +0 -0
- trunk/flags/gt.png +0 -0
- trunk/flags/gu.png +0 -0
- trunk/flags/gw.png +0 -0
- trunk/flags/gy.png +0 -0
- trunk/flags/hk.png +0 -0
- trunk/flags/hm.png +0 -0
- trunk/flags/hn.png +0 -0
- trunk/flags/hr.png +0 -0
- trunk/flags/ht.alt.png +0 -0
- trunk/flags/ht.png +0 -0
- trunk/flags/hu.png +0 -0
- trunk/flags/id.png +0 -0
- trunk/flags/ie.png +0 -0
- trunk/flags/il.png +0 -0
- trunk/flags/im.png +0 -0
- trunk/flags/in.png +0 -0
- trunk/flags/io.png +0 -0
- trunk/flags/iq.png +0 -0
- trunk/flags/ir.png +0 -0
- trunk/flags/is.png +0 -0
- trunk/flags/it.png +0 -0
- trunk/flags/je.png +0 -0
- trunk/flags/jm.png +0 -0
- trunk/flags/jo.png +0 -0
- trunk/flags/jp.png +0 -0
- trunk/flags/ka.png +0 -0
- trunk/flags/ke.png +0 -0
- trunk/flags/kg.png +0 -0
- trunk/flags/kh.png +0 -0
- trunk/flags/ki.png +0 -0
- trunk/flags/km.png +0 -0
- trunk/flags/kn.png +0 -0
- trunk/flags/kp.png +0 -0
- trunk/flags/kr.png +0 -0
- trunk/flags/ku.png +0 -0
- trunk/flags/kw.png +0 -0
- trunk/flags/ky.png +0 -0
- trunk/flags/kz.png +0 -0
- trunk/flags/la.png +0 -0
- trunk/flags/lb.png +0 -0
- trunk/flags/lc.png +0 -0
- trunk/flags/li.png +0 -0
- trunk/flags/lk.png +0 -0
- trunk/flags/lr.png +0 -0
- trunk/flags/ls.png +0 -0
- trunk/flags/lt.png +0 -0
- trunk/flags/lu.png +0 -0
- trunk/flags/lv.png +0 -0
- trunk/flags/ly.png +0 -0
- trunk/flags/ma.png +0 -0
- trunk/flags/mc.png +0 -0
- trunk/flags/md.png +0 -0
- trunk/flags/me.png +0 -0
- trunk/flags/mg.png +0 -0
- trunk/flags/mh.png +0 -0
- trunk/flags/mk.png +0 -0
- trunk/flags/ml.png +0 -0
- trunk/flags/mm.png +0 -0
- trunk/flags/mn.png +0 -0
- trunk/flags/mo.png +0 -0
- trunk/flags/montenegro.gif +0 -0
- trunk/flags/mp.png +0 -0
- trunk/flags/mq.png +0 -0
- trunk/flags/mr.png +0 -0
- trunk/flags/ms.png +0 -0
- trunk/flags/mt.png +0 -0
- trunk/flags/mu.png +0 -0
- trunk/flags/mv.png +0 -0
- trunk/flags/mw.png +0 -0
- trunk/flags/mx.png +0 -0
- trunk/flags/my.png +0 -0
- trunk/flags/my_MM.png +0 -0
- trunk/flags/mz.png +0 -0
- trunk/flags/na.png +0 -0
- trunk/flags/nc.png +0 -0
- trunk/flags/ne.png +0 -0
- trunk/flags/nf.png +0 -0
- trunk/flags/ng.png +0 -0
- trunk/flags/ni.alt.png +0 -0
- trunk/flags/ni.png +0 -0
- trunk/flags/nl.png +0 -0
- trunk/flags/no.png +0 -0
- trunk/flags/np.png +0 -0
- trunk/flags/nr.png +0 -0
- trunk/flags/nu.png +0 -0
- trunk/flags/nz.png +0 -0
- trunk/flags/om.png +0 -0
- trunk/flags/pa.png +0 -0
- trunk/flags/pe.png +0 -0
- trunk/flags/pf.alt.png +0 -0
- trunk/flags/pf.png +0 -0
- trunk/flags/pg.png +0 -0
- trunk/flags/ph.png +0 -0
- trunk/flags/pk.png +0 -0
- trunk/flags/pl.png +0 -0
- trunk/flags/pm.png +0 -0
- trunk/flags/pn.png +0 -0
- trunk/flags/pr.png +0 -0
- trunk/flags/ps.png +0 -0
- trunk/flags/pt.png +0 -0
- trunk/flags/purple.globe.png +0 -0
- trunk/flags/pw.png +0 -0
- trunk/flags/py.png +0 -0
- trunk/flags/qa.png +0 -0
- trunk/flags/re.png +0 -0
- trunk/flags/ro.png +0 -0
- trunk/flags/rs.png +0 -0
- trunk/flags/ru.png +0 -0
- trunk/flags/rw.png +0 -0
- trunk/flags/sa.png +0 -0
- trunk/flags/sb.png +0 -0
- trunk/flags/sc.png +0 -0
- trunk/flags/sd.png +0 -0
- trunk/flags/se.png +0 -0
- trunk/flags/serbska_malka.png +0 -0
- trunk/flags/sg.png +0 -0
- trunk/flags/sh.png +0 -0
- trunk/flags/si.png +0 -0
- trunk/flags/sj.png +0 -0
- trunk/flags/sk.png +0 -0
- trunk/flags/sl.png +0 -0
- trunk/flags/sm.png +0 -0
- trunk/flags/sn.png +0 -0
- trunk/flags/so.png +0 -0
- trunk/flags/sr.png +0 -0
- trunk/flags/st.png +0 -0
- trunk/flags/sv.alt.png +0 -0
- trunk/flags/sv.png +0 -0
- trunk/flags/sy.png +0 -0
- trunk/flags/sz.png +0 -0
- trunk/flags/tc.png +0 -0
- trunk/flags/td.png +0 -0
- trunk/flags/tf.png +0 -0
- trunk/flags/tg.png +0 -0
- trunk/flags/th.png +0 -0
- trunk/flags/tj.png +0 -0
- trunk/flags/tk.png +0 -0
- trunk/flags/tl.png +0 -0
- trunk/flags/tm.png +0 -0
- trunk/flags/tn.png +0 -0
- trunk/flags/to.png +0 -0
- trunk/flags/tr.png +0 -0
- trunk/flags/tt.png +0 -0
- trunk/flags/tv.png +0 -0
- trunk/flags/tw.png +0 -0
- trunk/flags/tz.png +0 -0
- trunk/flags/ua.png +0 -0
- trunk/flags/ug.png +0 -0
- trunk/flags/uk.png +0 -0
- trunk/flags/um.png +0 -0
- trunk/flags/us-uk.png +0 -0
- trunk/flags/us.png +0 -0
- trunk/flags/uy.png +0 -0
- trunk/flags/uz.png +0 -0
- trunk/flags/va.png +0 -0
- trunk/flags/vc.png +0 -0
- trunk/flags/ve.png +0 -0
- trunk/flags/vg.png +0 -0
- trunk/flags/vi.png +0 -0
- trunk/flags/vn.png +0 -0
- trunk/flags/vu.png +0 -0
- trunk/flags/wf.alt.png +0 -0
- trunk/flags/wf.png +0 -0
- trunk/flags/ws.png +0 -0
- trunk/flags/ye.png +0 -0
- trunk/flags/yt.png +0 -0
- trunk/flags/yu.png +0 -0
- trunk/flags/za.png +0 -0
- trunk/flags/zm.png +0 -0
- trunk/flags/zw.png +0 -0
- trunk/flags/zz.png +0 -0
- trunk/includes/admin/central/class-wpglobus-admin-central.php +0 -172
- trunk/includes/admin/class-wpglobus-about.php +0 -178
- trunk/includes/admin/class-wpglobus-admin-bar-menu.php +0 -213
- trunk/includes/admin/class-wpglobus-admin-menu.php +0 -34
- trunk/includes/admin/class-wpglobus-admin-page.php +0 -208
- trunk/includes/admin/class-wpglobus-admin-post.php +0 -57
- trunk/includes/admin/class-wpglobus-clean.php +0 -743
- trunk/includes/admin/class-wpglobus-customize-options.php +0 -1588
- trunk/includes/admin/class-wpglobus-dashboard-news.php +0 -67
- trunk/includes/admin/class-wpglobus-language-edit-request.php +0 -255
- trunk/includes/admin/class-wpglobus-language-edit.php +0 -494
- trunk/includes/admin/class-wpglobus-plugin-install.php +0 -367
- trunk/includes/admin/customize/class-wpglobus-customize-themes.php +0 -88
- trunk/includes/admin/customize/class-wpglobus-customize140.php +0 -282
- trunk/includes/admin/customize/class-wpglobus-customize170.php +0 -300
- trunk/includes/admin/customize/class-wpglobus-customize190.php +0 -555
- trunk/includes/admin/customize/wpglobus-customize-filters.php +0 -87
- trunk/includes/admin/customize/wpglobus-customize.php +0 -22
- trunk/includes/admin/debug/class-wpglobus-admin-debug.php +0 -366
- trunk/includes/admin/helpdesk/class-wpglobus-admin-helpdesk.php +0 -292
- trunk/includes/admin/helpdesk/wpglobus-admin-helpdesk-page.php +0 -165
- trunk/includes/admin/media/class-wpglobus-media.php +0 -413
- trunk/includes/admin/media/wpglobus-media.php +0 -38
- trunk/includes/admin/meta/class-wpglobus-meta.php +0 -545
- trunk/includes/admin/recommendations/class-wpglobus-admin-recommendations.php +0 -309
- trunk/includes/admin/register-post-types/class-wpglobus-register-post-types.php +0 -147
- trunk/includes/admin/wpglobus-admin.php +0 -38
- trunk/includes/builders/assets/wpglobus-admin-builder-49.js +0 -348
- trunk/includes/builders/assets/wpglobus-admin-builder-49.min.js +0 -1
- trunk/includes/builders/assets/wpglobus-admin-builder-51.js +0 -362
- trunk/includes/builders/assets/wpglobus-admin-builder-51.min.js +0 -1
- trunk/includes/builders/assets/wpglobus-admin-builder-55.js +0 -404
- trunk/includes/builders/assets/wpglobus-admin-builder-55.min.js +0 -1
- trunk/includes/builders/assets/wpglobus-admin-builder-56.js +0 -403
- trunk/includes/builders/assets/wpglobus-admin-builder-56.min.js +0 -1
- trunk/includes/builders/class-wpglobus-builder-update-post.php +0 -149
- trunk/includes/builders/class-wpglobus-builder.php +0 -424
- trunk/includes/builders/class-wpglobus-builders.php +0 -1627
- trunk/includes/builders/class-wpglobus-config-builder.php +0 -563
- trunk/includes/builders/elementor/class-wpglobus-elementor-front.php +0 -516
- trunk/includes/builders/elementor/class-wpglobus-elementor-update-post.php +0 -118
- trunk/includes/builders/elementor/class-wpglobus-elementor.php +0 -687
- trunk/includes/builders/elementor/readme.txt +0 -8
- trunk/includes/builders/gutenberg/assets/css/dist/wpglobus-block-editor.css +0 -3
- trunk/includes/builders/gutenberg/assets/css/dist/wpglobus-block-editor.css.map +0 -1
- trunk/includes/builders/gutenberg/assets/css/dist/wpglobus-block-editor.scss +0 -45
- trunk/includes/builders/gutenberg/assets/css/dist/wpglobus-switcher.css +0 -116
- trunk/includes/builders/gutenberg/assets/css/wpglobus-gutenberg.css +0 -3
- trunk/includes/builders/gutenberg/assets/css/wpglobus-gutenberg.css.map +0 -1
- trunk/includes/builders/gutenberg/assets/css/wpglobus-gutenberg.scss +0 -30
- trunk/includes/builders/gutenberg/assets/js/dist/wpglobus-block-editor.js +0 -607
- trunk/includes/builders/gutenberg/assets/js/dist/wpglobus-block-editor.min.js +0 -1
- trunk/includes/builders/gutenberg/assets/js/wpglobus-gutenberg.js +0 -632
- trunk/includes/builders/gutenberg/assets/js/wpglobus-gutenberg.min.js +0 -1
- trunk/includes/builders/gutenberg/class-wpglobus-gutenberg-update-post.php +0 -304
- trunk/includes/builders/gutenberg/class-wpglobus-gutenberg.php +0 -601
- trunk/includes/builders/js_composer/class-wpglobus-js_composer-update-post.php +0 -119
- trunk/includes/builders/js_composer/class-wpglobus-js_composer.php +0 -26
- trunk/includes/builders/pods/class-wpglobus-builder-pods.php +0 -110
- trunk/includes/builders/pods/class-wpglobus-pods-update-post.php +0 -120
- trunk/includes/builders/pods/class-wpglobus-pods.php +0 -31
- trunk/includes/builders/rank_math_seo/class-wpglobus-builder-rank_math_seo.php +0 -75
- trunk/includes/builders/rank_math_seo/class-wpglobus-rank_math_seo-functions.php +0 -168
- trunk/includes/builders/rank_math_seo/class-wpglobus-rank_math_seo-update-post.php +0 -40
- trunk/includes/builders/rank_math_seo/class-wpglobus-rank_math_seo.php +0 -73
- trunk/includes/builders/yoast_seo/class-wpglobus-yoast_seo-update-post.php +0 -259
- trunk/includes/builders/yoast_seo/class-wpglobus-yoast_seo.php +0 -145
- trunk/includes/class-wpglobus-config-vendor.php +0 -405
data/wpglobus-product-info.json
CHANGED
@@ -1 +1 @@
|
|
1 |
-
{"multilingual-woocommerce-nets-netaxept":{"title":"{:en}Multilingual WooCommerce Nets Netaxept{:}{:ru}\u041c\u0443\u043b\u044c\u0442\u0438\u044f\u0437\u044b\u0447\u043d\u043e\u0441\u0442\u044c \u0434\u043b\u044f WooCommerce Nets Netaxept{:}","_api_new_version":"1.0.3","_api_tested_up_to":"4.9.8"},"wpglobus-multi-currency":{"title":"{:en}Multi-Currency for WooCommerce{:}{:ru}WPGlobus - \u041c\u0443\u043b\u044c\u0442\u0438\u0432\u0430\u043b\u044e\u0442\u043d\u043e\u0441\u0442\u044c \u0434\u043b\u044f WooCommerce{:}","_api_new_version":"1.1.1","_api_tested_up_to":"4.9.4"},"wpglobus-mobile-menu":{"title":"{:en}WPGlobus Mobile Menu{:}{:ru}WPGlobus Mobile Menu{:}","_api_new_version":"2.2.0","_api_tested_up_to":"5.6"},"woocommerce-wpglobus":{"title":"{:en}WPGlobus for WooCommerce{:}{:ru}\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 WooCommerce WPGlobus{:}","_api_new_version":"4.3.0","_api_tested_up_to":"5.6"},"wpglobus-header-images":{"title":"{:en}WPGlobus Header Images{:}{:ru}WPGlobus Header Images{:}","_api_new_version":"2.1.0","_api_tested_up_to":"5.5"},"wpglobus-
|
1 |
+
{"multilingual-woocommerce-nets-netaxept":{"title":"{:en}Multilingual WooCommerce Nets Netaxept{:}{:ru}\u041c\u0443\u043b\u044c\u0442\u0438\u044f\u0437\u044b\u0447\u043d\u043e\u0441\u0442\u044c \u0434\u043b\u044f WooCommerce Nets Netaxept{:}","_api_new_version":"1.0.3","_api_tested_up_to":"4.9.8"},"wpglobus-multi-currency":{"title":"{:en}Multi-Currency for WooCommerce{:}{:ru}WPGlobus - \u041c\u0443\u043b\u044c\u0442\u0438\u0432\u0430\u043b\u044e\u0442\u043d\u043e\u0441\u0442\u044c \u0434\u043b\u044f WooCommerce{:}","_api_new_version":"1.1.1","_api_tested_up_to":"4.9.4"},"wpglobus-mobile-menu":{"title":"{:en}WPGlobus Mobile Menu{:}{:ru}WPGlobus Mobile Menu{:}","_api_new_version":"2.2.0","_api_tested_up_to":"5.6"},"woocommerce-wpglobus":{"title":"{:en}WPGlobus for WooCommerce{:}{:ru}\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 WooCommerce WPGlobus{:}","_api_new_version":"4.3.0","_api_tested_up_to":"5.6"},"wpglobus-header-images":{"title":"{:en}WPGlobus Header Images{:}{:ru}WPGlobus Header Images{:}","_api_new_version":"2.1.0","_api_tested_up_to":"5.5"},"wpglobus-language-widgets":{"title":"{:en}WPGlobus Language Widgets{:}{:ru}\u042f\u0437\u044b\u043a\u0438 WPGlobus \u0434\u043b\u044f \u0432\u0438\u0434\u0436\u0435\u0442\u043e\u0432{:}","_api_new_version":"2.0.0","_api_tested_up_to":"5.6.0"},"wpglobus-for-ultimate-member":{"title":"{:en}WPGlobus for Ultimate Member{:}{:ru}WPGlobus \u0434\u043b\u044f \u043f\u043b\u0430\u0433\u0438\u043d\u0430 Ultimate Member{:}","_api_new_version":"1.1.0","_api_tested_up_to":"5.6"},"wpglobus-multilingual-popups":{"title":"{:en}WPGlobus Multilingual Popups{:}{:ru}WPGlobus Multilingual Popups{:}","_api_new_version":"1.3.0","_api_tested_up_to":"5.6"},"wpglobus-menu-visibility":{"title":"WPGlobus Menu Visibility","_api_new_version":"2.0.0","_api_tested_up_to":"5.6"},"wpglobus-for-bridge-theme":{"title":"{:en}WPGlobus for the \"Bridge\" theme{:}{:ru}WPGlobus \u0434\u043b\u044f \u0442\u0435\u043c\u044b Bridge{:}","_api_new_version":"2.4.0","_api_tested_up_to":"5.5"},"wpglobus-multilingual-notices":{"title":"{:en}WPGlobus Multilingual Notices{:}{:ru}WPGlobus - \u043c\u043d\u043e\u0433\u043e\u044f\u0437\u044b\u0447\u043d\u044b\u0435 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u044f{:}","_api_new_version":"2.6.0","_api_tested_up_to":"5.7"},"wpglobus-plus":{"title":"{:en}WPGlobus Plus multilingual extension{:}{:ru}WPGlobus \u041f\u043b\u044e\u0441{:}","_api_new_version":"1.6.0","_api_tested_up_to":"5.7"}}
|
includes/class-wpglobus-post-types.php
CHANGED
@@ -120,6 +120,8 @@ class WPGlobus_Post_Types {
|
|
120 |
'custom-css-js',
|
121 |
// Content Blocks (Custom Post Widget): https://wordpress.org/plugins/custom-post-widget/ @since 2.6.6
|
122 |
'content_block',
|
|
|
|
|
123 |
);
|
124 |
|
125 |
/**
|
120 |
'custom-css-js',
|
121 |
// Content Blocks (Custom Post Widget): https://wordpress.org/plugins/custom-post-widget/ @since 2.6.6
|
122 |
'content_block',
|
123 |
+
// SlidersPack – All In One Image/Post Slider: https://wordpress.org/plugins/sliderspack-all-in-one-image-sliders/ @since 2.7.0
|
124 |
+
'wpspaios_slider',
|
125 |
);
|
126 |
|
127 |
/**
|
includes/vendor/yoast-seo/class-wpglobus-yoastseo140.php
CHANGED
@@ -1,1606 +1,1613 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* File: class-wpglobus-yoastseo140.php
|
4 |
-
*
|
5 |
-
* Support of Yoast SEO 14.0
|
6 |
-
*
|
7 |
-
* @package WPGlobus\Vendor\YoastSEO
|
8 |
-
* @since 2.4
|
9 |
-
* @since 2.5.19 Added support multilingual fields for social tab.
|
10 |
-
*/
|
11 |
-
|
12 |
-
/**
|
13 |
-
* Class WPGlobus_YoastSEO.
|
14 |
-
*/
|
15 |
-
class WPGlobus_YoastSEO {
|
16 |
-
|
17 |
-
/**
|
18 |
-
* Yoast SEO separator.
|
19 |
-
*
|
20 |
-
* @var string
|
21 |
-
*/
|
22 |
-
public static $yoastseo_separator = '';
|
23 |
-
|
24 |
-
/**
|
25 |
-
* Name of the script.
|
26 |
-
*
|
27 |
-
* @var string
|
28 |
-
*/
|
29 |
-
public static $handle_script = 'wpglobus-yoastseo';
|
30 |
-
|
31 |
-
/**
|
32 |
-
* Name of the dashboard script.
|
33 |
-
*
|
34 |
-
* @since 2.4.5
|
35 |
-
* @var string
|
36 |
-
*/
|
37 |
-
public static $handle_script_dashboard = 'wpglobus-yoastseo-dashboard';
|
38 |
-
|
39 |
-
/**
|
40 |
-
* Name of the premium script.
|
41 |
-
*
|
42 |
-
* @since 1.7.2
|
43 |
-
* @var string
|
44 |
-
*/
|
45 |
-
public static $handle_script_premium = 'wpglobus-yoastseo-premium';
|
46 |
-
|
47 |
-
/**
|
48 |
-
* Current version yoast seo.
|
49 |
-
*
|
50 |
-
* @since 1.8
|
51 |
-
* @var string
|
52 |
-
*/
|
53 |
-
protected static $version = '';
|
54 |
-
|
55 |
-
/**
|
56 |
-
* Contains wpseo post meta.
|
57 |
-
*
|
58 |
-
* @since 2.2.16
|
59 |
-
* @var null|array
|
60 |
-
*/
|
61 |
-
protected static $wpseo_meta = null;
|
62 |
-
|
63 |
-
/**
|
64 |
-
* Contains wpseo taxonomy meta.
|
65 |
-
*
|
66 |
-
* @since 2.5.1
|
67 |
-
* @var null|array
|
68 |
-
*/
|
69 |
-
protected static $wpseo_taxonomy_meta = null;
|
70 |
-
|
71 |
-
/**
|
72 |
-
* Contains document title.
|
73 |
-
*
|
74 |
-
* @since 2.4.7
|
75 |
-
* @var null|string
|
76 |
-
*/
|
77 |
-
protected static $title = null;
|
78 |
-
|
79 |
-
/**
|
80 |
-
* Plus access.
|
81 |
-
*
|
82 |
-
* @since 2.2.20
|
83 |
-
* @var boolean|string
|
84 |
-
*/
|
85 |
-
protected static $plus_module = false;
|
86 |
-
|
87 |
-
/**
|
88 |
-
* Canonical URLs.
|
89 |
-
*
|
90 |
-
* @since 2.5.11
|
91 |
-
* @var array
|
92 |
-
*/
|
93 |
-
protected static $canonical_url = array();
|
94 |
-
|
95 |
-
/**
|
96 |
-
* Description meta value.
|
97 |
-
*
|
98 |
-
* @scope front
|
99 |
-
* @since 2.6.3
|
100 |
-
* @var string
|
101 |
-
*/
|
102 |
-
protected static $description = '';
|
103 |
-
|
104 |
-
/**
|
105 |
-
* Static "controller"
|
106 |
-
*/
|
107 |
-
public static function controller($version, $plus_module = false) {
|
108 |
-
|
109 |
-
self::$version = $version;
|
110 |
-
self::$plus_module = $plus_module;
|
111 |
-
|
112 |
-
if ( is_admin() ) {
|
113 |
-
|
114 |
-
/**
|
115 |
-
* @since 2.2.20
|
116 |
-
*/
|
117 |
-
add_action( 'admin_print_scripts', array(
|
118 |
-
__CLASS__,
|
119 |
-
'action__admin_print_scripts'
|
120 |
-
) );
|
121 |
-
|
122 |
-
if ( WPGlobus_WP::is_pagenow( 'edit.php' ) ) {
|
123 |
-
|
124 |
-
/**
|
125 |
-
* To translate Yoast columns on `edit.php` page.
|
126 |
-
* @since 2.2.16
|
127 |
-
*/
|
128 |
-
add_filter( 'wpseo_title', array(
|
129 |
-
__CLASS__,
|
130 |
-
'filter__wpseo_title'
|
131 |
-
), 5 );
|
132 |
-
|
133 |
-
|
134 |
-
add_filter( 'wpseo_metadesc', array(
|
135 |
-
__CLASS__,
|
136 |
-
'filter__wpseo_metadesc'
|
137 |
-
), 5 );
|
138 |
-
}
|
139 |
-
|
140 |
-
} else {
|
141 |
-
|
142 |
-
/**
|
143 |
-
* Frontend.
|
144 |
-
*/
|
145 |
-
|
146 |
-
/**
|
147 |
-
* Filter SEO title and meta description on front only, when the page header HTML tags are generated.
|
148 |
-
* AJAX is probably not required (waiting for a case).
|
149 |
-
*/
|
150 |
-
// add_filter( 'wpseo_title', array( __CLASS__, 'filter__title' ), PHP_INT_MAX );
|
151 |
-
/**
|
152 |
-
* Filter title description.
|
153 |
-
* @since 2.5.22
|
154 |
-
*/
|
155 |
-
add_filter( 'wpseo_title', array( __CLASS__, 'filter_front__title' ), PHP_INT_MAX, 2 );
|
156 |
-
|
157 |
-
/**
|
158 |
-
* Filter meta description.
|
159 |
-
* @since 2.4
|
160 |
-
*/
|
161 |
-
add_filter( 'wpseo_metadesc', array( __CLASS__, 'filter_front__description' ), 5, 2 );
|
162 |
-
|
163 |
-
/**
|
164 |
-
* Open Graph.
|
165 |
-
* @since 2.4 Open Graph title.
|
166 |
-
* @since 2.4 Open Graph description.
|
167 |
-
* @since 2.4 Open Graph URL.
|
168 |
-
* @since 2.5.19 Open Graph image.
|
169 |
-
*/
|
170 |
-
add_filter( 'wpseo_opengraph_title', array( __CLASS__, 'filter_front__opengraph_title' ), 5, 2 );
|
171 |
-
add_filter( 'wpseo_opengraph_desc', array( __CLASS__, 'filter_front__opengraph_description' ), 5, 2 );
|
172 |
-
add_filter( 'wpseo_opengraph_image', array( __CLASS__, 'filter_front__opengraph_image' ), 5, 2 );
|
173 |
-
add_filter( 'wpseo_opengraph_url', array( __CLASS__, 'filter_front__localize_url' ), 5, 2 );
|
174 |
-
|
175 |
-
/**
|
176 |
-
* Twitter.
|
177 |
-
* @since 2.5.19
|
178 |
-
*/
|
179 |
-
add_filter( 'wpseo_twitter_title', array( __CLASS__, 'filter_front__twitter_title' ), 5, 2 );
|
180 |
-
add_filter( 'wpseo_twitter_description', array( __CLASS__, 'filter_front__twitter_description' ), 5, 2 );
|
181 |
-
add_filter( 'wpseo_twitter_image', array( __CLASS__, 'filter_front__twitter_image' ), 5, 2 );
|
182 |
-
|
183 |
-
/**
|
184 |
-
* Filter canonical URL and open graph URL.
|
185 |
-
* @since 2.4
|
186 |
-
*/
|
187 |
-
add_filter( 'wpseo_canonical', array( __CLASS__, 'filter_front__localize_url' ), 5, 2 );
|
188 |
-
|
189 |
-
/**
|
190 |
-
* Filter of the rel prev and next URL put out by Yoast SEO.
|
191 |
-
* @since 2.5.11
|
192 |
-
*/
|
193 |
-
add_filter( 'wpseo_adjacent_rel_url', array( __CLASS__, 'filter_front__wpseo_adjacent_rel_url' ), 5, 3 );
|
194 |
-
|
195 |
-
/**
|
196 |
-
* Filter the HTML output of the Yoast SEO breadcrumbs class.
|
197 |
-
* @since 2.4.2
|
198 |
-
*/
|
199 |
-
add_filter( 'wpseo_breadcrumb_output', array( __CLASS__, 'filter__breadcrumb_output' ), 5, 2 );
|
200 |
-
|
201 |
-
/**
|
202 |
-
* @todo check for '_yoast_wpseo_title' meta
|
203 |
-
* @see <title> view-source:http://test/test-post-seo/
|
204 |
-
* @see <title> view-source:http://test/ru/test-post-seo/
|
205 |
-
*/
|
206 |
-
add_filter( 'get_post_metadata', array( __CLASS__, 'filter__get_post_metadata' ), 6, 4 );
|
207 |
-
|
208 |
-
/**
|
209 |
-
* Filter meta keywords.
|
210 |
-
* @since 1.8.8
|
211 |
-
*/
|
212 |
-
add_filter( 'wpseo_metakeywords', array( __CLASS__, 'filter__metakeywords' ), 0 );
|
213 |
-
|
214 |
-
/**
|
215 |
-
* Filter `wpseo_schema_breadcrumb` generator.
|
216 |
-
* @since 2.4.7
|
217 |
-
*/
|
218 |
-
add_filter( 'wpseo_schema_breadcrumb', array( __CLASS__, 'filter__wpseo_schema_breadcrumb' ), 5, 2 );
|
219 |
-
|
220 |
-
/**
|
221 |
-
* Filter `wpseo_schema_webpage` generator.
|
222 |
-
* @since 2.4.14
|
223 |
-
*/
|
224 |
-
add_filter( 'wpseo_schema_webpage', array( __CLASS__, 'filter__wpseo_schema_webpage' ), 5, 2 );
|
225 |
-
}
|
226 |
-
}
|
227 |
-
|
228 |
-
/**
|
229 |
-
* obsolete @since 2.5.22
|
230 |
-
* Filter Yoast post meta title.
|
231 |
-
*
|
232 |
-
* @scope front
|
233 |
-
* @since 1.9.18
|
234 |
-
* @since 2.4.7 Handle multilingual title from `postmeta` table.
|
235 |
-
*
|
236 |
-
* @param string $title Post title.
|
237 |
-
*
|
238 |
-
* @return string.
|
239 |
-
*/
|
240 |
-
public static function filter__title( $title ) {
|
241 |
-
|
242 |
-
/**
|
243 |
-
* In some cases we can get $title like {:en}En title{:}{:ru}Ru title{:}{:fr}Fr title{:} - SiteTitle
|
244 |
-
* so, let's filter.
|
245 |
-
*/
|
246 |
-
if ( WPGlobus_Core::has_translations($title) ) {
|
247 |
-
|
248 |
-
if ( is_null( self::$title ) ) {
|
249 |
-
self::$title = $title;
|
250 |
-
}
|
251 |
-
return WPGlobus_Core::extract_text( self::$title, WPGlobus::Config()->language );
|
252 |
-
}
|
253 |
-
|
254 |
-
/**
|
255 |
-
* We can get title in last saved language (has no multilingual) from @see `wp_yoast_indexable` table.
|
256 |
-
* So, we need get multilingual title from `postmeta` table.
|
257 |
-
* @since 2.4.7
|
258 |
-
*/
|
259 |
-
if ( ! is_null( self::$title ) ) {
|
260 |
-
return WPGlobus_Core::extract_text( self::$title, WPGlobus::Config()->language );
|
261 |
-
}
|
262 |
-
|
263 |
-
/** @global wpdb $wpdb */
|
264 |
-
global $wpdb;
|
265 |
-
|
266 |
-
/** @global WP_Post $post */
|
267 |
-
global $post;
|
268 |
-
|
269 |
-
/**
|
270 |
-
* @since 2.4.14 Fixed PHP Notice: Trying to get property 'ID' of non-object.
|
271 |
-
*/
|
272 |
-
if ( $post instanceof WP_Post && (int) $post->ID > 0 ) {
|
273 |
-
$query = $wpdb->prepare(
|
274 |
-
"SELECT meta_value FROM {$wpdb->prefix}postmeta AS m WHERE m.post_id = %s AND m.meta_key = %s",
|
275 |
-
$post->ID,
|
276 |
-
'_yoast_wpseo_title'
|
277 |
-
);
|
278 |
-
|
279 |
-
$meta = $wpdb->get_var($query);
|
280 |
-
if ( ! empty($meta) && false != mb_strpos($meta, $title) && WPGlobus_Core::has_translations($meta) ) {
|
281 |
-
self::$title = $meta;
|
282 |
-
return WPGlobus_Core::extract_text( self::$title, WPGlobus::Config()->language );
|
283 |
-
}
|
284 |
-
}
|
285 |
-
|
286 |
-
return $title;
|
287 |
-
}
|
288 |
-
|
289 |
-
/**
|
290 |
-
* Filter for changing the Yoast SEO generated Open Graph description.
|
291 |
-
*
|
292 |
-
* @see wordpress-seo\src\presenters\open-graph\description-presenter.php
|
293 |
-
*
|
294 |
-
* @since 2.5.19
|
295 |
-
*
|
296 |
-
* @scope front
|
297 |
-
* @param string $description The description.
|
298 |
-
* @param Indexable_Presentation $presentation The presentation of an indexable.
|
299 |
-
*
|
300 |
-
* @return string
|
301 |
-
*/
|
302 |
-
public static function filter_front__opengraph_description( $description, $presentation ) {
|
303 |
-
|
304 |
-
if ( empty( $description ) ) {
|
305 |
-
return $description;
|
306 |
-
}
|
307 |
-
|
308 |
-
if ( 'post' == $presentation->model->object_type ) {
|
309 |
-
|
310 |
-
$meta_cache = wp_cache_get( $presentation->model->object_id, 'post_meta' );
|
311 |
-
|
312 |
-
if ( ! empty( $meta_cache['_yoast_wpseo_opengraph-description'][0] ) ) {
|
313 |
-
|
314 |
-
$description = WPGlobus_Core::text_filter( $meta_cache['_yoast_wpseo_opengraph-description'][0], WPGlobus::Config()->language );
|
315 |
-
|
316 |
-
if ( $presentation->source instanceof WP_Post ) {
|
317 |
-
/**
|
318 |
-
* @see wordpress-seo\inc\wpseo-functions.php
|
319 |
-
*/
|
320 |
-
$description = wpseo_replace_vars( $description, $presentation->source );
|
321 |
-
}
|
322 |
-
} else {
|
323 |
-
/**
|
324 |
-
* Opengraph description is empty. We get it from `description` meta.
|
325 |
-
* @since 2.6.3
|
326 |
-
*/
|
327 |
-
$description = self::$description;
|
328 |
-
}
|
329 |
-
|
330 |
-
} elseif ( 'term' == $presentation->model->object_type ) {
|
331 |
-
|
332 |
-
/**
|
333 |
-
* Taxonomy.
|
334 |
-
*/
|
335 |
-
$__desc = self::get_taxonomy_meta( $presentation->model->object_sub_type, $presentation->model->object_id, 'wpseo_desc' );
|
336 |
-
|
337 |
-
if ( empty( $__desc ) ) {
|
338 |
-
|
339 |
-
$__template = self::get_option( 'wpseo_titles', 'metadesc-tax-' . $presentation->model->object_sub_type );
|
340 |
-
|
341 |
-
if ( ! empty( $__template ) ) {
|
342 |
-
$__desc = $__template;
|
343 |
-
} else {
|
344 |
-
// @W.I.P if empty `Meta description` from Yoast, then we need output `Description` from Edit taxonomy page.
|
345 |
-
$__desc = $presentation->source->description;
|
346 |
-
}
|
347 |
-
|
348 |
-
}
|
349 |
-
|
350 |
-
$description = wpseo_replace_vars( $__desc, $presentation->source );
|
351 |
-
}
|
352 |
-
|
353 |
-
return $description;
|
354 |
-
}
|
355 |
-
|
356 |
-
/**
|
357 |
-
* Filter for changing the Open Graph image.
|
358 |
-
*
|
359 |
-
* @see wordpress-seo\src\presenters\open-graph\image-presenter.php
|
360 |
-
*
|
361 |
-
* @since 2.5.19
|
362 |
-
*
|
363 |
-
* @scope front
|
364 |
-
* @param string $image_url The URL of the Open Graph image.
|
365 |
-
* @param Indexable_Presentation $presentation The presentation of an indexable.
|
366 |
-
*
|
367 |
-
* @return string
|
368 |
-
*/
|
369 |
-
public static function filter_front__opengraph_image( $image_url, $presentation ) {
|
370 |
-
|
371 |
-
if ( empty( $image_url) ) {
|
372 |
-
return $image_url;
|
373 |
-
}
|
374 |
-
|
375 |
-
if ( 'post' == $presentation->model->object_type ) {
|
376 |
-
|
377 |
-
$meta_cache = wp_cache_get( $presentation->model->object_id, 'post_meta' );
|
378 |
-
|
379 |
-
if ( ! empty( $meta_cache['_yoast_wpseo_opengraph-image'][0] ) ) {
|
380 |
-
|
381 |
-
$image_url = WPGlobus_Core::text_filter( $meta_cache['_yoast_wpseo_opengraph-image'][0], WPGlobus::Config()->language );
|
382 |
-
|
383 |
-
if ( $presentation->source instanceof WP_Post ) {
|
384 |
-
/**
|
385 |
-
* @see wordpress-seo\inc\wpseo-functions.php
|
386 |
-
*/
|
387 |
-
$image_url = wpseo_replace_vars( $image_url, $presentation->source );
|
388 |
-
}
|
389 |
-
}
|
390 |
-
}
|
391 |
-
|
392 |
-
return $image_url;
|
393 |
-
}
|
394 |
-
|
395 |
-
/**
|
396 |
-
* Filter for changing the Twitter title.
|
397 |
-
*
|
398 |
-
* @see wordpress-seo\src\presenters\twitter\title-presenter.php
|
399 |
-
*
|
400 |
-
* @since 2.5.19
|
401 |
-
*
|
402 |
-
* @scope front
|
403 |
-
* @param string $title The Twitter title.
|
404 |
-
* @param Indexable_Presentation $presentation The presentation of an indexable.
|
405 |
-
*
|
406 |
-
* @return string
|
407 |
-
*/
|
408 |
-
public static function filter_front__twitter_title( $title, $presentation ) {
|
409 |
-
|
410 |
-
if ( empty( $title ) ) {
|
411 |
-
return $title;
|
412 |
-
}
|
413 |
-
|
414 |
-
if ( 'post' == $presentation->model->object_type ) {
|
415 |
-
|
416 |
-
$meta_cache = wp_cache_get( $presentation->model->object_id, 'post_meta' );
|
417 |
-
|
418 |
-
if ( ! empty( $meta_cache['_yoast_wpseo_twitter-title'][0] ) ) {
|
419 |
-
|
420 |
-
$title = WPGlobus_Core::text_filter( $meta_cache['_yoast_wpseo_twitter-title'][0], WPGlobus::Config()->language );
|
421 |
-
|
422 |
-
if ( $presentation->source instanceof WP_Post ) {
|
423 |
-
/**
|
424 |
-
* @see wordpress-seo\inc\wpseo-functions.php
|
425 |
-
*/
|
426 |
-
$title = wpseo_replace_vars( $title, $presentation->source );
|
427 |
-
}
|
428 |
-
}
|
429 |
-
}
|
430 |
-
|
431 |
-
return $title;
|
432 |
-
}
|
433 |
-
|
434 |
-
/**
|
435 |
-
* Filter for changing the Twitter description as output in the Twitter card by Yoast SEO.
|
436 |
-
*
|
437 |
-
* @see wordpress-seo\src\presenters\twitter\description-presenter.php
|
438 |
-
*
|
439 |
-
* @since 2.5.19
|
440 |
-
*
|
441 |
-
* @scope front
|
442 |
-
* @param string $description The description string.
|
443 |
-
* @param Indexable_Presentation $presentation The presentation of an indexable.
|
444 |
-
*
|
445 |
-
* @return string
|
446 |
-
*/
|
447 |
-
public static function filter_front__twitter_description( $description, $presentation ) {
|
448 |
-
|
449 |
-
if ( empty( $description ) ) {
|
450 |
-
return $description;
|
451 |
-
}
|
452 |
-
|
453 |
-
if ( 'post' == $presentation->model->object_type ) {
|
454 |
-
|
455 |
-
$meta_cache = wp_cache_get( $presentation->model->object_id, 'post_meta' );
|
456 |
-
|
457 |
-
if ( ! empty( $meta_cache['_yoast_wpseo_twitter-description'][0] ) ) {
|
458 |
-
|
459 |
-
$description = WPGlobus_Core::text_filter( $meta_cache['_yoast_wpseo_twitter-description'][0], WPGlobus::Config()->language );
|
460 |
-
|
461 |
-
if ( $presentation->source instanceof WP_Post ) {
|
462 |
-
/**
|
463 |
-
* @see wordpress-seo\inc\wpseo-functions.php
|
464 |
-
*/
|
465 |
-
$description = wpseo_replace_vars( $description, $presentation->source );
|
466 |
-
}
|
467 |
-
}
|
468 |
-
}
|
469 |
-
|
470 |
-
return $description;
|
471 |
-
}
|
472 |
-
|
473 |
-
/**
|
474 |
-
* Filter for changing the Twitter Card image.
|
475 |
-
*
|
476 |
-
* @see wordpress-seo\src\presenters\twitter\image-presenter.php
|
477 |
-
*
|
478 |
-
* @since 2.5.19
|
479 |
-
*
|
480 |
-
* @scope front
|
481 |
-
* @param string $image Image URL string.
|
482 |
-
* @param Indexable_Presentation $presentation The presentation of an indexable.
|
483 |
-
*
|
484 |
-
* @return string
|
485 |
-
*/
|
486 |
-
public static function filter_front__twitter_image( $image, $presentation ) {
|
487 |
-
|
488 |
-
if ( empty( $image ) ) {
|
489 |
-
return $image;
|
490 |
-
}
|
491 |
-
|
492 |
-
if ( 'post' == $presentation->model->object_type ) {
|
493 |
-
|
494 |
-
$meta_cache = wp_cache_get( $presentation->model->object_id, 'post_meta' );
|
495 |
-
|
496 |
-
if ( ! empty( $meta_cache['_yoast_wpseo_twitter-image'][0] ) ) {
|
497 |
-
|
498 |
-
$image = WPGlobus_Core::text_filter( $meta_cache['_yoast_wpseo_twitter-image'][0], WPGlobus::Config()->language );
|
499 |
-
|
500 |
-
if ( $presentation->source instanceof WP_Post ) {
|
501 |
-
/**
|
502 |
-
* @see wordpress-seo\inc\wpseo-functions.php
|
503 |
-
*/
|
504 |
-
$image = wpseo_replace_vars( $image, $presentation->source );
|
505 |
-
}
|
506 |
-
}
|
507 |
-
}
|
508 |
-
|
509 |
-
return $image;
|
510 |
-
}
|
511 |
-
|
512 |
-
/**
|
513 |
-
* Filter for changing the Yoast SEO generated title.
|
514 |
-
*
|
515 |
-
* @see wordpress-seo\src\presenters\open-graph\title-presenter.php
|
516 |
-
*
|
517 |
-
* @since 2.5.19
|
518 |
-
*
|
519 |
-
* @scope front
|
520 |
-
* @param string $title The title.
|
521 |
-
* @param Indexable_Presentation $presentation The presentation of an indexable.
|
522 |
-
*
|
523 |
-
* @return string
|
524 |
-
*/
|
525 |
-
public static function filter_front__opengraph_title( $title, $presentation ) {
|
526 |
-
|
527 |
-
if ( empty( $title ) ) {
|
528 |
-
return $title;
|
529 |
-
}
|
530 |
-
|
531 |
-
if ( 'post' == $presentation->model->object_type ) {
|
532 |
-
|
533 |
-
$meta_cache = wp_cache_get( $presentation->model->object_id, 'post_meta' );
|
534 |
-
|
535 |
-
if ( ! empty( $meta_cache['_yoast_wpseo_opengraph-title'][0] ) ) {
|
536 |
-
|
537 |
-
$title = WPGlobus_Core::text_filter( $meta_cache['_yoast_wpseo_opengraph-title'][0], WPGlobus::Config()->language );
|
538 |
-
|
539 |
-
if ( $presentation->source instanceof WP_Post ) {
|
540 |
-
/**
|
541 |
-
* @see wordpress-seo\inc\wpseo-functions.php
|
542 |
-
*/
|
543 |
-
$title = wpseo_replace_vars( $title, $presentation->source );
|
544 |
-
}
|
545 |
-
|
546 |
-
} else {
|
547 |
-
|
548 |
-
/**
|
549 |
-
* @since 2.5.23
|
550 |
-
*/
|
551 |
-
if ( WPGlobus_Core::has_translations( $title ) ) {
|
552 |
-
$title = WPGlobus_Core::extract_text( $title, WPGlobus::Config()->language );
|
553 |
-
}
|
554 |
-
|
555 |
-
}
|
556 |
-
|
557 |
-
} elseif ( 'term' == $presentation->model->object_type ) {
|
558 |
-
|
559 |
-
/**
|
560 |
-
* Taxonomy.
|
561 |
-
*/
|
562 |
-
$__title = self::get_taxonomy_meta( $presentation->model->object_sub_type, $presentation->model->object_id, 'wpseo_title' );
|
563 |
-
|
564 |
-
if ( empty( $__title ) ) {
|
565 |
-
$__title = self::get_option( 'wpseo_titles', 'title-tax-' . $presentation->model->object_sub_type );
|
566 |
-
}
|
567 |
-
|
568 |
-
$title = wpseo_replace_vars( $__title, $presentation->source );
|
569 |
-
}
|
570 |
-
|
571 |
-
return $title;
|
572 |
-
}
|
573 |
-
|
574 |
-
/**
|
575 |
-
* Filter post meta.
|
576 |
-
*
|
577 |
-
* @since 1.9.21
|
578 |
-
* @since 2.1.3
|
579 |
-
* @see function function get_value() in wordpress-seo\inc\class-wpseo-meta.php
|
580 |
-
*/
|
581 |
-
public static function filter__get_post_metadata( $check, $object_id, $meta_key, $single ) {
|
582 |
-
|
583 |
-
global $post;
|
584 |
-
|
585 |
-
if ( $single ) {
|
586 |
-
return $check;
|
587 |
-
}
|
588 |
-
|
589 |
-
if ( ! is_object($post) ) {
|
590 |
-
return $check;
|
591 |
-
}
|
592 |
-
|
593 |
-
if ( $object_id != $post->ID ) {
|
594 |
-
return $check;
|
595 |
-
}
|
596 |
-
|
597 |
-
/**
|
598 |
-
* May be called many times on one page. Let's cache.
|
599 |
-
*/
|
600 |
-
static $_done = null;
|
601 |
-
if ( ! is_null($_done) ) {
|
602 |
-
return $check;
|
603 |
-
}
|
604 |
-
|
605 |
-
$meta_type = 'post';
|
606 |
-
|
607 |
-
$meta_cache = wp_cache_get($object_id, $meta_type . '_meta');
|
608 |
-
|
609 |
-
if ( ! empty($meta_cache['_yoast_wpseo_title'][0]) ) {
|
610 |
-
$meta_cache['_yoast_wpseo_title'][0] = WPGlobus_Core::text_filter( $meta_cache['_yoast_wpseo_title'][0], WPGlobus::Config()->language, WPGlobus::RETURN_EMPTY );
|
611 |
-
wp_cache_replace( $object_id, $meta_cache, $meta_type . '_meta' );
|
612 |
-
}
|
613 |
-
|
614 |
-
/**
|
615 |
-
* @since 2.2.33
|
616 |
-
*/
|
617 |
-
if ( ! empty($meta_cache['_yoast_wpseo_focuskw'][0]) ) {
|
618 |
-
$meta_cache['_yoast_wpseo_focuskw'][0] = WPGlobus_Core::text_filter( $meta_cache['_yoast_wpseo_focuskw'][0], WPGlobus::Config()->language, WPGlobus::RETURN_EMPTY );
|
619 |
-
wp_cache_replace( $object_id, $meta_cache, $meta_type . '_meta' );
|
620 |
-
}
|
621 |
-
|
622 |
-
$_done = true;
|
623 |
-
|
624 |
-
return $check;
|
625 |
-
}
|
626 |
-
|
627 |
-
/**
|
628 |
-
* Filter Yoast post meta keywords.
|
629 |
-
*
|
630 |
-
* @scope front
|
631 |
-
* @since 1.8.8
|
632 |
-
*
|
633 |
-
* @param string $keywords Multilingual keywords.
|
634 |
-
*
|
635 |
-
* @return string.
|
636 |
-
*/
|
637 |
-
public static function filter__metakeywords( $keywords ) {
|
638 |
-
if ( WPGlobus::Config()->language != WPGlobus::Config()->default_language ) {
|
639 |
-
return '';
|
640 |
-
}
|
641 |
-
return WPGlobus_Core::text_filter($keywords, WPGlobus::Config()->language, WPGlobus::RETURN_EMPTY);
|
642 |
-
}
|
643 |
-
|
644 |
-
/**
|
645 |
-
* Filter wpseo meta description.
|
646 |
-
*
|
647 |
-
* @see wordpress-seo\src\presenters\meta-description-presenter.php
|
648 |
-
* @see wordpress-seo\src\presenters\open-graph\description-presenter.php
|
649 |
-
*
|
650 |
-
* @since 2.4
|
651 |
-
* @since 2.5.1 Added support of taxonomies.
|
652 |
-
*
|
653 |
-
* @scope front
|
654 |
-
*
|
655 |
-
* @param string $meta_description Value from @see `description` field in `wp_yoast_indexable` table.
|
656 |
-
* @param Indexable_Presentation $presentation The presentation of an indexable.
|
657 |
-
*
|
658 |
-
* @return string
|
659 |
-
*/
|
660 |
-
public static function filter_front__description( $meta_description, $presentation ) {
|
661 |
-
|
662 |
-
/**
|
663 |
-
* $meta_description is received from `description` field in `wp_yoast_indexable` table.
|
664 |
-
*/
|
665 |
-
|
666 |
-
/**
|
667 |
-
* Init description.
|
668 |
-
*/
|
669 |
-
$description = '';
|
670 |
-
|
671 |
-
/**
|
672 |
-
* Key to define that `wpseo_metadesc` filter was already fired earlier.
|
673 |
-
*/
|
674 |
-
static $meta_description_presenter_was_fired = false;
|
675 |
-
|
676 |
-
if ( 'post' == $presentation->model->object_type ) {
|
677 |
-
|
678 |
-
/**
|
679 |
-
* Post.
|
680 |
-
*/
|
681 |
-
if ( $meta_description_presenter_was_fired ) {
|
682 |
-
/**
|
683 |
-
* Set meta description to empty value for `wpseo_opengraph_desc` filter like for empty $meta_description in `wpseo_metadesc` filter.
|
684 |
-
*/
|
685 |
-
$meta_description = '';
|
686 |
-
} else {
|
687 |
-
if ( empty($meta_description) ) {
|
688 |
-
$meta_description_presenter_was_fired = true;
|
689 |
-
}
|
690 |
-
}
|
691 |
-
|
692 |
-
$description = self::get_meta( '_yoast_wpseo_metadesc', $meta_description );
|
693 |
-
|
694 |
-
} elseif ( 'term' == $presentation->model->object_type ) {
|
695 |
-
|
696 |
-
/**
|
697 |
-
* Taxonomy.
|
698 |
-
* @since 2.5.1
|
699 |
-
*/
|
700 |
-
if ( $meta_description_presenter_was_fired ) {
|
701 |
-
|
702 |
-
/**
|
703 |
-
* This is `wpseo_opengraph_desc` filter with empty yoast description.
|
704 |
-
* @todo maybe need to use cache for term object.
|
705 |
-
*/
|
706 |
-
$term = get_term( $presentation->model->object_id );
|
707 |
-
if ( $term instanceof WP_Term ) {
|
708 |
-
$description = $term->description;
|
709 |
-
} else {
|
710 |
-
$description = '';
|
711 |
-
}
|
712 |
-
|
713 |
-
} else {
|
714 |
-
|
715 |
-
/**
|
716 |
-
* @since 2.5.22
|
717 |
-
*/
|
718 |
-
$description = self::get_taxonomy_meta( $presentation->model->object_sub_type, $presentation->model->object_id, 'wpseo_desc' );
|
719 |
-
|
720 |
-
|
721 |
-
|
722 |
-
|
723 |
-
|
724 |
-
|
725 |
-
|
726 |
-
|
727 |
-
|
728 |
-
|
729 |
-
|
730 |
-
|
731 |
-
|
732 |
-
|
733 |
-
|
734 |
-
|
735 |
-
|
736 |
-
|
737 |
-
|
738 |
-
|
739 |
-
|
740 |
-
|
741 |
-
|
742 |
-
|
743 |
-
|
744 |
-
*
|
745 |
-
*
|
746 |
-
* @
|
747 |
-
* @
|
748 |
-
*
|
749 |
-
* @
|
750 |
-
|
751 |
-
|
752 |
-
|
753 |
-
|
754 |
-
|
755 |
-
|
756 |
-
|
757 |
-
|
758 |
-
|
759 |
-
|
760 |
-
|
761 |
-
|
762 |
-
|
763 |
-
$
|
764 |
-
}
|
765 |
-
|
766 |
-
|
767 |
-
|
768 |
-
|
769 |
-
|
770 |
-
|
771 |
-
|
772 |
-
$
|
773 |
-
|
774 |
-
|
775 |
-
|
776 |
-
|
777 |
-
|
778 |
-
|
779 |
-
|
780 |
-
|
781 |
-
|
782 |
-
|
783 |
-
|
784 |
-
|
785 |
-
|
786 |
-
|
787 |
-
|
788 |
-
|
789 |
-
|
790 |
-
|
791 |
-
|
792 |
-
|
793 |
-
|
794 |
-
|
795 |
-
|
796 |
-
|
797 |
-
|
798 |
-
|
799 |
-
|
800 |
-
|
801 |
-
|
802 |
-
|
803 |
-
*
|
804 |
-
*
|
805 |
-
* @
|
806 |
-
* @
|
807 |
-
*
|
808 |
-
*
|
809 |
-
|
810 |
-
|
811 |
-
|
812 |
-
|
813 |
-
|
814 |
-
|
815 |
-
|
816 |
-
|
817 |
-
|
818 |
-
|
819 |
-
|
820 |
-
|
821 |
-
|
822 |
-
|
823 |
-
|
824 |
-
|
825 |
-
|
826 |
-
|
827 |
-
|
828 |
-
|
829 |
-
|
830 |
-
|
831 |
-
|
832 |
-
|
833 |
-
|
834 |
-
|
835 |
-
*
|
836 |
-
*
|
837 |
-
* @
|
838 |
-
*
|
839 |
-
* @
|
840 |
-
|
841 |
-
|
842 |
-
|
843 |
-
|
844 |
-
|
845 |
-
|
846 |
-
|
847 |
-
|
848 |
-
|
849 |
-
|
850 |
-
|
851 |
-
|
852 |
-
|
853 |
-
|
854 |
-
|
855 |
-
|
856 |
-
|
857 |
-
|
858 |
-
|
859 |
-
|
860 |
-
|
861 |
-
|
862 |
-
|
863 |
-
|
864 |
-
|
865 |
-
|
866 |
-
|
867 |
-
|
868 |
-
|
869 |
-
|
870 |
-
|
871 |
-
|
872 |
-
|
873 |
-
|
874 |
-
|
875 |
-
|
876 |
-
|
877 |
-
|
878 |
-
|
879 |
-
|
880 |
-
|
881 |
-
|
882 |
-
|
883 |
-
|
884 |
-
|
885 |
-
|
886 |
-
|
887 |
-
|
888 |
-
|
889 |
-
|
890 |
-
|
891 |
-
|
892 |
-
|
893 |
-
$output =
|
894 |
-
}
|
895 |
-
|
896 |
-
|
897 |
-
|
898 |
-
|
899 |
-
|
900 |
-
|
901 |
-
|
902 |
-
|
903 |
-
|
904 |
-
|
905 |
-
|
906 |
-
|
907 |
-
|
908 |
-
|
909 |
-
|
910 |
-
$
|
911 |
-
$
|
912 |
-
}
|
913 |
-
|
914 |
-
|
915 |
-
$
|
916 |
-
$
|
917 |
-
|
918 |
-
|
919 |
-
|
920 |
-
|
921 |
-
|
922 |
-
|
923 |
-
|
924 |
-
|
925 |
-
|
926 |
-
|
927 |
-
|
928 |
-
|
929 |
-
|
930 |
-
|
931 |
-
|
932 |
-
|
933 |
-
|
934 |
-
|
935 |
-
|
936 |
-
|
937 |
-
|
938 |
-
|
939 |
-
|
940 |
-
|
941 |
-
|
942 |
-
|
943 |
-
|
944 |
-
|
945 |
-
|
946 |
-
|
947 |
-
|
948 |
-
|
949 |
-
|
950 |
-
|
951 |
-
|
952 |
-
|
953 |
-
|
954 |
-
|
955 |
-
|
956 |
-
|
957 |
-
|
958 |
-
|
959 |
-
|
960 |
-
|
961 |
-
|
962 |
-
|
963 |
-
|
964 |
-
|
965 |
-
|
966 |
-
|
967 |
-
|
968 |
-
|
969 |
-
|
970 |
-
|
971 |
-
|
972 |
-
*
|
973 |
-
*
|
974 |
-
|
975 |
-
|
976 |
-
|
977 |
-
|
978 |
-
|
979 |
-
|
980 |
-
|
981 |
-
|
982 |
-
|
983 |
-
|
984 |
-
|
985 |
-
|
986 |
-
|
987 |
-
|
988 |
-
|
989 |
-
|
990 |
-
|
991 |
-
|
992 |
-
|
993 |
-
|
994 |
-
|
995 |
-
|
996 |
-
*
|
997 |
-
*
|
998 |
-
|
999 |
-
|
1000 |
-
|
1001 |
-
|
1002 |
-
|
1003 |
-
|
1004 |
-
*
|
1005 |
-
|
1006 |
-
|
1007 |
-
|
1008 |
-
|
1009 |
-
|
1010 |
-
|
1011 |
-
|
1012 |
-
|
1013 |
-
|
1014 |
-
|
1015 |
-
|
1016 |
-
|
1017 |
-
|
1018 |
-
|
1019 |
-
|
1020 |
-
|
1021 |
-
|
1022 |
-
if ( empty( $
|
1023 |
-
|
1024 |
-
|
1025 |
-
|
1026 |
-
|
1027 |
-
|
1028 |
-
|
1029 |
-
|
1030 |
-
|
1031 |
-
|
1032 |
-
|
1033 |
-
|
1034 |
-
|
1035 |
-
|
1036 |
-
|
1037 |
-
|
1038 |
-
|
1039 |
-
|
1040 |
-
|
1041 |
-
|
1042 |
-
|
1043 |
-
|
1044 |
-
|
1045 |
-
|
1046 |
-
|
1047 |
-
|
1048 |
-
|
1049 |
-
|
1050 |
-
|
1051 |
-
|
1052 |
-
|
1053 |
-
|
1054 |
-
|
1055 |
-
|
1056 |
-
|
1057 |
-
|
1058 |
-
|
1059 |
-
|
1060 |
-
|
1061 |
-
|
1062 |
-
|
1063 |
-
|
1064 |
-
|
1065 |
-
|
1066 |
-
|
1067 |
-
|
1068 |
-
|
1069 |
-
|
1070 |
-
|
1071 |
-
|
1072 |
-
|
1073 |
-
|
1074 |
-
|
1075 |
-
|
1076 |
-
|
1077 |
-
|
1078 |
-
|
1079 |
-
|
1080 |
-
|
1081 |
-
|
1082 |
-
|
1083 |
-
|
1084 |
-
|
1085 |
-
|
1086 |
-
|
1087 |
-
|
1088 |
-
|
1089 |
-
|
1090 |
-
|
1091 |
-
|
1092 |
-
|
1093 |
-
|
1094 |
-
|
1095 |
-
|
1096 |
-
$
|
1097 |
-
|
1098 |
-
|
1099 |
-
|
1100 |
-
|
1101 |
-
|
1102 |
-
|
1103 |
-
|
1104 |
-
|
1105 |
-
|
1106 |
-
|
1107 |
-
|
1108 |
-
|
1109 |
-
|
1110 |
-
|
1111 |
-
|
1112 |
-
|
1113 |
-
|
1114 |
-
|
1115 |
-
|
1116 |
-
|
1117 |
-
|
1118 |
-
|
1119 |
-
*
|
1120 |
-
*
|
1121 |
-
*
|
1122 |
-
*
|
1123 |
-
|
1124 |
-
|
1125 |
-
|
1126 |
-
|
1127 |
-
|
1128 |
-
|
1129 |
-
|
1130 |
-
|
1131 |
-
|
1132 |
-
|
1133 |
-
|
1134 |
-
|
1135 |
-
|
1136 |
-
|
1137 |
-
|
1138 |
-
|
1139 |
-
|
1140 |
-
|
1141 |
-
|
1142 |
-
|
1143 |
-
|
1144 |
-
|
1145 |
-
|
1146 |
-
|
1147 |
-
|
1148 |
-
|
1149 |
-
|
1150 |
-
|
1151 |
-
|
1152 |
-
|
1153 |
-
|
1154 |
-
|
1155 |
-
|
1156 |
-
|
1157 |
-
|
1158 |
-
|
1159 |
-
|
1160 |
-
|
1161 |
-
|
1162 |
-
|
1163 |
-
|
1164 |
-
|
1165 |
-
|
1166 |
-
|
1167 |
-
|
1168 |
-
|
1169 |
-
|
1170 |
-
|
1171 |
-
|
1172 |
-
$
|
1173 |
-
|
1174 |
-
|
1175 |
-
|
1176 |
-
$
|
1177 |
-
|
1178 |
-
|
1179 |
-
|
1180 |
-
|
1181 |
-
|
1182 |
-
|
1183 |
-
|
1184 |
-
|
1185 |
-
|
1186 |
-
|
1187 |
-
|
1188 |
-
|
1189 |
-
|
1190 |
-
|
1191 |
-
|
1192 |
-
|
1193 |
-
|
1194 |
-
|
1195 |
-
|
1196 |
-
|
1197 |
-
|
1198 |
-
|
1199 |
-
|
1200 |
-
|
1201 |
-
|
1202 |
-
|
1203 |
-
|
1204 |
-
|
1205 |
-
|
1206 |
-
|
1207 |
-
|
1208 |
-
|
1209 |
-
|
1210 |
-
|
1211 |
-
|
1212 |
-
|
1213 |
-
|
1214 |
-
|
1215 |
-
|
1216 |
-
|
1217 |
-
|
1218 |
-
|
1219 |
-
|
1220 |
-
|
1221 |
-
|
1222 |
-
|
1223 |
-
|
1224 |
-
|
1225 |
-
|
1226 |
-
|
1227 |
-
|
1228 |
-
|
1229 |
-
|
1230 |
-
|
1231 |
-
|
1232 |
-
|
1233 |
-
|
1234 |
-
|
1235 |
-
|
1236 |
-
|
1237 |
-
$
|
1238 |
-
|
1239 |
-
|
1240 |
-
$
|
1241 |
-
|
1242 |
-
|
1243 |
-
|
1244 |
-
|
1245 |
-
|
1246 |
-
|
1247 |
-
|
1248 |
-
|
1249 |
-
|
1250 |
-
|
1251 |
-
|
1252 |
-
|
1253 |
-
|
1254 |
-
|
1255 |
-
|
1256 |
-
|
1257 |
-
|
1258 |
-
|
1259 |
-
|
1260 |
-
|
1261 |
-
|
1262 |
-
|
1263 |
-
|
1264 |
-
|
1265 |
-
'
|
1266 |
-
|
1267 |
-
|
1268 |
-
|
1269 |
-
$
|
1270 |
-
esc_html__( 'Please
|
1271 |
-
'<a href="
|
1272 |
-
|
1273 |
-
|
1274 |
-
|
1275 |
-
|
1276 |
-
|
1277 |
-
'
|
1278 |
-
|
1279 |
-
|
1280 |
-
|
1281 |
-
$
|
1282 |
-
esc_html__( 'Please
|
1283 |
-
'<a href="
|
1284 |
-
|
1285 |
-
|
1286 |
-
|
1287 |
-
|
1288 |
-
|
1289 |
-
'
|
1290 |
-
|
1291 |
-
|
1292 |
-
|
1293 |
-
$
|
1294 |
-
esc_html__( 'Please
|
1295 |
-
'<a href="
|
1296 |
-
|
1297 |
-
|
1298 |
-
|
1299 |
-
|
1300 |
-
|
1301 |
-
'
|
1302 |
-
|
1303 |
-
|
1304 |
-
|
1305 |
-
|
1306 |
-
|
1307 |
-
|
1308 |
-
|
1309 |
-
|
1310 |
-
|
1311 |
-
|
1312 |
-
|
1313 |
-
|
1314 |
-
'
|
1315 |
-
|
1316 |
-
|
1317 |
-
|
1318 |
-
|
1319 |
-
|
1320 |
-
|
1321 |
-
|
1322 |
-
|
1323 |
-
|
1324 |
-
|
1325 |
-
|
1326 |
-
|
1327 |
-
|
1328 |
-
|
1329 |
-
|
1330 |
-
|
1331 |
-
|
1332 |
-
|
1333 |
-
|
1334 |
-
|
1335 |
-
|
1336 |
-
|
1337 |
-
|
1338 |
-
|
1339 |
-
|
1340 |
-
|
1341 |
-
|
1342 |
-
|
1343 |
-
/**
|
1344 |
-
|
1345 |
-
|
1346 |
-
|
1347 |
-
/**
|
1348 |
-
*
|
1349 |
-
*/
|
1350 |
-
|
1351 |
-
|
1352 |
-
|
1353 |
-
|
1354 |
-
|
1355 |
-
|
1356 |
-
|
1357 |
-
|
1358 |
-
|
1359 |
-
|
1360 |
-
|
1361 |
-
|
1362 |
-
|
1363 |
-
|
1364 |
-
|
1365 |
-
|
1366 |
-
|
1367 |
-
|
1368 |
-
|
1369 |
-
|
1370 |
-
|
1371 |
-
|
1372 |
-
|
1373 |
-
|
1374 |
-
|
1375 |
-
|
1376 |
-
|
1377 |
-
|
1378 |
-
|
1379 |
-
|
1380 |
-
|
1381 |
-
|
1382 |
-
|
1383 |
-
'
|
1384 |
-
'
|
1385 |
-
'
|
1386 |
-
|
1387 |
-
|
1388 |
-
|
1389 |
-
|
1390 |
-
|
1391 |
-
|
1392 |
-
|
1393 |
-
|
1394 |
-
|
1395 |
-
|
1396 |
-
|
1397 |
-
|
1398 |
-
|
1399 |
-
|
1400 |
-
|
1401 |
-
|
1402 |
-
|
1403 |
-
|
1404 |
-
|
1405 |
-
|
1406 |
-
|
1407 |
-
|
1408 |
-
|
1409 |
-
|
1410 |
-
|
1411 |
-
|
1412 |
-
|
1413 |
-
|
1414 |
-
|
1415 |
-
|
1416 |
-
|
1417 |
-
|
1418 |
-
|
1419 |
-
|
1420 |
-
|
1421 |
-
|
1422 |
-
|
1423 |
-
|
1424 |
-
|
1425 |
-
|
1426 |
-
|
1427 |
-
|
1428 |
-
|
1429 |
-
|
1430 |
-
|
1431 |
-
|
1432 |
-
|
1433 |
-
|
1434 |
-
|
1435 |
-
|
1436 |
-
|
1437 |
-
|
1438 |
-
|
1439 |
-
|
1440 |
-
|
1441 |
-
*
|
1442 |
-
*
|
1443 |
-
* @
|
1444 |
-
* @
|
1445 |
-
|
1446 |
-
|
1447 |
-
|
1448 |
-
|
1449 |
-
|
1450 |
-
|
1451 |
-
|
1452 |
-
|
1453 |
-
|
1454 |
-
|
1455 |
-
|
1456 |
-
|
1457 |
-
|
1458 |
-
|
1459 |
-
|
1460 |
-
|
1461 |
-
|
1462 |
-
|
1463 |
-
|
1464 |
-
|
1465 |
-
|
1466 |
-
|
1467 |
-
|
1468 |
-
|
1469 |
-
|
1470 |
-
|
1471 |
-
*
|
1472 |
-
*
|
1473 |
-
* @
|
1474 |
-
* @
|
1475 |
-
*
|
1476 |
-
* @
|
1477 |
-
|
1478 |
-
|
1479 |
-
|
1480 |
-
|
1481 |
-
|
1482 |
-
|
1483 |
-
|
1484 |
-
|
1485 |
-
|
1486 |
-
|
1487 |
-
|
1488 |
-
|
1489 |
-
if ( ! empty( $graph_piece['
|
1490 |
-
$graph_piece['
|
1491 |
-
}
|
1492 |
-
|
1493 |
-
|
1494 |
-
|
1495 |
-
|
1496 |
-
|
1497 |
-
|
1498 |
-
|
1499 |
-
|
1500 |
-
|
1501 |
-
|
1502 |
-
|
1503 |
-
|
1504 |
-
|
1505 |
-
|
1506 |
-
|
1507 |
-
|
1508 |
-
|
1509 |
-
|
1510 |
-
|
1511 |
-
|
1512 |
-
|
1513 |
-
|
1514 |
-
|
1515 |
-
|
1516 |
-
*
|
1517 |
-
*
|
1518 |
-
* @
|
1519 |
-
*
|
1520 |
-
* @
|
1521 |
-
|
1522 |
-
|
1523 |
-
|
1524 |
-
|
1525 |
-
|
1526 |
-
|
1527 |
-
|
1528 |
-
|
1529 |
-
|
1530 |
-
|
1531 |
-
|
1532 |
-
|
1533 |
-
|
1534 |
-
|
1535 |
-
|
1536 |
-
|
1537 |
-
|
1538 |
-
|
1539 |
-
|
1540 |
-
|
1541 |
-
|
1542 |
-
|
1543 |
-
|
1544 |
-
|
1545 |
-
|
1546 |
-
|
1547 |
-
|
1548 |
-
|
1549 |
-
|
1550 |
-
|
1551 |
-
|
1552 |
-
|
1553 |
-
|
1554 |
-
|
1555 |
-
|
1556 |
-
|
1557 |
-
|
1558 |
-
|
1559 |
-
|
1560 |
-
|
1561 |
-
|
1562 |
-
|
1563 |
-
|
1564 |
-
|
1565 |
-
|
1566 |
-
|
1567 |
-
|
1568 |
-
|
1569 |
-
|
1570 |
-
|
1571 |
-
|
1572 |
-
|
1573 |
-
|
1574 |
-
|
1575 |
-
|
1576 |
-
|
1577 |
-
|
1578 |
-
|
1579 |
-
|
1580 |
-
|
1581 |
-
|
1582 |
-
|
1583 |
-
|
1584 |
-
|
1585 |
-
|
1586 |
-
|
1587 |
-
|
1588 |
-
|
1589 |
-
|
1590 |
-
|
1591 |
-
|
1592 |
-
|
1593 |
-
|
1594 |
-
|
1595 |
-
|
1596 |
-
|
1597 |
-
|
1598 |
-
|
1599 |
-
|
1600 |
-
|
1601 |
-
|
1602 |
-
|
1603 |
-
|
1604 |
-
|
1605 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1606 |
# --- EOF
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* File: class-wpglobus-yoastseo140.php
|
4 |
+
*
|
5 |
+
* Support of Yoast SEO 14.0
|
6 |
+
*
|
7 |
+
* @package WPGlobus\Vendor\YoastSEO
|
8 |
+
* @since 2.4
|
9 |
+
* @since 2.5.19 Added support multilingual fields for social tab.
|
10 |
+
*/
|
11 |
+
|
12 |
+
/**
|
13 |
+
* Class WPGlobus_YoastSEO.
|
14 |
+
*/
|
15 |
+
class WPGlobus_YoastSEO {
|
16 |
+
|
17 |
+
/**
|
18 |
+
* Yoast SEO separator.
|
19 |
+
*
|
20 |
+
* @var string
|
21 |
+
*/
|
22 |
+
public static $yoastseo_separator = '';
|
23 |
+
|
24 |
+
/**
|
25 |
+
* Name of the script.
|
26 |
+
*
|
27 |
+
* @var string
|
28 |
+
*/
|
29 |
+
public static $handle_script = 'wpglobus-yoastseo';
|
30 |
+
|
31 |
+
/**
|
32 |
+
* Name of the dashboard script.
|
33 |
+
*
|
34 |
+
* @since 2.4.5
|
35 |
+
* @var string
|
36 |
+
*/
|
37 |
+
public static $handle_script_dashboard = 'wpglobus-yoastseo-dashboard';
|
38 |
+
|
39 |
+
/**
|
40 |
+
* Name of the premium script.
|
41 |
+
*
|
42 |
+
* @since 1.7.2
|
43 |
+
* @var string
|
44 |
+
*/
|
45 |
+
public static $handle_script_premium = 'wpglobus-yoastseo-premium';
|
46 |
+
|
47 |
+
/**
|
48 |
+
* Current version yoast seo.
|
49 |
+
*
|
50 |
+
* @since 1.8
|
51 |
+
* @var string
|
52 |
+
*/
|
53 |
+
protected static $version = '';
|
54 |
+
|
55 |
+
/**
|
56 |
+
* Contains wpseo post meta.
|
57 |
+
*
|
58 |
+
* @since 2.2.16
|
59 |
+
* @var null|array
|
60 |
+
*/
|
61 |
+
protected static $wpseo_meta = null;
|
62 |
+
|
63 |
+
/**
|
64 |
+
* Contains wpseo taxonomy meta.
|
65 |
+
*
|
66 |
+
* @since 2.5.1
|
67 |
+
* @var null|array
|
68 |
+
*/
|
69 |
+
protected static $wpseo_taxonomy_meta = null;
|
70 |
+
|
71 |
+
/**
|
72 |
+
* Contains document title.
|
73 |
+
*
|
74 |
+
* @since 2.4.7
|
75 |
+
* @var null|string
|
76 |
+
*/
|
77 |
+
protected static $title = null;
|
78 |
+
|
79 |
+
/**
|
80 |
+
* Plus access.
|
81 |
+
*
|
82 |
+
* @since 2.2.20
|
83 |
+
* @var boolean|string
|
84 |
+
*/
|
85 |
+
protected static $plus_module = false;
|
86 |
+
|
87 |
+
/**
|
88 |
+
* Canonical URLs.
|
89 |
+
*
|
90 |
+
* @since 2.5.11
|
91 |
+
* @var array
|
92 |
+
*/
|
93 |
+
protected static $canonical_url = array();
|
94 |
+
|
95 |
+
/**
|
96 |
+
* Description meta value.
|
97 |
+
*
|
98 |
+
* @scope front
|
99 |
+
* @since 2.6.3
|
100 |
+
* @var string
|
101 |
+
*/
|
102 |
+
protected static $description = '';
|
103 |
+
|
104 |
+
/**
|
105 |
+
* Static "controller"
|
106 |
+
*/
|
107 |
+
public static function controller($version, $plus_module = false) {
|
108 |
+
|
109 |
+
self::$version = $version;
|
110 |
+
self::$plus_module = $plus_module;
|
111 |
+
|
112 |
+
if ( is_admin() ) {
|
113 |
+
|
114 |
+
/**
|
115 |
+
* @since 2.2.20
|
116 |
+
*/
|
117 |
+
add_action( 'admin_print_scripts', array(
|
118 |
+
__CLASS__,
|
119 |
+
'action__admin_print_scripts'
|
120 |
+
) );
|
121 |
+
|
122 |
+
if ( WPGlobus_WP::is_pagenow( 'edit.php' ) ) {
|
123 |
+
|
124 |
+
/**
|
125 |
+
* To translate Yoast columns on `edit.php` page.
|
126 |
+
* @since 2.2.16
|
127 |
+
*/
|
128 |
+
add_filter( 'wpseo_title', array(
|
129 |
+
__CLASS__,
|
130 |
+
'filter__wpseo_title'
|
131 |
+
), 5 );
|
132 |
+
|
133 |
+
|
134 |
+
add_filter( 'wpseo_metadesc', array(
|
135 |
+
__CLASS__,
|
136 |
+
'filter__wpseo_metadesc'
|
137 |
+
), 5 );
|
138 |
+
}
|
139 |
+
|
140 |
+
} else {
|
141 |
+
|
142 |
+
/**
|
143 |
+
* Frontend.
|
144 |
+
*/
|
145 |
+
|
146 |
+
/**
|
147 |
+
* Filter SEO title and meta description on front only, when the page header HTML tags are generated.
|
148 |
+
* AJAX is probably not required (waiting for a case).
|
149 |
+
*/
|
150 |
+
// add_filter( 'wpseo_title', array( __CLASS__, 'filter__title' ), PHP_INT_MAX );
|
151 |
+
/**
|
152 |
+
* Filter title description.
|
153 |
+
* @since 2.5.22
|
154 |
+
*/
|
155 |
+
add_filter( 'wpseo_title', array( __CLASS__, 'filter_front__title' ), PHP_INT_MAX, 2 );
|
156 |
+
|
157 |
+
/**
|
158 |
+
* Filter meta description.
|
159 |
+
* @since 2.4
|
160 |
+
*/
|
161 |
+
add_filter( 'wpseo_metadesc', array( __CLASS__, 'filter_front__description' ), 5, 2 );
|
162 |
+
|
163 |
+
/**
|
164 |
+
* Open Graph.
|
165 |
+
* @since 2.4 Open Graph title.
|
166 |
+
* @since 2.4 Open Graph description.
|
167 |
+
* @since 2.4 Open Graph URL.
|
168 |
+
* @since 2.5.19 Open Graph image.
|
169 |
+
*/
|
170 |
+
add_filter( 'wpseo_opengraph_title', array( __CLASS__, 'filter_front__opengraph_title' ), 5, 2 );
|
171 |
+
add_filter( 'wpseo_opengraph_desc', array( __CLASS__, 'filter_front__opengraph_description' ), 5, 2 );
|
172 |
+
add_filter( 'wpseo_opengraph_image', array( __CLASS__, 'filter_front__opengraph_image' ), 5, 2 );
|
173 |
+
add_filter( 'wpseo_opengraph_url', array( __CLASS__, 'filter_front__localize_url' ), 5, 2 );
|
174 |
+
|
175 |
+
/**
|
176 |
+
* Twitter.
|
177 |
+
* @since 2.5.19
|
178 |
+
*/
|
179 |
+
add_filter( 'wpseo_twitter_title', array( __CLASS__, 'filter_front__twitter_title' ), 5, 2 );
|
180 |
+
add_filter( 'wpseo_twitter_description', array( __CLASS__, 'filter_front__twitter_description' ), 5, 2 );
|
181 |
+
add_filter( 'wpseo_twitter_image', array( __CLASS__, 'filter_front__twitter_image' ), 5, 2 );
|
182 |
+
|
183 |
+
/**
|
184 |
+
* Filter canonical URL and open graph URL.
|
185 |
+
* @since 2.4
|
186 |
+
*/
|
187 |
+
add_filter( 'wpseo_canonical', array( __CLASS__, 'filter_front__localize_url' ), 5, 2 );
|
188 |
+
|
189 |
+
/**
|
190 |
+
* Filter of the rel prev and next URL put out by Yoast SEO.
|
191 |
+
* @since 2.5.11
|
192 |
+
*/
|
193 |
+
add_filter( 'wpseo_adjacent_rel_url', array( __CLASS__, 'filter_front__wpseo_adjacent_rel_url' ), 5, 3 );
|
194 |
+
|
195 |
+
/**
|
196 |
+
* Filter the HTML output of the Yoast SEO breadcrumbs class.
|
197 |
+
* @since 2.4.2
|
198 |
+
*/
|
199 |
+
add_filter( 'wpseo_breadcrumb_output', array( __CLASS__, 'filter__breadcrumb_output' ), 5, 2 );
|
200 |
+
|
201 |
+
/**
|
202 |
+
* @todo check for '_yoast_wpseo_title' meta
|
203 |
+
* @see <title> view-source:http://test/test-post-seo/
|
204 |
+
* @see <title> view-source:http://test/ru/test-post-seo/
|
205 |
+
*/
|
206 |
+
add_filter( 'get_post_metadata', array( __CLASS__, 'filter__get_post_metadata' ), 6, 4 );
|
207 |
+
|
208 |
+
/**
|
209 |
+
* Filter meta keywords.
|
210 |
+
* @since 1.8.8
|
211 |
+
*/
|
212 |
+
add_filter( 'wpseo_metakeywords', array( __CLASS__, 'filter__metakeywords' ), 0 );
|
213 |
+
|
214 |
+
/**
|
215 |
+
* Filter `wpseo_schema_breadcrumb` generator.
|
216 |
+
* @since 2.4.7
|
217 |
+
*/
|
218 |
+
add_filter( 'wpseo_schema_breadcrumb', array( __CLASS__, 'filter__wpseo_schema_breadcrumb' ), 5, 2 );
|
219 |
+
|
220 |
+
/**
|
221 |
+
* Filter `wpseo_schema_webpage` generator.
|
222 |
+
* @since 2.4.14
|
223 |
+
*/
|
224 |
+
add_filter( 'wpseo_schema_webpage', array( __CLASS__, 'filter__wpseo_schema_webpage' ), 5, 2 );
|
225 |
+
}
|
226 |
+
}
|
227 |
+
|
228 |
+
/**
|
229 |
+
* obsolete @since 2.5.22
|
230 |
+
* Filter Yoast post meta title.
|
231 |
+
*
|
232 |
+
* @scope front
|
233 |
+
* @since 1.9.18
|
234 |
+
* @since 2.4.7 Handle multilingual title from `postmeta` table.
|
235 |
+
*
|
236 |
+
* @param string $title Post title.
|
237 |
+
*
|
238 |
+
* @return string.
|
239 |
+
*/
|
240 |
+
public static function filter__title( $title ) {
|
241 |
+
|
242 |
+
/**
|
243 |
+
* In some cases we can get $title like {:en}En title{:}{:ru}Ru title{:}{:fr}Fr title{:} - SiteTitle
|
244 |
+
* so, let's filter.
|
245 |
+
*/
|
246 |
+
if ( WPGlobus_Core::has_translations($title) ) {
|
247 |
+
|
248 |
+
if ( is_null( self::$title ) ) {
|
249 |
+
self::$title = $title;
|
250 |
+
}
|
251 |
+
return WPGlobus_Core::extract_text( self::$title, WPGlobus::Config()->language );
|
252 |
+
}
|
253 |
+
|
254 |
+
/**
|
255 |
+
* We can get title in last saved language (has no multilingual) from @see `wp_yoast_indexable` table.
|
256 |
+
* So, we need get multilingual title from `postmeta` table.
|
257 |
+
* @since 2.4.7
|
258 |
+
*/
|
259 |
+
if ( ! is_null( self::$title ) ) {
|
260 |
+
return WPGlobus_Core::extract_text( self::$title, WPGlobus::Config()->language );
|
261 |
+
}
|
262 |
+
|
263 |
+
/** @global wpdb $wpdb */
|
264 |
+
global $wpdb;
|
265 |
+
|
266 |
+
/** @global WP_Post $post */
|
267 |
+
global $post;
|
268 |
+
|
269 |
+
/**
|
270 |
+
* @since 2.4.14 Fixed PHP Notice: Trying to get property 'ID' of non-object.
|
271 |
+
*/
|
272 |
+
if ( $post instanceof WP_Post && (int) $post->ID > 0 ) {
|
273 |
+
$query = $wpdb->prepare(
|
274 |
+
"SELECT meta_value FROM {$wpdb->prefix}postmeta AS m WHERE m.post_id = %s AND m.meta_key = %s",
|
275 |
+
$post->ID,
|
276 |
+
'_yoast_wpseo_title'
|
277 |
+
);
|
278 |
+
|
279 |
+
$meta = $wpdb->get_var($query);
|
280 |
+
if ( ! empty($meta) && false != mb_strpos($meta, $title) && WPGlobus_Core::has_translations($meta) ) {
|
281 |
+
self::$title = $meta;
|
282 |
+
return WPGlobus_Core::extract_text( self::$title, WPGlobus::Config()->language );
|
283 |
+
}
|
284 |
+
}
|
285 |
+
|
286 |
+
return $title;
|
287 |
+
}
|
288 |
+
|
289 |
+
/**
|
290 |
+
* Filter for changing the Yoast SEO generated Open Graph description.
|
291 |
+
*
|
292 |
+
* @see wordpress-seo\src\presenters\open-graph\description-presenter.php
|
293 |
+
*
|
294 |
+
* @since 2.5.19
|
295 |
+
*
|
296 |
+
* @scope front
|
297 |
+
* @param string $description The description.
|
298 |
+
* @param Indexable_Presentation $presentation The presentation of an indexable.
|
299 |
+
*
|
300 |
+
* @return string
|
301 |
+
*/
|
302 |
+
public static function filter_front__opengraph_description( $description, $presentation ) {
|
303 |
+
|
304 |
+
if ( empty( $description ) ) {
|
305 |
+
return $description;
|
306 |
+
}
|
307 |
+
|
308 |
+
if ( 'post' == $presentation->model->object_type ) {
|
309 |
+
|
310 |
+
$meta_cache = wp_cache_get( $presentation->model->object_id, 'post_meta' );
|
311 |
+
|
312 |
+
if ( ! empty( $meta_cache['_yoast_wpseo_opengraph-description'][0] ) ) {
|
313 |
+
|
314 |
+
$description = WPGlobus_Core::text_filter( $meta_cache['_yoast_wpseo_opengraph-description'][0], WPGlobus::Config()->language );
|
315 |
+
|
316 |
+
if ( $presentation->source instanceof WP_Post ) {
|
317 |
+
/**
|
318 |
+
* @see wordpress-seo\inc\wpseo-functions.php
|
319 |
+
*/
|
320 |
+
$description = wpseo_replace_vars( $description, $presentation->source );
|
321 |
+
}
|
322 |
+
} else {
|
323 |
+
/**
|
324 |
+
* Opengraph description is empty. We get it from `description` meta.
|
325 |
+
* @since 2.6.3
|
326 |
+
*/
|
327 |
+
$description = self::$description;
|
328 |
+
}
|
329 |
+
|
330 |
+
} elseif ( 'term' == $presentation->model->object_type ) {
|
331 |
+
|
332 |
+
/**
|
333 |
+
* Taxonomy.
|
334 |
+
*/
|
335 |
+
$__desc = self::get_taxonomy_meta( $presentation->model->object_sub_type, $presentation->model->object_id, 'wpseo_desc' );
|
336 |
+
|
337 |
+
if ( empty( $__desc ) ) {
|
338 |
+
|
339 |
+
$__template = self::get_option( 'wpseo_titles', 'metadesc-tax-' . $presentation->model->object_sub_type );
|
340 |
+
|
341 |
+
if ( ! empty( $__template ) ) {
|
342 |
+
$__desc = $__template;
|
343 |
+
} else {
|
344 |
+
// @W.I.P if empty `Meta description` from Yoast, then we need output `Description` from Edit taxonomy page.
|
345 |
+
$__desc = $presentation->source->description;
|
346 |
+
}
|
347 |
+
|
348 |
+
}
|
349 |
+
|
350 |
+
$description = wpseo_replace_vars( $__desc, $presentation->source );
|
351 |
+
}
|
352 |
+
|
353 |
+
return $description;
|
354 |
+
}
|
355 |
+
|
356 |
+
/**
|
357 |
+
* Filter for changing the Open Graph image.
|
358 |
+
*
|
359 |
+
* @see wordpress-seo\src\presenters\open-graph\image-presenter.php
|
360 |
+
*
|
361 |
+
* @since 2.5.19
|
362 |
+
*
|
363 |
+
* @scope front
|
364 |
+
* @param string $image_url The URL of the Open Graph image.
|
365 |
+
* @param Indexable_Presentation $presentation The presentation of an indexable.
|
366 |
+
*
|
367 |
+
* @return string
|
368 |
+
*/
|
369 |
+
public static function filter_front__opengraph_image( $image_url, $presentation ) {
|
370 |
+
|
371 |
+
if ( empty( $image_url) ) {
|
372 |
+
return $image_url;
|
373 |
+
}
|
374 |
+
|
375 |
+
if ( 'post' == $presentation->model->object_type ) {
|
376 |
+
|
377 |
+
$meta_cache = wp_cache_get( $presentation->model->object_id, 'post_meta' );
|
378 |
+
|
379 |
+
if ( ! empty( $meta_cache['_yoast_wpseo_opengraph-image'][0] ) ) {
|
380 |
+
|
381 |
+
$image_url = WPGlobus_Core::text_filter( $meta_cache['_yoast_wpseo_opengraph-image'][0], WPGlobus::Config()->language );
|
382 |
+
|
383 |
+
if ( $presentation->source instanceof WP_Post ) {
|
384 |
+
/**
|
385 |
+
* @see wordpress-seo\inc\wpseo-functions.php
|
386 |
+
*/
|
387 |
+
$image_url = wpseo_replace_vars( $image_url, $presentation->source );
|
388 |
+
}
|
389 |
+
}
|
390 |
+
}
|
391 |
+
|
392 |
+
return $image_url;
|
393 |
+
}
|
394 |
+
|
395 |
+
/**
|
396 |
+
* Filter for changing the Twitter title.
|
397 |
+
*
|
398 |
+
* @see wordpress-seo\src\presenters\twitter\title-presenter.php
|
399 |
+
*
|
400 |
+
* @since 2.5.19
|
401 |
+
*
|
402 |
+
* @scope front
|
403 |
+
* @param string $title The Twitter title.
|
404 |
+
* @param Indexable_Presentation $presentation The presentation of an indexable.
|
405 |
+
*
|
406 |
+
* @return string
|
407 |
+
*/
|
408 |
+
public static function filter_front__twitter_title( $title, $presentation ) {
|
409 |
+
|
410 |
+
if ( empty( $title ) ) {
|
411 |
+
return $title;
|
412 |
+
}
|
413 |
+
|
414 |
+
if ( 'post' == $presentation->model->object_type ) {
|
415 |
+
|
416 |
+
$meta_cache = wp_cache_get( $presentation->model->object_id, 'post_meta' );
|
417 |
+
|
418 |
+
if ( ! empty( $meta_cache['_yoast_wpseo_twitter-title'][0] ) ) {
|
419 |
+
|
420 |
+
$title = WPGlobus_Core::text_filter( $meta_cache['_yoast_wpseo_twitter-title'][0], WPGlobus::Config()->language );
|
421 |
+
|
422 |
+
if ( $presentation->source instanceof WP_Post ) {
|
423 |
+
/**
|
424 |
+
* @see wordpress-seo\inc\wpseo-functions.php
|
425 |
+
*/
|
426 |
+
$title = wpseo_replace_vars( $title, $presentation->source );
|
427 |
+
}
|
428 |
+
}
|
429 |
+
}
|
430 |
+
|
431 |
+
return $title;
|
432 |
+
}
|
433 |
+
|
434 |
+
/**
|
435 |
+
* Filter for changing the Twitter description as output in the Twitter card by Yoast SEO.
|
436 |
+
*
|
437 |
+
* @see wordpress-seo\src\presenters\twitter\description-presenter.php
|
438 |
+
*
|
439 |
+
* @since 2.5.19
|
440 |
+
*
|
441 |
+
* @scope front
|
442 |
+
* @param string $description The description string.
|
443 |
+
* @param Indexable_Presentation $presentation The presentation of an indexable.
|
444 |
+
*
|
445 |
+
* @return string
|
446 |
+
*/
|
447 |
+
public static function filter_front__twitter_description( $description, $presentation ) {
|
448 |
+
|
449 |
+
if ( empty( $description ) ) {
|
450 |
+
return $description;
|
451 |
+
}
|
452 |
+
|
453 |
+
if ( 'post' == $presentation->model->object_type ) {
|
454 |
+
|
455 |
+
$meta_cache = wp_cache_get( $presentation->model->object_id, 'post_meta' );
|
456 |
+
|
457 |
+
if ( ! empty( $meta_cache['_yoast_wpseo_twitter-description'][0] ) ) {
|
458 |
+
|
459 |
+
$description = WPGlobus_Core::text_filter( $meta_cache['_yoast_wpseo_twitter-description'][0], WPGlobus::Config()->language );
|
460 |
+
|
461 |
+
if ( $presentation->source instanceof WP_Post ) {
|
462 |
+
/**
|
463 |
+
* @see wordpress-seo\inc\wpseo-functions.php
|
464 |
+
*/
|
465 |
+
$description = wpseo_replace_vars( $description, $presentation->source );
|
466 |
+
}
|
467 |
+
}
|
468 |
+
}
|
469 |
+
|
470 |
+
return $description;
|
471 |
+
}
|
472 |
+
|
473 |
+
/**
|
474 |
+
* Filter for changing the Twitter Card image.
|
475 |
+
*
|
476 |
+
* @see wordpress-seo\src\presenters\twitter\image-presenter.php
|
477 |
+
*
|
478 |
+
* @since 2.5.19
|
479 |
+
*
|
480 |
+
* @scope front
|
481 |
+
* @param string $image Image URL string.
|
482 |
+
* @param Indexable_Presentation $presentation The presentation of an indexable.
|
483 |
+
*
|
484 |
+
* @return string
|
485 |
+
*/
|
486 |
+
public static function filter_front__twitter_image( $image, $presentation ) {
|
487 |
+
|
488 |
+
if ( empty( $image ) ) {
|
489 |
+
return $image;
|
490 |
+
}
|
491 |
+
|
492 |
+
if ( 'post' == $presentation->model->object_type ) {
|
493 |
+
|
494 |
+
$meta_cache = wp_cache_get( $presentation->model->object_id, 'post_meta' );
|
495 |
+
|
496 |
+
if ( ! empty( $meta_cache['_yoast_wpseo_twitter-image'][0] ) ) {
|
497 |
+
|
498 |
+
$image = WPGlobus_Core::text_filter( $meta_cache['_yoast_wpseo_twitter-image'][0], WPGlobus::Config()->language );
|
499 |
+
|
500 |
+
if ( $presentation->source instanceof WP_Post ) {
|
501 |
+
/**
|
502 |
+
* @see wordpress-seo\inc\wpseo-functions.php
|
503 |
+
*/
|
504 |
+
$image = wpseo_replace_vars( $image, $presentation->source );
|
505 |
+
}
|
506 |
+
}
|
507 |
+
}
|
508 |
+
|
509 |
+
return $image;
|
510 |
+
}
|
511 |
+
|
512 |
+
/**
|
513 |
+
* Filter for changing the Yoast SEO generated title.
|
514 |
+
*
|
515 |
+
* @see wordpress-seo\src\presenters\open-graph\title-presenter.php
|
516 |
+
*
|
517 |
+
* @since 2.5.19
|
518 |
+
*
|
519 |
+
* @scope front
|
520 |
+
* @param string $title The title.
|
521 |
+
* @param Indexable_Presentation $presentation The presentation of an indexable.
|
522 |
+
*
|
523 |
+
* @return string
|
524 |
+
*/
|
525 |
+
public static function filter_front__opengraph_title( $title, $presentation ) {
|
526 |
+
|
527 |
+
if ( empty( $title ) ) {
|
528 |
+
return $title;
|
529 |
+
}
|
530 |
+
|
531 |
+
if ( 'post' == $presentation->model->object_type ) {
|
532 |
+
|
533 |
+
$meta_cache = wp_cache_get( $presentation->model->object_id, 'post_meta' );
|
534 |
+
|
535 |
+
if ( ! empty( $meta_cache['_yoast_wpseo_opengraph-title'][0] ) ) {
|
536 |
+
|
537 |
+
$title = WPGlobus_Core::text_filter( $meta_cache['_yoast_wpseo_opengraph-title'][0], WPGlobus::Config()->language );
|
538 |
+
|
539 |
+
if ( $presentation->source instanceof WP_Post ) {
|
540 |
+
/**
|
541 |
+
* @see wordpress-seo\inc\wpseo-functions.php
|
542 |
+
*/
|
543 |
+
$title = wpseo_replace_vars( $title, $presentation->source );
|
544 |
+
}
|
545 |
+
|
546 |
+
} else {
|
547 |
+
|
548 |
+
/**
|
549 |
+
* @since 2.5.23
|
550 |
+
*/
|
551 |
+
if ( WPGlobus_Core::has_translations( $title ) ) {
|
552 |
+
$title = WPGlobus_Core::extract_text( $title, WPGlobus::Config()->language );
|
553 |
+
}
|
554 |
+
|
555 |
+
}
|
556 |
+
|
557 |
+
} elseif ( 'term' == $presentation->model->object_type ) {
|
558 |
+
|
559 |
+
/**
|
560 |
+
* Taxonomy.
|
561 |
+
*/
|
562 |
+
$__title = self::get_taxonomy_meta( $presentation->model->object_sub_type, $presentation->model->object_id, 'wpseo_title' );
|
563 |
+
|
564 |
+
if ( empty( $__title ) ) {
|
565 |
+
$__title = self::get_option( 'wpseo_titles', 'title-tax-' . $presentation->model->object_sub_type );
|
566 |
+
}
|
567 |
+
|
568 |
+
$title = wpseo_replace_vars( $__title, $presentation->source );
|
569 |
+
}
|
570 |
+
|
571 |
+
return $title;
|
572 |
+
}
|
573 |
+
|
574 |
+
/**
|
575 |
+
* Filter post meta.
|
576 |
+
*
|
577 |
+
* @since 1.9.21
|
578 |
+
* @since 2.1.3
|
579 |
+
* @see function function get_value() in wordpress-seo\inc\class-wpseo-meta.php
|
580 |
+
*/
|
581 |
+
public static function filter__get_post_metadata( $check, $object_id, $meta_key, $single ) {
|
582 |
+
|
583 |
+
global $post;
|
584 |
+
|
585 |
+
if ( $single ) {
|
586 |
+
return $check;
|
587 |
+
}
|
588 |
+
|
589 |
+
if ( ! is_object($post) ) {
|
590 |
+
return $check;
|
591 |
+
}
|
592 |
+
|
593 |
+
if ( $object_id != $post->ID ) {
|
594 |
+
return $check;
|
595 |
+
}
|
596 |
+
|
597 |
+
/**
|
598 |
+
* May be called many times on one page. Let's cache.
|
599 |
+
*/
|
600 |
+
static $_done = null;
|
601 |
+
if ( ! is_null($_done) ) {
|
602 |
+
return $check;
|
603 |
+
}
|
604 |
+
|
605 |
+
$meta_type = 'post';
|
606 |
+
|
607 |
+
$meta_cache = wp_cache_get($object_id, $meta_type . '_meta');
|
608 |
+
|
609 |
+
if ( ! empty($meta_cache['_yoast_wpseo_title'][0]) ) {
|
610 |
+
$meta_cache['_yoast_wpseo_title'][0] = WPGlobus_Core::text_filter( $meta_cache['_yoast_wpseo_title'][0], WPGlobus::Config()->language, WPGlobus::RETURN_EMPTY );
|
611 |
+
wp_cache_replace( $object_id, $meta_cache, $meta_type . '_meta' );
|
612 |
+
}
|
613 |
+
|
614 |
+
/**
|
615 |
+
* @since 2.2.33
|
616 |
+
*/
|
617 |
+
if ( ! empty($meta_cache['_yoast_wpseo_focuskw'][0]) ) {
|
618 |
+
$meta_cache['_yoast_wpseo_focuskw'][0] = WPGlobus_Core::text_filter( $meta_cache['_yoast_wpseo_focuskw'][0], WPGlobus::Config()->language, WPGlobus::RETURN_EMPTY );
|
619 |
+
wp_cache_replace( $object_id, $meta_cache, $meta_type . '_meta' );
|
620 |
+
}
|
621 |
+
|
622 |
+
$_done = true;
|
623 |
+
|
624 |
+
return $check;
|
625 |
+
}
|
626 |
+
|
627 |
+
/**
|
628 |
+
* Filter Yoast post meta keywords.
|
629 |
+
*
|
630 |
+
* @scope front
|
631 |
+
* @since 1.8.8
|
632 |
+
*
|
633 |
+
* @param string $keywords Multilingual keywords.
|
634 |
+
*
|
635 |
+
* @return string.
|
636 |
+
*/
|
637 |
+
public static function filter__metakeywords( $keywords ) {
|
638 |
+
if ( WPGlobus::Config()->language != WPGlobus::Config()->default_language ) {
|
639 |
+
return '';
|
640 |
+
}
|
641 |
+
return WPGlobus_Core::text_filter($keywords, WPGlobus::Config()->language, WPGlobus::RETURN_EMPTY);
|
642 |
+
}
|
643 |
+
|
644 |
+
/**
|
645 |
+
* Filter wpseo meta description.
|
646 |
+
*
|
647 |
+
* @see wordpress-seo\src\presenters\meta-description-presenter.php
|
648 |
+
* @see wordpress-seo\src\presenters\open-graph\description-presenter.php
|
649 |
+
*
|
650 |
+
* @since 2.4
|
651 |
+
* @since 2.5.1 Added support of taxonomies.
|
652 |
+
*
|
653 |
+
* @scope front
|
654 |
+
*
|
655 |
+
* @param string $meta_description Value from @see `description` field in `wp_yoast_indexable` table.
|
656 |
+
* @param Indexable_Presentation $presentation The presentation of an indexable.
|
657 |
+
*
|
658 |
+
* @return string
|
659 |
+
*/
|
660 |
+
public static function filter_front__description( $meta_description, $presentation ) {
|
661 |
+
|
662 |
+
/**
|
663 |
+
* $meta_description is received from `description` field in `wp_yoast_indexable` table.
|
664 |
+
*/
|
665 |
+
|
666 |
+
/**
|
667 |
+
* Init description.
|
668 |
+
*/
|
669 |
+
$description = '';
|
670 |
+
|
671 |
+
/**
|
672 |
+
* Key to define that `wpseo_metadesc` filter was already fired earlier.
|
673 |
+
*/
|
674 |
+
static $meta_description_presenter_was_fired = false;
|
675 |
+
|
676 |
+
if ( 'post' == $presentation->model->object_type ) {
|
677 |
+
|
678 |
+
/**
|
679 |
+
* Post.
|
680 |
+
*/
|
681 |
+
if ( $meta_description_presenter_was_fired ) {
|
682 |
+
/**
|
683 |
+
* Set meta description to empty value for `wpseo_opengraph_desc` filter like for empty $meta_description in `wpseo_metadesc` filter.
|
684 |
+
*/
|
685 |
+
$meta_description = '';
|
686 |
+
} else {
|
687 |
+
if ( empty($meta_description) ) {
|
688 |
+
$meta_description_presenter_was_fired = true;
|
689 |
+
}
|
690 |
+
}
|
691 |
+
|
692 |
+
$description = self::get_meta( '_yoast_wpseo_metadesc', $meta_description );
|
693 |
+
|
694 |
+
} elseif ( 'term' == $presentation->model->object_type ) {
|
695 |
+
|
696 |
+
/**
|
697 |
+
* Taxonomy.
|
698 |
+
* @since 2.5.1
|
699 |
+
*/
|
700 |
+
if ( $meta_description_presenter_was_fired ) {
|
701 |
+
|
702 |
+
/**
|
703 |
+
* This is `wpseo_opengraph_desc` filter with empty yoast description.
|
704 |
+
* @todo maybe need to use cache for term object.
|
705 |
+
*/
|
706 |
+
$term = get_term( $presentation->model->object_id );
|
707 |
+
if ( $term instanceof WP_Term ) {
|
708 |
+
$description = $term->description;
|
709 |
+
} else {
|
710 |
+
$description = '';
|
711 |
+
}
|
712 |
+
|
713 |
+
} else {
|
714 |
+
|
715 |
+
/**
|
716 |
+
* @since 2.5.22
|
717 |
+
*/
|
718 |
+
$description = self::get_taxonomy_meta( $presentation->model->object_sub_type, $presentation->model->object_id, 'wpseo_desc' );
|
719 |
+
|
720 |
+
/**
|
721 |
+
* @since 2.7.0
|
722 |
+
*/
|
723 |
+
if ( empty($description) ) {
|
724 |
+
$description = self::get_option( 'wpseo_titles', 'metadesc-tax-' . $presentation->model->object_sub_type );
|
725 |
+
}
|
726 |
+
|
727 |
+
if ( empty($description) ) {
|
728 |
+
$meta_description_presenter_was_fired = true;
|
729 |
+
} else {
|
730 |
+
$description = wpseo_replace_vars( $description, $presentation->source );
|
731 |
+
}
|
732 |
+
}
|
733 |
+
}
|
734 |
+
|
735 |
+
/**
|
736 |
+
* @since 2.6.3
|
737 |
+
*/
|
738 |
+
self::$description = $description;
|
739 |
+
|
740 |
+
return $description;
|
741 |
+
}
|
742 |
+
|
743 |
+
/**
|
744 |
+
* Filter canonical URL and open graph URL put out by Yoast SEO.
|
745 |
+
*
|
746 |
+
* @see wordpress-seo\src\presenters\canonical-presenter.php
|
747 |
+
* @see wordpress-seo\src\presenters\open-graph\url-presenter.php
|
748 |
+
* @scope front
|
749 |
+
* @since 2.4
|
750 |
+
* @since 2.5.1 Added support of taxonomies.
|
751 |
+
* @since 2.5.10 Added `wpglobus_wpseo_localize_url` filter.
|
752 |
+
*
|
753 |
+
* @param string $url The canonical URL or open graph URL.
|
754 |
+
* @param Indexable_Presentation $presentation The presentation of an indexable.
|
755 |
+
*
|
756 |
+
* @return string
|
757 |
+
*/
|
758 |
+
public static function filter_front__localize_url( $url, $presentation ) {
|
759 |
+
/**
|
760 |
+
* URL is received from `permalink` field in `wp_yoast_indexable` table.
|
761 |
+
*/
|
762 |
+
if ( WPGlobus::Config()->language == WPGlobus::Config()->default_language ) {
|
763 |
+
return $url;
|
764 |
+
}
|
765 |
+
|
766 |
+
$tag = false;
|
767 |
+
if ( is_singular() ) {
|
768 |
+
$tag = 'singular';
|
769 |
+
} elseif ( is_category() ) {
|
770 |
+
$tag = 'category';
|
771 |
+
} elseif ( is_tag() ) {
|
772 |
+
$tag = 'tag';
|
773 |
+
} elseif ( is_tax() ) {
|
774 |
+
$tag = 'tax';
|
775 |
+
}
|
776 |
+
|
777 |
+
if ( $tag ) {
|
778 |
+
|
779 |
+
$language =WPGlobus::Config()->language;
|
780 |
+
|
781 |
+
self::$canonical_url[ WPGlobus::Config()->default_language ] = $url;
|
782 |
+
|
783 |
+
/**
|
784 |
+
* Filters for a localized url.
|
785 |
+
*
|
786 |
+
* @since 2.5.10
|
787 |
+
*
|
788 |
+
* @param string $url Localized URL.
|
789 |
+
* @param string $language Current language.
|
790 |
+
* @param string $tag Conditional Tag.
|
791 |
+
*/
|
792 |
+
self::$canonical_url[ $language ] = apply_filters( 'wpglobus_wpseo_localize_url', WPGlobus_Utils::localize_url( $url, $language ), $language, $tag );
|
793 |
+
|
794 |
+
self::$canonical_url[ $language ] = urldecode( self::$canonical_url[ $language ] );
|
795 |
+
|
796 |
+
return self::$canonical_url[ $language ];
|
797 |
+
}
|
798 |
+
|
799 |
+
return $url;
|
800 |
+
}
|
801 |
+
|
802 |
+
/**
|
803 |
+
* Filtering of the rel `prev` and `next` URL put out by Yoast SEO.
|
804 |
+
*
|
805 |
+
* @see wordpress-seo\src\presenters\rel-prev-presenter.php
|
806 |
+
* @see wordpress-seo\src\presenters\rel-next-presenter.php
|
807 |
+
* @scope front
|
808 |
+
*
|
809 |
+
* @since 2.5.11
|
810 |
+
*
|
811 |
+
* @param string $url Link relationship, prev or next.
|
812 |
+
* @param string $relationship `prev` or `next`.
|
813 |
+
* @param Indexable_Presentation $presentation The presentation of an indexable.
|
814 |
+
*
|
815 |
+
* @return string
|
816 |
+
*/
|
817 |
+
public static function filter_front__wpseo_adjacent_rel_url( $link, $relationship, $presentation ) {
|
818 |
+
|
819 |
+
if ( empty( $link ) || WPGlobus::Config()->language == WPGlobus::Config()->default_language ) {
|
820 |
+
return $link;
|
821 |
+
}
|
822 |
+
|
823 |
+
if ( empty( self::$canonical_url ) ) {
|
824 |
+
return $link;
|
825 |
+
}
|
826 |
+
|
827 |
+
return str_replace(
|
828 |
+
self::$canonical_url[ WPGlobus::Config()->default_language ],
|
829 |
+
self::$canonical_url[ WPGlobus::Config()->language ],
|
830 |
+
$link
|
831 |
+
);
|
832 |
+
}
|
833 |
+
|
834 |
+
/**
|
835 |
+
* Filter the HTML output of the Yoast SEO breadcrumbs class.
|
836 |
+
*
|
837 |
+
* @see wordpress-seo\src\presenters\breadcrumbs-presenter.php
|
838 |
+
* @scope front
|
839 |
+
* @since 2.4.2
|
840 |
+
*
|
841 |
+
* @param $output The HTML output
|
842 |
+
* @param Indexable_Presentation $presentation The presentation of an indexable.
|
843 |
+
*
|
844 |
+
* @api string $output The HTML output.
|
845 |
+
*
|
846 |
+
* @return string
|
847 |
+
*/
|
848 |
+
public static function filter__breadcrumb_output( $output, $presentation ) {
|
849 |
+
|
850 |
+
/** @global wpdb $wpdb */
|
851 |
+
global $wpdb;
|
852 |
+
|
853 |
+
$object_type = null;
|
854 |
+
$object_sub_type = null;
|
855 |
+
$object_order = null;
|
856 |
+
|
857 |
+
if ( $presentation->source instanceof WP_Post ) {
|
858 |
+
|
859 |
+
$object_type = 'post';
|
860 |
+
$object_sub_type = $presentation->source->post_type;
|
861 |
+
|
862 |
+
} elseif ( $presentation->source instanceof WP_Term ) {
|
863 |
+
|
864 |
+
$object_type = 'taxonomy';
|
865 |
+
$object_sub_type = $presentation->source->taxonomy;
|
866 |
+
|
867 |
+
if ( $presentation->source->parent == 0 ) {
|
868 |
+
$object_order = array($presentation->source->term_id);
|
869 |
+
} else {
|
870 |
+
$object_order = get_ancestors($presentation->source->term_id, $object_sub_type);
|
871 |
+
if ( count($object_order) > 1 ) {
|
872 |
+
$object_order = array_reverse( $object_order );
|
873 |
+
}
|
874 |
+
$object_order[] = $presentation->source->term_id;
|
875 |
+
}
|
876 |
+
|
877 |
+
}
|
878 |
+
|
879 |
+
$ids = array();
|
880 |
+
$breadcrumbs = array();
|
881 |
+
$i = 0;
|
882 |
+
|
883 |
+
foreach( $presentation->breadcrumbs as $order=>$piece ) {
|
884 |
+
|
885 |
+
if ( $order == 0 ) {
|
886 |
+
|
887 |
+
$_piece = '/' . preg_quote($piece['url'], '/') . '/';
|
888 |
+
|
889 |
+
if ( empty( $piece['id'] ) ) {
|
890 |
+
/**
|
891 |
+
* If homepage displays as latest posts, then we should force the setting of `Home` for all languages.
|
892 |
+
*/
|
893 |
+
$output = preg_replace( $_piece, home_url('/'), $output, 1 );
|
894 |
+
} else {
|
895 |
+
$output = preg_replace( $_piece, home_url('/'), $output, 1 );
|
896 |
+
}
|
897 |
+
|
898 |
+
if ( WPGlobus_Core::has_translations($piece['text']) ) {
|
899 |
+
$_home_text = WPGlobus_Core::text_filter( $piece['text'], WPGlobus::Config()->language, WPGlobus::RETURN_IN_DEFAULT_LANGUAGE );
|
900 |
+
$output = str_replace( $piece['text'], $_home_text, $output );
|
901 |
+
}
|
902 |
+
|
903 |
+
} else {
|
904 |
+
|
905 |
+
switch ($object_type) :
|
906 |
+
case 'post' :
|
907 |
+
if ( ! empty($piece['id']) ) {
|
908 |
+
$ids[] = $piece['id'];
|
909 |
+
$breadcrumbs[ $piece['id'] ] = $piece;
|
910 |
+
$breadcrumbs[ $piece['id'] ]['object_type'] = $object_type;
|
911 |
+
$breadcrumbs[ $piece['id'] ]['object_sub_type'] = $object_sub_type;
|
912 |
+
}
|
913 |
+
break;
|
914 |
+
case 'taxonomy' :
|
915 |
+
$_id = $order;
|
916 |
+
if ( ! is_null( $object_order ) ) {
|
917 |
+
$_id = $object_order[$i];
|
918 |
+
$ids[] = $_id;
|
919 |
+
}
|
920 |
+
$breadcrumbs[ $_id ] = $piece;
|
921 |
+
$breadcrumbs[ $_id ]['object_type'] = $object_type;
|
922 |
+
$breadcrumbs[ $_id ]['object_sub_type'] = $object_sub_type;
|
923 |
+
$i++;
|
924 |
+
break;
|
925 |
+
endswitch;
|
926 |
+
}
|
927 |
+
}
|
928 |
+
|
929 |
+
$query = null;
|
930 |
+
|
931 |
+
if ( ! empty($ids) ) {
|
932 |
+
|
933 |
+
$_ids = implode( ',', $ids );
|
934 |
+
switch ($object_type) :
|
935 |
+
case 'post' :
|
936 |
+
$select = $wpdb->prepare( "SELECT ID, post_title AS ml_title, post_name, post_type FROM $wpdb->posts WHERE ID IN ( %s )", $_ids );
|
937 |
+
$select = str_replace( "'", '', $select );
|
938 |
+
break;
|
939 |
+
case 'taxonomy' :
|
940 |
+
$select = $wpdb->prepare( "SELECT term_id, name AS ml_title, slug FROM $wpdb->terms WHERE term_id IN ( %s )", $_ids );
|
941 |
+
$select = str_replace( "'", '', $select );
|
942 |
+
break;
|
943 |
+
endswitch;
|
944 |
+
|
945 |
+
$query = $wpdb->get_results( $select, OBJECT_K );
|
946 |
+
|
947 |
+
foreach( $breadcrumbs as $id=>$piece ) {
|
948 |
+
|
949 |
+
$output = str_replace(
|
950 |
+
array(
|
951 |
+
$piece['url'],
|
952 |
+
$piece['text']
|
953 |
+
),
|
954 |
+
array(
|
955 |
+
WPGlobus_Utils::localize_url( $piece['url'], WPGlobus::Config()->language ),
|
956 |
+
WPGlobus_Core::text_filter( $query[$id]->ml_title, WPGlobus::Config()->language )
|
957 |
+
),
|
958 |
+
$output
|
959 |
+
);
|
960 |
+
}
|
961 |
+
}
|
962 |
+
|
963 |
+
/**
|
964 |
+
* @since 2.4.2 @W.I.P
|
965 |
+
*/
|
966 |
+
//$output = apply_filters( 'wpglobus_wpseo_breadcrumb_output', $output, $breadcrumbs, $query );
|
967 |
+
|
968 |
+
return $output;
|
969 |
+
}
|
970 |
+
|
971 |
+
/**
|
972 |
+
* Filter wpseo meta description.
|
973 |
+
*
|
974 |
+
* @see wordpress-seo\admin\class-meta-columns.php
|
975 |
+
* @scope admin
|
976 |
+
* @since 2.2.16
|
977 |
+
*
|
978 |
+
* @param string $metadesc_val Value in default language.
|
979 |
+
*
|
980 |
+
* @return string
|
981 |
+
*/
|
982 |
+
public static function filter__wpseo_metadesc( $metadesc_val ) {
|
983 |
+
|
984 |
+
if ( empty($metadesc_val) ) {
|
985 |
+
return $metadesc_val;
|
986 |
+
}
|
987 |
+
|
988 |
+
if ( WPGlobus::Config()->language == WPGlobus::Config()->default_language ) {
|
989 |
+
return $metadesc_val;
|
990 |
+
}
|
991 |
+
|
992 |
+
return self::get_meta( '_yoast_wpseo_metadesc', $metadesc_val );
|
993 |
+
}
|
994 |
+
|
995 |
+
/**
|
996 |
+
* To translate Yoast `column-wpseo-title`.
|
997 |
+
*
|
998 |
+
* @see wordpress-seo\admin\class-meta-columns.php
|
999 |
+
* @scope admin
|
1000 |
+
* @since 2.2.16
|
1001 |
+
*
|
1002 |
+
* @param string $title
|
1003 |
+
*
|
1004 |
+
* @return string
|
1005 |
+
*/
|
1006 |
+
public static function filter__wpseo_title( $title ) {
|
1007 |
+
return WPGlobus_Core::extract_text( $title, WPGlobus::Config()->language );
|
1008 |
+
}
|
1009 |
+
|
1010 |
+
/**
|
1011 |
+
* Get meta for extra language.
|
1012 |
+
*
|
1013 |
+
* @scope admin
|
1014 |
+
* @since 2.2.16
|
1015 |
+
*/
|
1016 |
+
protected static function get_meta( $meta_key, $meta_value = '' ) {
|
1017 |
+
|
1018 |
+
if ( is_null(self::$wpseo_meta) ) {
|
1019 |
+
self::get_wpseo_meta();
|
1020 |
+
}
|
1021 |
+
|
1022 |
+
if ( empty( self::$wpseo_meta[ $meta_key ] ) ) {
|
1023 |
+
return '';
|
1024 |
+
}
|
1025 |
+
|
1026 |
+
/** @global WP_Post $post */
|
1027 |
+
global $post;
|
1028 |
+
|
1029 |
+
if ( empty( $meta_value ) ) {
|
1030 |
+
|
1031 |
+
/**
|
1032 |
+
* Try get meta by post ID.
|
1033 |
+
*/
|
1034 |
+
if ( ! $post instanceof WP_Post ) {
|
1035 |
+
return '';
|
1036 |
+
}
|
1037 |
+
if ( empty( self::$wpseo_meta[$meta_key][$post->ID] ) ) {
|
1038 |
+
return '';
|
1039 |
+
}
|
1040 |
+
|
1041 |
+
return WPGlobus_Core::text_filter( self::$wpseo_meta[$meta_key][$post->ID], WPGlobus::Config()->language, WPGlobus::RETURN_EMPTY );
|
1042 |
+
}
|
1043 |
+
|
1044 |
+
$_return_value = '';
|
1045 |
+
foreach( self::$wpseo_meta[ $meta_key ] as $_meta_value ) {
|
1046 |
+
if ( false !== strpos( $_meta_value, $meta_value ) ) {
|
1047 |
+
$_return_value = WPGlobus_Core::text_filter( $_meta_value, WPGlobus::Config()->language, WPGlobus::RETURN_EMPTY );
|
1048 |
+
break;
|
1049 |
+
}
|
1050 |
+
}
|
1051 |
+
|
1052 |
+
return $_return_value;
|
1053 |
+
}
|
1054 |
+
|
1055 |
+
/**
|
1056 |
+
* Get `_yoast_wpseo_metadesc`, `_yoast_wpseo_focuskw` meta.
|
1057 |
+
*
|
1058 |
+
* @scope both
|
1059 |
+
* @since 2.4
|
1060 |
+
* @since 2.4.6 Separate the defining of post type for frontend and admin.
|
1061 |
+
* @since 2.4.14 Revised code.
|
1062 |
+
*/
|
1063 |
+
protected static function get_wpseo_meta() {
|
1064 |
+
|
1065 |
+
/** @global wpdb $wpdb */
|
1066 |
+
global $wpdb;
|
1067 |
+
|
1068 |
+
/** @global WP_Post $post */
|
1069 |
+
global $post;
|
1070 |
+
|
1071 |
+
$post_id = false;
|
1072 |
+
|
1073 |
+
if ( is_admin() ) {
|
1074 |
+
|
1075 |
+
/**
|
1076 |
+
* Admin.
|
1077 |
+
*/
|
1078 |
+
if ( ! empty( $_GET['post'] ) ) {
|
1079 |
+
$post_id = sanitize_text_field( $_GET['post'] ); // phpcs:ignore WordPress.CSRF.NonceVerification
|
1080 |
+
}
|
1081 |
+
|
1082 |
+
} else {
|
1083 |
+
|
1084 |
+
if ( $post instanceof WP_Post ) {
|
1085 |
+
|
1086 |
+
/**
|
1087 |
+
* Front-end.
|
1088 |
+
*/
|
1089 |
+
$post_id = $post->ID;
|
1090 |
+
|
1091 |
+
}
|
1092 |
+
}
|
1093 |
+
|
1094 |
+
if ( $post_id ) {
|
1095 |
+
|
1096 |
+
$query = $wpdb->prepare(
|
1097 |
+
"SELECT p.ID, p.post_type, pm.meta_key, pm.meta_value FROM {$wpdb->prefix}posts AS p JOIN {$wpdb->prefix}postmeta AS pm ON p.ID = pm.post_id WHERE p.ID = %s AND (pm.meta_key = %s OR pm.meta_key = %s)",
|
1098 |
+
$post_id,
|
1099 |
+
'_yoast_wpseo_metadesc',
|
1100 |
+
'_yoast_wpseo_focuskw'
|
1101 |
+
);
|
1102 |
+
|
1103 |
+
$metas = $wpdb->get_results( $query, ARRAY_A );
|
1104 |
+
|
1105 |
+
if ( ! empty( $metas ) ) {
|
1106 |
+
foreach( $metas as $_meta ) {
|
1107 |
+
if ( ! isset( self::$wpseo_meta[ $_meta['meta_key'] ] ) ) {
|
1108 |
+
self::$wpseo_meta[ $_meta['meta_key'] ] = array();
|
1109 |
+
}
|
1110 |
+
self::$wpseo_meta[ $_meta['meta_key'] ][ $_meta['ID'] ] = $_meta['meta_value'];
|
1111 |
+
}
|
1112 |
+
}
|
1113 |
+
} else {
|
1114 |
+
// Here we can add code to get meta for multiple posts.
|
1115 |
+
}
|
1116 |
+
}
|
1117 |
+
|
1118 |
+
/**
|
1119 |
+
* Get taxonomy meta from `wpseo_taxonomy_meta` option.
|
1120 |
+
*
|
1121 |
+
* @since 2.5.1
|
1122 |
+
* @since 2.5.22 Added $meta_key parameter to the `get_taxonomy_meta` function.
|
1123 |
+
* @scope front
|
1124 |
+
*
|
1125 |
+
* @param string $object_sub_type The Indexable Object sub type.
|
1126 |
+
* @param string $object_id The object ID.
|
1127 |
+
* @param Indexable_Presentation $meta_key The WPSEO meta key.
|
1128 |
+
*
|
1129 |
+
* return string | array
|
1130 |
+
*/
|
1131 |
+
protected static function get_taxonomy_meta( $object_sub_type, $object_id, $meta_key = '' ) {
|
1132 |
+
|
1133 |
+
if ( is_null( self::$wpseo_taxonomy_meta ) ) {
|
1134 |
+
self::$wpseo_taxonomy_meta = get_option( 'wpseo_taxonomy_meta' );
|
1135 |
+
}
|
1136 |
+
|
1137 |
+
if ( empty( self::$wpseo_taxonomy_meta[ $object_sub_type ][ $object_id ] ) ) {
|
1138 |
+
return '';
|
1139 |
+
}
|
1140 |
+
|
1141 |
+
if ( empty( $meta_key ) ) {
|
1142 |
+
return self::$wpseo_taxonomy_meta[ $object_sub_type ][ $object_id ];
|
1143 |
+
}
|
1144 |
+
|
1145 |
+
if ( empty( self::$wpseo_taxonomy_meta[ $object_sub_type ][ $object_id ][ $meta_key ] ) ) {
|
1146 |
+
return '';
|
1147 |
+
}
|
1148 |
+
|
1149 |
+
$meta_value = WPGlobus_Core::text_filter(
|
1150 |
+
self::$wpseo_taxonomy_meta[ $object_sub_type ][ $object_id ][ $meta_key ],
|
1151 |
+
WPGlobus::Config()->language,
|
1152 |
+
WPGlobus::RETURN_EMPTY
|
1153 |
+
);
|
1154 |
+
|
1155 |
+
return $meta_value;
|
1156 |
+
}
|
1157 |
+
|
1158 |
+
/**
|
1159 |
+
* Enqueue JS for YoastSEO support.
|
1160 |
+
*
|
1161 |
+
* @since 1.4.0
|
1162 |
+
* @since 2.2.20
|
1163 |
+
* @since 2.4.5 Add JS script on dashboard.
|
1164 |
+
*/
|
1165 |
+
public static function action__admin_print_scripts() {
|
1166 |
+
|
1167 |
+
if ( WPGlobus_WP::is_pagenow( 'admin.php' ) ) {
|
1168 |
+
|
1169 |
+
if ( 'wpseo_tools' == WPGlobus_Utils::safe_get('page') && 'bulk-editor' == WPGlobus_Utils::safe_get('tool') ) {
|
1170 |
+
|
1171 |
+
$wrng1 = '<div>' . esc_html__( 'Bulk editing of the multilingual titles and descriptions is not supported by the current version.', 'wpglobus' ) . '</div>';
|
1172 |
+
$wrng2 = '<div>' . esc_html__( 'Therefore, to avoid any data loss, we do not recommend using this.', 'wpglobus' ) . '</div>';
|
1173 |
+
|
1174 |
+
$i18n = array(
|
1175 |
+
'preWarning' => esc_html__( 'WPGlobus warning: ', 'wpglobus' ),
|
1176 |
+
'bulkEditorWarning' => $wrng1 . $wrng2,
|
1177 |
+
);
|
1178 |
+
|
1179 |
+
$src = WPGlobus::$PLUGIN_DIR_URL . 'includes/js/wpglobus-yoastseo-dashboard' . WPGlobus::SCRIPT_SUFFIX() . '.js';
|
1180 |
+
|
1181 |
+
wp_register_script(
|
1182 |
+
self::$handle_script_dashboard,
|
1183 |
+
$src,
|
1184 |
+
array( 'jquery' ),
|
1185 |
+
WPGLOBUS_VERSION,
|
1186 |
+
true
|
1187 |
+
);
|
1188 |
+
|
1189 |
+
wp_enqueue_script(self::$handle_script_dashboard);
|
1190 |
+
|
1191 |
+
wp_localize_script(
|
1192 |
+
self::$handle_script_dashboard,
|
1193 |
+
'WPGlobusYoastSeoDashboard',
|
1194 |
+
array(
|
1195 |
+
'version' => WPGLOBUS_VERSION,
|
1196 |
+
'wpseo_version' => WPSEO_VERSION,
|
1197 |
+
'pagenow' => 'admin.php',
|
1198 |
+
'page' => WPGlobus_Utils::safe_get('page'),
|
1199 |
+
'tool' => WPGlobus_Utils::safe_get('tool'),
|
1200 |
+
'i18n' => $i18n
|
1201 |
+
)
|
1202 |
+
);
|
1203 |
+
|
1204 |
+
return;
|
1205 |
+
}
|
1206 |
+
}
|
1207 |
+
|
1208 |
+
if ( 'off' === WPGlobus::Config()->toggle ) {
|
1209 |
+
return;
|
1210 |
+
}
|
1211 |
+
|
1212 |
+
if ( self::disabled_entity() ) {
|
1213 |
+
return;
|
1214 |
+
}
|
1215 |
+
|
1216 |
+
/** @global string $pagenow */
|
1217 |
+
global $pagenow;
|
1218 |
+
|
1219 |
+
$enabled_pages = array(
|
1220 |
+
'post.php',
|
1221 |
+
'post-new.php',
|
1222 |
+
'edit-tags.php',
|
1223 |
+
'term.php'
|
1224 |
+
);
|
1225 |
+
|
1226 |
+
if ( WPGlobus_WP::is_pagenow( $enabled_pages ) ) {
|
1227 |
+
|
1228 |
+
WPGlobus::O()->vendors_scripts['WPSEO'] = true;
|
1229 |
+
|
1230 |
+
if ( defined( 'WPSEO_PREMIUM_PLUGIN_FILE' ) ) {
|
1231 |
+
/**
|
1232 |
+
* @see wordpress-seo-premium\wp-seo-premium.php
|
1233 |
+
*/
|
1234 |
+
WPGlobus::O()->vendors_scripts['WPSEO_PREMIUM'] = true;
|
1235 |
+
}
|
1236 |
+
|
1237 |
+
$yoastseo_plus_readability_access = '';
|
1238 |
+
$yoastseo_plus_readability_inactive = '';
|
1239 |
+
|
1240 |
+
$yoastseo_plus_page_analysis_access = '';
|
1241 |
+
$yoastseo_plus_page_analysis_inactive = '';
|
1242 |
+
|
1243 |
+
$yoastseo_plus_meta_keywords_access = '';
|
1244 |
+
$yoastseo_plus_meta_keywords_inactive = '';
|
1245 |
+
|
1246 |
+
$yoastseo_plus_social_access = '';
|
1247 |
+
$yoastseo_plus_social_inactive = '';
|
1248 |
+
|
1249 |
+
if ( WPGlobus::Config()->builder->is_builder_page() ) {
|
1250 |
+
|
1251 |
+
$_url = '#';
|
1252 |
+
if ( class_exists('WPGlobusPlus') ) {
|
1253 |
+
/**
|
1254 |
+
* @see wpglobus-plus\includes\wpglobus-plus-main.php
|
1255 |
+
*/
|
1256 |
+
$_url = add_query_arg(
|
1257 |
+
array(
|
1258 |
+
'page' => 'wpglobus-plus-options'
|
1259 |
+
),
|
1260 |
+
admin_url('admin.php')
|
1261 |
+
);
|
1262 |
+
}
|
1263 |
+
|
1264 |
+
$yoastseo_plus_readability_access = sprintf(
|
1265 |
+
esc_html__( 'Please see %1s to get access to Analysis results in %2s with YoastSEO.', '' ),
|
1266 |
+
'<a href="https://wpglobus.com/product/wpglobus-plus/#yoastseo" target="_blank">WPGlobus Plus</a>',
|
1267 |
+
WPGlobus::Config()->en_language_name[ WPGlobus::Config()->builder->get_language() ]
|
1268 |
+
);
|
1269 |
+
$yoastseo_plus_readability_inactive = sprintf(
|
1270 |
+
esc_html__( 'Please activate %1sYoast SEO Plus%2s module to get access to Analysis results in %3s with YoastSEO.', '' ),
|
1271 |
+
'<a href="'.$_url.'">',
|
1272 |
+
'</a>',
|
1273 |
+
WPGlobus::Config()->en_language_name[ WPGlobus::Config()->builder->get_language() ]
|
1274 |
+
);
|
1275 |
+
|
1276 |
+
$yoastseo_plus_page_analysis_access = sprintf(
|
1277 |
+
esc_html__( 'Please see %1s to get access to Analysis results in %2s with YoastSEO.', '' ),
|
1278 |
+
'<a href="https://wpglobus.com/product/wpglobus-plus/#yoastseo" target="_blank">WPGlobus Plus</a>',
|
1279 |
+
WPGlobus::Config()->en_language_name[ WPGlobus::Config()->builder->get_language() ]
|
1280 |
+
);
|
1281 |
+
$yoastseo_plus_page_analysis_inactive = sprintf(
|
1282 |
+
esc_html__( 'Please activate %1sYoast SEO Plus%2s module to get access to Analysis results in %3s with YoastSEO.', '' ),
|
1283 |
+
'<a href="'.$_url.'">',
|
1284 |
+
'</a>',
|
1285 |
+
WPGlobus::Config()->en_language_name[ WPGlobus::Config()->builder->get_language() ]
|
1286 |
+
);
|
1287 |
+
|
1288 |
+
$yoastseo_plus_meta_keywords_access = sprintf(
|
1289 |
+
esc_html__( 'Please see %1s to get access to Focus keyphrase in %2s with YoastSEO.', '' ),
|
1290 |
+
'<a href="https://wpglobus.com/product/wpglobus-plus/#yoastseo" target="_blank">WPGlobus Plus</a>',
|
1291 |
+
WPGlobus::Config()->en_language_name[ WPGlobus::Config()->builder->get_language() ]
|
1292 |
+
);
|
1293 |
+
$yoastseo_plus_meta_keywords_inactive = sprintf(
|
1294 |
+
esc_html__( 'Please activate %1sYoast SEO Plus%2s module to get access to Focus keyphrase in %1s with YoastSEO.', '' ),
|
1295 |
+
'<a href="'.$_url.'">',
|
1296 |
+
'</a>',
|
1297 |
+
WPGlobus::Config()->en_language_name[ WPGlobus::Config()->builder->get_language() ]
|
1298 |
+
);
|
1299 |
+
|
1300 |
+
$yoastseo_plus_social_access = sprintf(
|
1301 |
+
esc_html__( 'Please see %1s to get access to Social Tab content in %2s with YoastSEO.', '' ),
|
1302 |
+
'<a href="https://wpglobus.com/product/wpglobus-plus/#yoastseo" target="_blank">WPGlobus Plus</a>',
|
1303 |
+
WPGlobus::Config()->en_language_name[ WPGlobus::Config()->builder->get_language() ]
|
1304 |
+
);
|
1305 |
+
$yoastseo_plus_social_inactive = sprintf(
|
1306 |
+
esc_html__( 'Please activate %1sYoast SEO Plus%2s module to get access to Social Tab content in %1s with YoastSEO.', '' ),
|
1307 |
+
'<a href="'.$_url.'">',
|
1308 |
+
'</a>',
|
1309 |
+
WPGlobus::Config()->en_language_name[ WPGlobus::Config()->builder->get_language() ]
|
1310 |
+
);
|
1311 |
+
}
|
1312 |
+
|
1313 |
+
$i18n = array(
|
1314 |
+
'yoastseo_plus_readability_access' => $yoastseo_plus_readability_access,
|
1315 |
+
'yoastseo_plus_readability_inactive' => $yoastseo_plus_readability_inactive,
|
1316 |
+
'yoastseo_plus_page_analysis_access' => $yoastseo_plus_page_analysis_access,
|
1317 |
+
'yoastseo_plus_page_analysis_inactive' => $yoastseo_plus_page_analysis_inactive,
|
1318 |
+
'yoastseo_plus_meta_keywords_access' => $yoastseo_plus_meta_keywords_access,
|
1319 |
+
'yoastseo_plus_meta_keywords_inactive' => $yoastseo_plus_meta_keywords_inactive,
|
1320 |
+
'yoastseo_plus_social_access' => $yoastseo_plus_social_access,
|
1321 |
+
'yoastseo_plus_social_inactive' => $yoastseo_plus_social_inactive
|
1322 |
+
);
|
1323 |
+
|
1324 |
+
$src_version = false;
|
1325 |
+
$src_version_premium = false;
|
1326 |
+
|
1327 |
+
if ( ! WPGlobus::O()->vendors_scripts['WPSEO_PREMIUM'] ) {
|
1328 |
+
|
1329 |
+
/** @noinspection PhpInternalEntityUsedInspection */
|
1330 |
+
$src_version = version_compare( WPSEO_VERSION, '4.0', '>=' ) ? '40' : $src_version;
|
1331 |
+
/** @noinspection PhpInternalEntityUsedInspection */
|
1332 |
+
$src_version = version_compare( WPSEO_VERSION, '4.1', '>=' ) ? '41' : $src_version;
|
1333 |
+
/** @noinspection PhpInternalEntityUsedInspection */
|
1334 |
+
$src_version = version_compare( WPSEO_VERSION, '4.4', '>=' ) ? '44' : $src_version;
|
1335 |
+
if (
|
1336 |
+
/** @noinspection PhpInternalEntityUsedInspection */
|
1337 |
+
version_compare( WPSEO_VERSION, '4.8', '>=' )
|
1338 |
+
) {
|
1339 |
+
$src_version = self::$version;
|
1340 |
+
}
|
1341 |
+
|
1342 |
+
} else {
|
1343 |
+
/**
|
1344 |
+
* Start with Yoast SEO Premium.
|
1345 |
+
*/
|
1346 |
+
|
1347 |
+
/**
|
1348 |
+
* Version of file yoast seo must be latest.
|
1349 |
+
*/
|
1350 |
+
/** @noinspection PhpInternalEntityUsedInspection */
|
1351 |
+
$src_version = version_compare( WPSEO_VERSION, '3.9', '>=' ) ? self::$version : $src_version;
|
1352 |
+
/** @noinspection PhpInternalEntityUsedInspection */
|
1353 |
+
$src_version_premium = version_compare( WPSEO_VERSION, '3.9', '>=' ) ? '39' : $src_version_premium;
|
1354 |
+
/**
|
1355 |
+
* @since WPGlobus 2.2.17
|
1356 |
+
*/
|
1357 |
+
$src_version_premium = version_compare( WPSEO_VERSION, '12.0', '>=' ) ? $src_version : $src_version_premium;
|
1358 |
+
|
1359 |
+
}
|
1360 |
+
|
1361 |
+
if ( $src_version ) :
|
1362 |
+
|
1363 |
+
$handle = self::$handle_script;
|
1364 |
+
|
1365 |
+
$src = WPGlobus::$PLUGIN_DIR_URL . 'includes/js/' .
|
1366 |
+
$handle . '-' . $src_version .
|
1367 |
+
WPGlobus::SCRIPT_SUFFIX() . '.js';
|
1368 |
+
|
1369 |
+
wp_register_script(
|
1370 |
+
$handle,
|
1371 |
+
$src,
|
1372 |
+
array( 'jquery', 'underscore' ),
|
1373 |
+
WPGLOBUS_VERSION,
|
1374 |
+
true
|
1375 |
+
);
|
1376 |
+
|
1377 |
+
wp_enqueue_script($handle);
|
1378 |
+
|
1379 |
+
wp_localize_script(
|
1380 |
+
$handle,
|
1381 |
+
'WPGlobusYoastSeo',
|
1382 |
+
array(
|
1383 |
+
'version' => WPGLOBUS_VERSION,
|
1384 |
+
'wpseo_version' => WPSEO_VERSION,
|
1385 |
+
'src_version' => $src_version,
|
1386 |
+
'builder_id' => WPGlobus::Config()->builder->get('id'),
|
1387 |
+
'builder_page' => WPGlobus::Config()->builder->is_builder_page() ? 'true' : 'false',
|
1388 |
+
'language' => WPGlobus::Config()->builder->get_language(),
|
1389 |
+
'is_default_language' => WPGlobus::Config()->builder->is_default_language() ? true : false,
|
1390 |
+
'src_version_premium' => $src_version_premium,
|
1391 |
+
'plus_module' => self::$plus_module,
|
1392 |
+
'access_extra' => ( defined( 'WPGLOBUS_YOAST_SEO_ACCESS_EXTRA' ) && WPGLOBUS_YOAST_SEO_ACCESS_EXTRA ) ? 'true' : 'false'
|
1393 |
+
)
|
1394 |
+
);
|
1395 |
+
|
1396 |
+
wp_localize_script(
|
1397 |
+
$handle,
|
1398 |
+
'WPGlobusVendor',
|
1399 |
+
array(
|
1400 |
+
'version' => WPGLOBUS_VERSION,
|
1401 |
+
'vendor' => WPGlobus::O()->vendors_scripts,
|
1402 |
+
'pagenow' => $pagenow,
|
1403 |
+
'i18n' => $i18n
|
1404 |
+
)
|
1405 |
+
);
|
1406 |
+
|
1407 |
+
endif;
|
1408 |
+
}
|
1409 |
+
}
|
1410 |
+
|
1411 |
+
/**
|
1412 |
+
* Check disabled entity.
|
1413 |
+
*
|
1414 |
+
* @since 1.7.3
|
1415 |
+
* @return boolean
|
1416 |
+
*/
|
1417 |
+
public static function disabled_entity() {
|
1418 |
+
|
1419 |
+
if ( WPGlobus_WP::is_pagenow( array( 'edit-tags.php', 'term.php' ) ) ) :
|
1420 |
+
/**
|
1421 |
+
* Don't check page when editing taxonomy.
|
1422 |
+
*/
|
1423 |
+
return false;
|
1424 |
+
endif;
|
1425 |
+
|
1426 |
+
/** @global WP_Post $post */
|
1427 |
+
global $post;
|
1428 |
+
|
1429 |
+
$result = false;
|
1430 |
+
if ( WPGlobus_WP::is_pagenow( array( 'post.php', 'post-new.php' ) ) ) :
|
1431 |
+
if ( empty( $post ) ) {
|
1432 |
+
$result = true;
|
1433 |
+
} elseif ( WPGlobus::O()->disabled_entity( $post->post_type ) ) {
|
1434 |
+
$result = true;
|
1435 |
+
}
|
1436 |
+
endif;
|
1437 |
+
return $result;
|
1438 |
+
}
|
1439 |
+
|
1440 |
+
/**
|
1441 |
+
* Filter allows changing graph breadcrumb output.
|
1442 |
+
*
|
1443 |
+
* @see wordpress-seo\src\generators\schema-generator.php
|
1444 |
+
* @see "application/ld+json" in html code on front.
|
1445 |
+
*
|
1446 |
+
* @since 2.4.7
|
1447 |
+
*
|
1448 |
+
* @scope front
|
1449 |
+
* @param array $graph_piece Array of graph piece.
|
1450 |
+
* @param Meta_Tags_Context $context A value object with context variables.
|
1451 |
+
* @return array
|
1452 |
+
*/
|
1453 |
+
public static function filter__wpseo_schema_breadcrumb( $graph_piece, $context ) {
|
1454 |
+
|
1455 |
+
if ( empty( $graph_piece['itemListElement'] ) ) {
|
1456 |
+
return $graph_piece;
|
1457 |
+
}
|
1458 |
+
|
1459 |
+
$itemListElement = $graph_piece['itemListElement'];
|
1460 |
+
|
1461 |
+
foreach( $itemListElement as $_key=>$_item ) {
|
1462 |
+
if ( ! empty( $_item['item']['name'] ) && WPGlobus_Core::has_translations( $_item['item']['name'] ) ) {
|
1463 |
+
$graph_piece['itemListElement'][$_key]['item']['name'] = WPGlobus_Core::extract_text( $graph_piece['itemListElement'][$_key]['item']['name'], WPGlobus::Config()->language );
|
1464 |
+
}
|
1465 |
+
}
|
1466 |
+
|
1467 |
+
return $graph_piece;
|
1468 |
+
}
|
1469 |
+
|
1470 |
+
/**
|
1471 |
+
* Filter allows changing output of graph `webpage`.
|
1472 |
+
*
|
1473 |
+
* @see wordpress-seo\src\generators\schema-generator.php
|
1474 |
+
* @see "application/ld+json" in html code on front.
|
1475 |
+
*
|
1476 |
+
* @since 2.4.14
|
1477 |
+
* @since 2.4.15 Localize description.
|
1478 |
+
* @since 2.5.1 Added support of taxonomies.
|
1479 |
+
*
|
1480 |
+
* @scope front
|
1481 |
+
* @param array $graph_piece Array of graph piece.
|
1482 |
+
* @param Meta_Tags_Context $context A value object with context variables.
|
1483 |
+
* @return array
|
1484 |
+
*/
|
1485 |
+
public static function filter__wpseo_schema_webpage( $graph_piece, $context ) {
|
1486 |
+
|
1487 |
+
if ( 'post' == $context->indexable->object_type ) {
|
1488 |
+
|
1489 |
+
if ( ! empty( $graph_piece['name'] ) && WPGlobus_Core::has_translations( $graph_piece['name'] ) ) {
|
1490 |
+
$graph_piece['name'] = WPGlobus_Core::extract_text( $graph_piece['name'], WPGlobus::Config()->language );
|
1491 |
+
}
|
1492 |
+
|
1493 |
+
/**
|
1494 |
+
* @since 2.4.15
|
1495 |
+
*/
|
1496 |
+
if ( ! empty( $graph_piece['description'] ) && WPGlobus_Core::has_translations( $graph_piece['description'] ) ) {
|
1497 |
+
$graph_piece['description'] = WPGlobus_Core::extract_text( $graph_piece['description'], WPGlobus::Config()->language );
|
1498 |
+
}
|
1499 |
+
|
1500 |
+
} elseif ( 'term' == $context->indexable->object_type ) {
|
1501 |
+
|
1502 |
+
/**
|
1503 |
+
* Taxonomy.
|
1504 |
+
* @since 2.5.1
|
1505 |
+
*/
|
1506 |
+
$graph_piece['description'] = self::get_taxonomy_meta( $context->indexable->object_sub_type, $context->indexable->object_id, 'wpseo_desc' );
|
1507 |
+
$graph_piece['url'] = WPGlobus_Utils::localize_url( $graph_piece['url'], WPGlobus::Config()->language );
|
1508 |
+
$graph_piece['@id'] = WPGlobus_Utils::localize_url( $graph_piece['@id'], WPGlobus::Config()->language );
|
1509 |
+
$graph_piece['breadcrumb']['@id'] = WPGlobus_Utils::localize_url( $graph_piece['breadcrumb']['@id'], WPGlobus::Config()->language );
|
1510 |
+
}
|
1511 |
+
|
1512 |
+
return $graph_piece;
|
1513 |
+
}
|
1514 |
+
|
1515 |
+
/**
|
1516 |
+
* Filter for changing the Yoast SEO generated title.
|
1517 |
+
*
|
1518 |
+
* @see wordpress-seo\src\presenters\title-presenter.php
|
1519 |
+
*
|
1520 |
+
* @since 2.5.22
|
1521 |
+
*
|
1522 |
+
* @scope front
|
1523 |
+
*
|
1524 |
+
* @param string $title The title.
|
1525 |
+
* @param Indexable_Presentation $presentation The presentation of an indexable.
|
1526 |
+
*
|
1527 |
+
* @return string
|
1528 |
+
*/
|
1529 |
+
public static function filter_front__title( $title, $presentation ) {
|
1530 |
+
|
1531 |
+
if ( 'post' == $presentation->model->object_type ) {
|
1532 |
+
|
1533 |
+
/**
|
1534 |
+
* Post.
|
1535 |
+
*/
|
1536 |
+
$meta_cache = wp_cache_get( $presentation->model->object_id, 'post_meta' );
|
1537 |
+
|
1538 |
+
if ( ! empty( $meta_cache['_yoast_wpseo_title'][0] ) ) {
|
1539 |
+
|
1540 |
+
$__title = WPGlobus_Core::text_filter( $meta_cache['_yoast_wpseo_title'][0], WPGlobus::Config()->language );
|
1541 |
+
|
1542 |
+
if ( $presentation->source instanceof WP_Post ) {
|
1543 |
+
|
1544 |
+
if ( WPGlobus_Core::has_translations( $presentation->source->post_title ) ) {
|
1545 |
+
$presentation->source->post_title = WPGlobus_Core::text_filter( $presentation->source->post_title, WPGlobus::Config()->language );
|
1546 |
+
}
|
1547 |
+
|
1548 |
+
/**
|
1549 |
+
* @see wordpress-seo\inc\wpseo-functions.php
|
1550 |
+
*/
|
1551 |
+
$title = wpseo_replace_vars( $__title, $presentation->source );
|
1552 |
+
}
|
1553 |
+
|
1554 |
+
} else {
|
1555 |
+
|
1556 |
+
/**
|
1557 |
+
* @since 2.5.23
|
1558 |
+
*/
|
1559 |
+
if ( WPGlobus_Core::has_translations( $title ) ) {
|
1560 |
+
$title = WPGlobus_Core::extract_text( $title, WPGlobus::Config()->language );
|
1561 |
+
}
|
1562 |
+
|
1563 |
+
}
|
1564 |
+
|
1565 |
+
} elseif ( 'term' == $presentation->model->object_type ) {
|
1566 |
+
|
1567 |
+
/**
|
1568 |
+
* Taxonomy.
|
1569 |
+
*/
|
1570 |
+
$__title = self::get_taxonomy_meta( $presentation->model->object_sub_type, $presentation->model->object_id, 'wpseo_title' );
|
1571 |
+
|
1572 |
+
if ( empty( $__title ) ) {
|
1573 |
+
$__title = self::get_option( 'wpseo_titles', 'title-tax-' . $presentation->model->object_sub_type );
|
1574 |
+
}
|
1575 |
+
|
1576 |
+
$title = wpseo_replace_vars( $__title, $presentation->source );
|
1577 |
+
|
1578 |
+
}
|
1579 |
+
|
1580 |
+
return $title;
|
1581 |
+
}
|
1582 |
+
|
1583 |
+
/**
|
1584 |
+
* Get wpseo options.
|
1585 |
+
*
|
1586 |
+
* @since 2.5.22
|
1587 |
+
*
|
1588 |
+
* @return array|string
|
1589 |
+
*/
|
1590 |
+
public static function get_option( $option = 'wpseo_titles', $key = '' ) {
|
1591 |
+
|
1592 |
+
/**
|
1593 |
+
* @todo Maybe to use WPSEO_Options.
|
1594 |
+
* @see wordpress-seo\inc\options\class-wpseo-options.php
|
1595 |
+
* @since 2.5.22
|
1596 |
+
*/
|
1597 |
+
|
1598 |
+
$options = get_option( $option );
|
1599 |
+
|
1600 |
+
if ( empty( $key ) ) {
|
1601 |
+
return $options;
|
1602 |
+
}
|
1603 |
+
|
1604 |
+
if ( ! isset( $options[$key] ) ) {
|
1605 |
+
return null;
|
1606 |
+
}
|
1607 |
+
|
1608 |
+
return $options[$key];
|
1609 |
+
}
|
1610 |
+
|
1611 |
+
} // class WPGlobus_YoastSEO.
|
1612 |
+
|
1613 |
# --- EOF
|
languages/wpglobus.pot
CHANGED
@@ -1,8 +1,8 @@
|
|
1 |
-
# Copyright (C) 2021 WPGlobus 2.
|
2 |
-
# This file is distributed under the same license as the WPGlobus 2.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"Project-Id-Version: WPGlobus 2.
|
6 |
"MIME-Version: 1.0\n"
|
7 |
"Content-Type: text/plain; charset=UTF-8\n"
|
8 |
"Content-Transfer-Encoding: 8bit\n"
|
1 |
+
# Copyright (C) 2021 WPGlobus 2.7.0
|
2 |
+
# This file is distributed under the same license as the WPGlobus 2.7.0 package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: WPGlobus 2.7.0\n"
|
6 |
"MIME-Version: 1.0\n"
|
7 |
"Content-Type: text/plain; charset=UTF-8\n"
|
8 |
"Content-Transfer-Encoding: 8bit\n"
|
readme.txt
CHANGED
@@ -3,7 +3,7 @@ Contributors: tivnetinc, alexgff, tivnet
|
|
3 |
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=SLF8M4YNZHNQN
|
4 |
Tags: WPGlobus, localization, multilanguage, multilingual, translate
|
5 |
Requires at least: 5.5
|
6 |
-
Tested up to: 5.
|
7 |
Requires PHP: 5.6
|
8 |
Stable tag: trunk
|
9 |
License: GPL-3.0-or-later
|
@@ -220,6 +220,11 @@ WPGlobus Version 2 supports WordPress 5.x, with Gutenberg.
|
|
220 |
|
221 |
== Changelog ==
|
222 |
|
|
|
|
|
|
|
|
|
|
|
223 |
= 2.6.8 =
|
224 |
* (Core) Added HTML entities to convert in JS.
|
225 |
|
@@ -237,14 +242,6 @@ WPGlobus Version 2 supports WordPress 5.x, with Gutenberg.
|
|
237 |
* (Vendor/ACF) Added `WPGlobus_Vendor_Acf` class.
|
238 |
* (Vendor/ACF) Updated JS.
|
239 |
|
240 |
-
= 2.6.5 =
|
241 |
-
* (Core/Plugin Install) Added `WPGlobus Multilingual Popups` info box to the plugins list.
|
242 |
-
* (Core/Post Types) Added the `Popup Builder` plugin post types to the `"hidden types"` list.
|
243 |
-
|
244 |
-
= 2.6.4 =
|
245 |
-
* (Core/Plugin Install) Added `WPGlobus for Ultimate Member` info box to the plugins list.
|
246 |
-
* (Core/Post Types) Added the `Popup Maker` plugin post types to the `"hidden types"` list.
|
247 |
-
|
248 |
= Earlier versions and Add-ons =
|
249 |
|
250 |
* [See the complete changelog here](https://github.com/WPGlobus/WPGlobus/blob/master/CHANGELOG.md)
|
3 |
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=SLF8M4YNZHNQN
|
4 |
Tags: WPGlobus, localization, multilanguage, multilingual, translate
|
5 |
Requires at least: 5.5
|
6 |
+
Tested up to: 5.7
|
7 |
Requires PHP: 5.6
|
8 |
Stable tag: trunk
|
9 |
License: GPL-3.0-or-later
|
220 |
|
221 |
== Changelog ==
|
222 |
|
223 |
+
= 2.7.0 =
|
224 |
+
* (Compatibility) Tested up to WordPress 5.7
|
225 |
+
* (Core/Post Types) Added the `SlidersPack` plugin post type to the `"hidden types"` list.
|
226 |
+
* (Vendor/Yoast) Fixed issue with empty taxonomy meta description.
|
227 |
+
|
228 |
= 2.6.8 =
|
229 |
* (Core) Added HTML entities to convert in JS.
|
230 |
|
242 |
* (Vendor/ACF) Added `WPGlobus_Vendor_Acf` class.
|
243 |
* (Vendor/ACF) Updated JS.
|
244 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
245 |
= Earlier versions and Add-ons =
|
246 |
|
247 |
* [See the complete changelog here](https://github.com/WPGlobus/WPGlobus/blob/master/CHANGELOG.md)
|
trunk/configs/acf.json
DELETED
@@ -1,12 +0,0 @@
|
|
1 |
-
{
|
2 |
-
"post_meta_fields": {
|
3 |
-
"*":{"file":"vendor/acf/class-wpglobus-acf.php","class":"WPGlobus_Acf_2"}
|
4 |
-
},
|
5 |
-
"post_ml_fields": {
|
6 |
-
"*":{"file":"vendor/acf/class-wpglobus-acf.php","class":"WPGlobus_Acf_2"}
|
7 |
-
},
|
8 |
-
"wp_options": {
|
9 |
-
"blogname": {},
|
10 |
-
"blogdescription": null
|
11 |
-
}
|
12 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/configs/all-in-one-seo-pack.json
DELETED
@@ -1,16 +0,0 @@
|
|
1 |
-
{
|
2 |
-
"post_meta_fields": {
|
3 |
-
"_aioseop_title": {},
|
4 |
-
"_aioseop_description": {},
|
5 |
-
"_aioseop_keywords": {}
|
6 |
-
},
|
7 |
-
"post_ml_fields": {
|
8 |
-
"aiosp_title": {},
|
9 |
-
"aiosp_description": {},
|
10 |
-
"aiosp_keywords": {}
|
11 |
-
},
|
12 |
-
"wp_options": {
|
13 |
-
"blogname": {},
|
14 |
-
"blogdescription": null
|
15 |
-
}
|
16 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/configs/elementor.json
DELETED
@@ -1,5 +0,0 @@
|
|
1 |
-
{
|
2 |
-
"post_meta_fields": {
|
3 |
-
"_elementor_data": {}
|
4 |
-
}
|
5 |
-
}
|
|
|
|
|
|
|
|
|
|
trunk/configs/pods.json
DELETED
@@ -1,12 +0,0 @@
|
|
1 |
-
{
|
2 |
-
"post_meta_fields": {
|
3 |
-
"*":{"file":"vendor/pods/class-wpglobus-vendor-pods.php","class":"WPGlobus_Vendor_Pods"}
|
4 |
-
},
|
5 |
-
"post_ml_fields": {
|
6 |
-
"*":{"file":"vendor/pods/class-wpglobus-vendor-pods.php","class":"WPGlobus_Vendor_Pods"}
|
7 |
-
},
|
8 |
-
"wp_options": {
|
9 |
-
"blogname": {},
|
10 |
-
"blogdescription": null
|
11 |
-
}
|
12 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/configs/rank-math-seo.json
DELETED
@@ -1,14 +0,0 @@
|
|
1 |
-
{
|
2 |
-
"post_meta_fields": {
|
3 |
-
"*":{"file":"vendor/rank-math-seo/class-wpglobus-vendor-rank_math_seo.php","class":"WPGlobus_Vendor_RankMathSEO"}
|
4 |
-
},
|
5 |
-
"post_ml_fields": {
|
6 |
-
"rank_math_title": {},
|
7 |
-
"rank_math_description": {},
|
8 |
-
"rank_math_focus_keyword": {}
|
9 |
-
},
|
10 |
-
"wp_options": {
|
11 |
-
"blogname": {},
|
12 |
-
"blogdescription": null
|
13 |
-
}
|
14 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/configs/woocommerce.json
DELETED
@@ -1,8 +0,0 @@
|
|
1 |
-
{
|
2 |
-
"post_meta_fields": {
|
3 |
-
"_purchase_note": {}
|
4 |
-
},
|
5 |
-
"post_ml_fields": {
|
6 |
-
"_purchase_note": {}
|
7 |
-
}
|
8 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/configs/wpglobus-seo.json
DELETED
@@ -1,5 +0,0 @@
|
|
1 |
-
{
|
2 |
-
"post_meta_fields": {
|
3 |
-
"_wpglobus_seo_test": {}
|
4 |
-
}
|
5 |
-
}
|
|
|
|
|
|
|
|
|
|
trunk/configs/wpglobus.json
DELETED
@@ -1,5 +0,0 @@
|
|
1 |
-
{
|
2 |
-
"post_meta_fields": {
|
3 |
-
"_wpglobus_seo_test": {}
|
4 |
-
}
|
5 |
-
}
|
|
|
|
|
|
|
|
|
|
trunk/configs/yoast-seo.json
DELETED
@@ -1,25 +0,0 @@
|
|
1 |
-
{
|
2 |
-
"post_meta_fields": {
|
3 |
-
"_yoast_wpseo_title": {},
|
4 |
-
"_yoast_wpseo_metadesc": {},
|
5 |
-
"_yoast_wpseo_focuskw": {},
|
6 |
-
"_yoast_wpseo_focuskw_text_input": null,
|
7 |
-
"_yoast_wpseo_keywordsynonyms": {},
|
8 |
-
"_yoast_wpseo_focuskeywords": {},
|
9 |
-
"_yoast_wpseo_opengraph-title": {},
|
10 |
-
"_yoast_wpseo_opengraph-description": {},
|
11 |
-
"_yoast_wpseo_opengraph-image": {},
|
12 |
-
"_yoast_wpseo_opengraph-image-id": {},
|
13 |
-
"_yoast_wpseo_twitter-title": {},
|
14 |
-
"_yoast_wpseo_twitter-description": {},
|
15 |
-
"_yoast_wpseo_twitter-image": {},
|
16 |
-
"_yoast_wpseo_twitter-image-id": {}
|
17 |
-
},
|
18 |
-
"post_ml_fields": {
|
19 |
-
"focus-keyword-input-metabox": {}
|
20 |
-
},
|
21 |
-
"wp_options": {
|
22 |
-
"blogname": {},
|
23 |
-
"blogdescription": null
|
24 |
-
}
|
25 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/data/paid_plugins.json
DELETED
@@ -1,78 +0,0 @@
|
|
1 |
-
{
|
2 |
-
"woocommerce-wpglobus": {
|
3 |
-
"slug": "woocommerce-wpglobus",
|
4 |
-
"loader": "woocommerce-wpglobus.php",
|
5 |
-
"image_file": "woocommerce-wpglobus-logo-300x300.png",
|
6 |
-
"order": 120
|
7 |
-
},
|
8 |
-
"wpglobus-plus": {
|
9 |
-
"slug": "wpglobus-plus",
|
10 |
-
"loader": "wpglobus-plus.php",
|
11 |
-
"image_file": "wpglobus-plus-logo-300x300.png",
|
12 |
-
"order": 110
|
13 |
-
},
|
14 |
-
"wpglobus-revslider": {
|
15 |
-
"slug": "wpglobus-revslider",
|
16 |
-
"loader": "wpglobus-revslider.php",
|
17 |
-
"product_slug": "wpglobus-for-slider-revolution",
|
18 |
-
"image_file": "wpglobus-revslider-logo-400x400.png",
|
19 |
-
"order": 100,
|
20 |
-
"available": false
|
21 |
-
},
|
22 |
-
"wpglobus-language-widgets": {
|
23 |
-
"slug": "wpglobus-language-widgets",
|
24 |
-
"loader": "wpglobus-language-widgets.php",
|
25 |
-
"image_file": "wpglobus-lw-logo-400x400.png",
|
26 |
-
"order": 90
|
27 |
-
},
|
28 |
-
"wpglobus-menu-visibility": {
|
29 |
-
"slug": "wpglobus-menu-visibility",
|
30 |
-
"loader": "wpglobus-menu-visibility.php",
|
31 |
-
"image_file": "wpglobus-menu-visibility-logo.png",
|
32 |
-
"order": 80
|
33 |
-
},
|
34 |
-
"wpglobus-header-images": {
|
35 |
-
"slug": "wpglobus-header-images",
|
36 |
-
"loader": "wpglobus-header-images.php",
|
37 |
-
"image_file": "wpglobus-hi-logo-400x400.png",
|
38 |
-
"order": 70
|
39 |
-
},
|
40 |
-
"wpglobus-mobile-menu": {
|
41 |
-
"slug": "wpglobus-mobile-menu",
|
42 |
-
"loader": "wpglobus-mobile-menu.php",
|
43 |
-
"image_file": "wpglobus-mobile-menu-logo-400x400.png",
|
44 |
-
"order": 60
|
45 |
-
},
|
46 |
-
"wpglobus-for-ultimate-member": {
|
47 |
-
"slug": "wpglobus-for-ultimate-member",
|
48 |
-
"loader": "wpglobus-for-ultimate-member.php",
|
49 |
-
"image_file": "https://wpglobus.com/app/uploads/2021/01/wpglobus-for-um-logo-400x400-1.png",
|
50 |
-
"order": 50
|
51 |
-
},
|
52 |
-
"wpglobus-multilingual-popups": {
|
53 |
-
"slug": "wpglobus-multilingual-popups",
|
54 |
-
"loader": "wpglobus-multilingual-popups.php",
|
55 |
-
"image_file": "https://wpglobus.com/app/uploads/2021/02/wpglobus-ml-pop-400x400-1.png",
|
56 |
-
"order": 40
|
57 |
-
},
|
58 |
-
"wpglobus-multilingual-notices": {
|
59 |
-
"slug": "wpglobus-multilingual-notices",
|
60 |
-
"loader": "wpglobus-multilingual-notices.php",
|
61 |
-
"image_file": "wpglobus-multilingual-notices-logo.png",
|
62 |
-
"order": 30
|
63 |
-
},
|
64 |
-
"wpglobus-for-bridge-theme": {
|
65 |
-
"slug": "wpglobus-for-bridge-theme",
|
66 |
-
"loader": "wpglobus-for-bridge-theme.php",
|
67 |
-
"product_slug": "wpglobus-for-bridge-theme",
|
68 |
-
"image_file": "wpglobus-for-bridge-theme-logo-400x400.png",
|
69 |
-
"order": 20
|
70 |
-
},
|
71 |
-
"woocommerce-nets-netaxept": {
|
72 |
-
"slug": "woocommerce-nets-netaxept",
|
73 |
-
"loader": "woocommerce-nets-netaxept.php",
|
74 |
-
"product_slug": "multilingual-woocommerce-nets-netaxept",
|
75 |
-
"image_file": "woocommerce-wpglobus-netaxeptcw-logo-300x300.jpg",
|
76 |
-
"order": 10
|
77 |
-
}
|
78 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/data/wpglobus-product-info.json
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
{"multilingual-woocommerce-nets-netaxept":{"title":"{:en}Multilingual WooCommerce Nets Netaxept{:}{:ru}\u041c\u0443\u043b\u044c\u0442\u0438\u044f\u0437\u044b\u0447\u043d\u043e\u0441\u0442\u044c \u0434\u043b\u044f WooCommerce Nets Netaxept{:}","_api_new_version":"1.0.3","_api_tested_up_to":"4.9.8"},"wpglobus-multi-currency":{"title":"{:en}Multi-Currency for WooCommerce{:}{:ru}WPGlobus - \u041c\u0443\u043b\u044c\u0442\u0438\u0432\u0430\u043b\u044e\u0442\u043d\u043e\u0441\u0442\u044c \u0434\u043b\u044f WooCommerce{:}","_api_new_version":"1.1.1","_api_tested_up_to":"4.9.4"},"wpglobus-mobile-menu":{"title":"{:en}WPGlobus Mobile Menu{:}{:ru}WPGlobus Mobile Menu{:}","_api_new_version":"2.2.0","_api_tested_up_to":"5.6"},"woocommerce-wpglobus":{"title":"{:en}WPGlobus for WooCommerce{:}{:ru}\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 WooCommerce WPGlobus{:}","_api_new_version":"4.3.0","_api_tested_up_to":"5.6"},"wpglobus-header-images":{"title":"{:en}WPGlobus Header Images{:}{:ru}WPGlobus Header Images{:}","_api_new_version":"2.1.0","_api_tested_up_to":"5.5"},"wpglobus-for-bridge-theme":{"title":"{:en}WPGlobus for the \"Bridge\" theme{:}{:ru}WPGlobus \u0434\u043b\u044f \u0442\u0435\u043c\u044b Bridge{:}","_api_new_version":"2.3.0","_api_tested_up_to":"5.5"},"wpglobus-language-widgets":{"title":"{:en}WPGlobus Language Widgets{:}{:ru}\u042f\u0437\u044b\u043a\u0438 WPGlobus \u0434\u043b\u044f \u0432\u0438\u0434\u0436\u0435\u0442\u043e\u0432{:}","_api_new_version":"2.0.0","_api_tested_up_to":"5.6.0"},"wpglobus-for-ultimate-member":{"title":"{:en}WPGlobus for Ultimate Member{:}{:ru}WPGlobus \u0434\u043b\u044f \u043f\u043b\u0430\u0433\u0438\u043d\u0430 Ultimate Member{:}","_api_new_version":"1.1.0","_api_tested_up_to":"5.6"},"wpglobus-multilingual-notices":{"title":"{:en}WPGlobus Multilingual Notices{:}{:ru}WPGlobus - \u043c\u043d\u043e\u0433\u043e\u044f\u0437\u044b\u0447\u043d\u044b\u0435 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u044f{:}","_api_new_version":"2.5.0","_api_tested_up_to":"5.6"},"wpglobus-multilingual-popups":{"title":"{:en}WPGlobus Multilingual Popups{:}{:ru}WPGlobus Multilingual Popups{:}","_api_new_version":"1.3.0","_api_tested_up_to":"5.6"},"wpglobus-menu-visibility":{"title":"WPGlobus Menu Visibility","_api_new_version":"2.0.0","_api_tested_up_to":"5.6"},"wpglobus-plus":{"title":"{:en}WPGlobus Plus multilingual extension{:}{:ru}WPGlobus \u041f\u043b\u044e\u0441{:}","_api_new_version":"1.5.7","_api_tested_up_to":"5.6"}}
|
|
trunk/flags/ad.alt.png
DELETED
Binary file
|
trunk/flags/ad.png
DELETED
Binary file
|
trunk/flags/ae.png
DELETED
Binary file
|
trunk/flags/af.png
DELETED
Binary file
|
trunk/flags/ag.png
DELETED
Binary file
|
trunk/flags/ai.alt.png
DELETED
Binary file
|
trunk/flags/ai.png
DELETED
Binary file
|
trunk/flags/al.png
DELETED
Binary file
|
trunk/flags/am.png
DELETED
Binary file
|
trunk/flags/an.png
DELETED
Binary file
|
trunk/flags/ao.png
DELETED
Binary file
|
trunk/flags/aq.png
DELETED
Binary file
|
trunk/flags/ar.alt.png
DELETED
Binary file
|
trunk/flags/ar.png
DELETED
Binary file
|
trunk/flags/argm.jpg
DELETED
Binary file
|
trunk/flags/arle.png
DELETED
Binary file
|
trunk/flags/as.png
DELETED
Binary file
|
trunk/flags/asl.gif
DELETED
Binary file
|
trunk/flags/at.alt.png
DELETED
Binary file
|
trunk/flags/at.png
DELETED
Binary file
|
trunk/flags/au.png
DELETED
Binary file
|
trunk/flags/aw.png
DELETED
Binary file
|
trunk/flags/ax.png
DELETED
Binary file
|
trunk/flags/az.png
DELETED
Binary file
|
trunk/flags/ba.png
DELETED
Binary file
|
trunk/flags/bb.png
DELETED
Binary file
|
trunk/flags/bd.png
DELETED
Binary file
|
trunk/flags/be.png
DELETED
Binary file
|
trunk/flags/bf.png
DELETED
Binary file
|
trunk/flags/bg.png
DELETED
Binary file
|
trunk/flags/bh.png
DELETED
Binary file
|
trunk/flags/bi.alt.png
DELETED
Binary file
|
trunk/flags/bi.png
DELETED
Binary file
|
trunk/flags/big/au.png
DELETED
Binary file
|
trunk/flags/big/br.png
DELETED
Binary file
|
trunk/flags/big/ca.png
DELETED
Binary file
|
trunk/flags/big/cn.png
DELETED
Binary file
|
trunk/flags/big/cy.png
DELETED
Binary file
|
trunk/flags/big/de.png
DELETED
Binary file
|
trunk/flags/big/dk.png
DELETED
Binary file
|
trunk/flags/big/es.alt.png
DELETED
Binary file
|
trunk/flags/big/es.png
DELETED
Binary file
|
trunk/flags/big/fi.png
DELETED
Binary file
|
trunk/flags/big/ir.png
DELETED
Binary file
|
trunk/flags/big/it.png
DELETED
Binary file
|
trunk/flags/big/ka.png
DELETED
Binary file
|
trunk/flags/big/ru.png
DELETED
Binary file
|
trunk/flags/big/uk.png
DELETED
Binary file
|
trunk/flags/big/us.png
DELETED
Binary file
|
trunk/flags/bj.png
DELETED
Binary file
|
trunk/flags/bm.png
DELETED
Binary file
|
trunk/flags/bn.png
DELETED
Binary file
|
trunk/flags/bo.png
DELETED
Binary file
|
trunk/flags/br.png
DELETED
Binary file
|
trunk/flags/bs.png
DELETED
Binary file
|
trunk/flags/bt.png
DELETED
Binary file
|
trunk/flags/bv.png
DELETED
Binary file
|
trunk/flags/bw.png
DELETED
Binary file
|
trunk/flags/by.png
DELETED
Binary file
|
trunk/flags/bz.png
DELETED
Binary file
|
trunk/flags/ca.alt.png
DELETED
Binary file
|
trunk/flags/ca.png
DELETED
Binary file
|
trunk/flags/cc.alt.png
DELETED
Binary file
|
trunk/flags/cc.png
DELETED
Binary file
|
trunk/flags/cd.png
DELETED
Binary file
|
trunk/flags/cf.png
DELETED
Binary file
|
trunk/flags/cg.png
DELETED
Binary file
|
trunk/flags/ch.png
DELETED
Binary file
|
trunk/flags/ci.png
DELETED
Binary file
|
trunk/flags/ck.png
DELETED
Binary file
|
trunk/flags/cl.png
DELETED
Binary file
|
trunk/flags/cm.png
DELETED
Binary file
|
trunk/flags/cn.png
DELETED
Binary file
|
trunk/flags/co.png
DELETED
Binary file
|
trunk/flags/cr.alt.png
DELETED
Binary file
|
trunk/flags/cr.png
DELETED
Binary file
|
trunk/flags/cs.png
DELETED
Binary file
|
trunk/flags/cu.png
DELETED
Binary file
|
trunk/flags/cv.png
DELETED
Binary file
|
trunk/flags/cx.png
DELETED
Binary file
|
trunk/flags/cy.png
DELETED
Binary file
|
trunk/flags/cz.png
DELETED
Binary file
|
trunk/flags/de.png
DELETED
Binary file
|
trunk/flags/dj.png
DELETED
Binary file
|
trunk/flags/dk.png
DELETED
Binary file
|
trunk/flags/dm.png
DELETED
Binary file
|
trunk/flags/do.png
DELETED
Binary file
|
trunk/flags/dz.png
DELETED
Binary file
|
trunk/flags/easy_to_read.png
DELETED
Binary file
|
trunk/flags/ec.alt.png
DELETED
Binary file
|
trunk/flags/ec.png
DELETED
Binary file
|
trunk/flags/ee.png
DELETED
Binary file
|
trunk/flags/eg.png
DELETED
Binary file
|
trunk/flags/eh.alt.png
DELETED
Binary file
|
trunk/flags/eh.png
DELETED
Binary file
|
trunk/flags/en.png
DELETED
Binary file
|
trunk/flags/eo.png
DELETED
Binary file
|
trunk/flags/er.png
DELETED
Binary file
|
trunk/flags/es.alt.png
DELETED
Binary file
|
trunk/flags/es.png
DELETED
Binary file
|
trunk/flags/et.alt.png
DELETED
Binary file
|
trunk/flags/et.png
DELETED
Binary file
|
trunk/flags/eu.png
DELETED
Binary file
|
trunk/flags/eus.png
DELETED
Binary file
|
trunk/flags/fi.png
DELETED
Binary file
|
trunk/flags/fj.png
DELETED
Binary file
|
trunk/flags/fk.png
DELETED
Binary file
|
trunk/flags/fm.png
DELETED
Binary file
|
trunk/flags/fo.png
DELETED
Binary file
|
trunk/flags/fr.png
DELETED
Binary file
|
trunk/flags/fr_CA.png
DELETED
Binary file
|
trunk/flags/ga.png
DELETED
Binary file
|
trunk/flags/galego.png
DELETED
Binary file
|
trunk/flags/gb.png
DELETED
Binary file
|
trunk/flags/gd.png
DELETED
Binary file
|
trunk/flags/ge.png
DELETED
Binary file
|
trunk/flags/gf.png
DELETED
Binary file
|
trunk/flags/gg.png
DELETED
Binary file
|
trunk/flags/gh.png
DELETED
Binary file
|
trunk/flags/gi.png
DELETED
Binary file
|
trunk/flags/gl.png
DELETED
Binary file
|
trunk/flags/gm.png
DELETED
Binary file
|
trunk/flags/gn.png
DELETED
Binary file
|
trunk/flags/gp.png
DELETED
Binary file
|
trunk/flags/gq.png
DELETED
Binary file
|
trunk/flags/gr.png
DELETED
Binary file
|
trunk/flags/gs.png
DELETED
Binary file
|
trunk/flags/gt.alt.png
DELETED
Binary file
|
trunk/flags/gt.png
DELETED
Binary file
|
trunk/flags/gu.png
DELETED
Binary file
|
trunk/flags/gw.png
DELETED
Binary file
|
trunk/flags/gy.png
DELETED
Binary file
|
trunk/flags/hk.png
DELETED
Binary file
|
trunk/flags/hm.png
DELETED
Binary file
|
trunk/flags/hn.png
DELETED
Binary file
|
trunk/flags/hr.png
DELETED
Binary file
|
trunk/flags/ht.alt.png
DELETED
Binary file
|
trunk/flags/ht.png
DELETED
Binary file
|
trunk/flags/hu.png
DELETED
Binary file
|
trunk/flags/id.png
DELETED
Binary file
|
trunk/flags/ie.png
DELETED
Binary file
|
trunk/flags/il.png
DELETED
Binary file
|
trunk/flags/im.png
DELETED
Binary file
|
trunk/flags/in.png
DELETED
Binary file
|
trunk/flags/io.png
DELETED
Binary file
|
trunk/flags/iq.png
DELETED
Binary file
|
trunk/flags/ir.png
DELETED
Binary file
|
trunk/flags/is.png
DELETED
Binary file
|
trunk/flags/it.png
DELETED
Binary file
|
trunk/flags/je.png
DELETED
Binary file
|
trunk/flags/jm.png
DELETED
Binary file
|
trunk/flags/jo.png
DELETED
Binary file
|
trunk/flags/jp.png
DELETED
Binary file
|
trunk/flags/ka.png
DELETED
Binary file
|
trunk/flags/ke.png
DELETED
Binary file
|
trunk/flags/kg.png
DELETED
Binary file
|
trunk/flags/kh.png
DELETED
Binary file
|
trunk/flags/ki.png
DELETED
Binary file
|
trunk/flags/km.png
DELETED
Binary file
|
trunk/flags/kn.png
DELETED
Binary file
|
trunk/flags/kp.png
DELETED
Binary file
|
trunk/flags/kr.png
DELETED
Binary file
|
trunk/flags/ku.png
DELETED
Binary file
|
trunk/flags/kw.png
DELETED
Binary file
|
trunk/flags/ky.png
DELETED
Binary file
|
trunk/flags/kz.png
DELETED
Binary file
|
trunk/flags/la.png
DELETED
Binary file
|
trunk/flags/lb.png
DELETED
Binary file
|
trunk/flags/lc.png
DELETED
Binary file
|
trunk/flags/li.png
DELETED
Binary file
|
trunk/flags/lk.png
DELETED
Binary file
|
trunk/flags/lr.png
DELETED
Binary file
|
trunk/flags/ls.png
DELETED
Binary file
|
trunk/flags/lt.png
DELETED
Binary file
|
trunk/flags/lu.png
DELETED
Binary file
|
trunk/flags/lv.png
DELETED
Binary file
|
trunk/flags/ly.png
DELETED
Binary file
|
trunk/flags/ma.png
DELETED
Binary file
|
trunk/flags/mc.png
DELETED
Binary file
|
trunk/flags/md.png
DELETED
Binary file
|
trunk/flags/me.png
DELETED
Binary file
|
trunk/flags/mg.png
DELETED
Binary file
|
trunk/flags/mh.png
DELETED
Binary file
|
trunk/flags/mk.png
DELETED
Binary file
|
trunk/flags/ml.png
DELETED
Binary file
|
trunk/flags/mm.png
DELETED
Binary file
|
trunk/flags/mn.png
DELETED
Binary file
|
trunk/flags/mo.png
DELETED
Binary file
|
trunk/flags/montenegro.gif
DELETED
Binary file
|
trunk/flags/mp.png
DELETED
Binary file
|
trunk/flags/mq.png
DELETED
Binary file
|
trunk/flags/mr.png
DELETED
Binary file
|
trunk/flags/ms.png
DELETED
Binary file
|
trunk/flags/mt.png
DELETED
Binary file
|
trunk/flags/mu.png
DELETED
Binary file
|
trunk/flags/mv.png
DELETED
Binary file
|
trunk/flags/mw.png
DELETED
Binary file
|
trunk/flags/mx.png
DELETED
Binary file
|
trunk/flags/my.png
DELETED
Binary file
|
trunk/flags/my_MM.png
DELETED
Binary file
|
trunk/flags/mz.png
DELETED
Binary file
|
trunk/flags/na.png
DELETED
Binary file
|
trunk/flags/nc.png
DELETED
Binary file
|
trunk/flags/ne.png
DELETED
Binary file
|
trunk/flags/nf.png
DELETED
Binary file
|
trunk/flags/ng.png
DELETED
Binary file
|
trunk/flags/ni.alt.png
DELETED
Binary file
|
trunk/flags/ni.png
DELETED
Binary file
|
trunk/flags/nl.png
DELETED
Binary file
|
trunk/flags/no.png
DELETED
Binary file
|
trunk/flags/np.png
DELETED
Binary file
|
trunk/flags/nr.png
DELETED
Binary file
|
trunk/flags/nu.png
DELETED
Binary file
|
trunk/flags/nz.png
DELETED
Binary file
|
trunk/flags/om.png
DELETED
Binary file
|
trunk/flags/pa.png
DELETED
Binary file
|
trunk/flags/pe.png
DELETED
Binary file
|
trunk/flags/pf.alt.png
DELETED
Binary file
|
trunk/flags/pf.png
DELETED
Binary file
|
trunk/flags/pg.png
DELETED
Binary file
|
trunk/flags/ph.png
DELETED
Binary file
|
trunk/flags/pk.png
DELETED
Binary file
|
trunk/flags/pl.png
DELETED
Binary file
|
trunk/flags/pm.png
DELETED
Binary file
|
trunk/flags/pn.png
DELETED
Binary file
|
trunk/flags/pr.png
DELETED
Binary file
|
trunk/flags/ps.png
DELETED
Binary file
|
trunk/flags/pt.png
DELETED
Binary file
|
trunk/flags/purple.globe.png
DELETED
Binary file
|
trunk/flags/pw.png
DELETED
Binary file
|
trunk/flags/py.png
DELETED
Binary file
|
trunk/flags/qa.png
DELETED
Binary file
|
trunk/flags/re.png
DELETED
Binary file
|
trunk/flags/ro.png
DELETED
Binary file
|
trunk/flags/rs.png
DELETED
Binary file
|
trunk/flags/ru.png
DELETED
Binary file
|
trunk/flags/rw.png
DELETED
Binary file
|
trunk/flags/sa.png
DELETED
Binary file
|
trunk/flags/sb.png
DELETED
Binary file
|
trunk/flags/sc.png
DELETED
Binary file
|
trunk/flags/sd.png
DELETED
Binary file
|
trunk/flags/se.png
DELETED
Binary file
|
trunk/flags/serbska_malka.png
DELETED
Binary file
|
trunk/flags/sg.png
DELETED
Binary file
|
trunk/flags/sh.png
DELETED
Binary file
|
trunk/flags/si.png
DELETED
Binary file
|
trunk/flags/sj.png
DELETED
Binary file
|
trunk/flags/sk.png
DELETED
Binary file
|
trunk/flags/sl.png
DELETED
Binary file
|
trunk/flags/sm.png
DELETED
Binary file
|
trunk/flags/sn.png
DELETED
Binary file
|
trunk/flags/so.png
DELETED
Binary file
|
trunk/flags/sr.png
DELETED
Binary file
|
trunk/flags/st.png
DELETED
Binary file
|
trunk/flags/sv.alt.png
DELETED
Binary file
|
trunk/flags/sv.png
DELETED
Binary file
|
trunk/flags/sy.png
DELETED
Binary file
|
trunk/flags/sz.png
DELETED
Binary file
|
trunk/flags/tc.png
DELETED
Binary file
|
trunk/flags/td.png
DELETED
Binary file
|
trunk/flags/tf.png
DELETED
Binary file
|
trunk/flags/tg.png
DELETED
Binary file
|
trunk/flags/th.png
DELETED
Binary file
|
trunk/flags/tj.png
DELETED
Binary file
|
trunk/flags/tk.png
DELETED
Binary file
|
trunk/flags/tl.png
DELETED
Binary file
|
trunk/flags/tm.png
DELETED
Binary file
|
trunk/flags/tn.png
DELETED
Binary file
|
trunk/flags/to.png
DELETED
Binary file
|
trunk/flags/tr.png
DELETED
Binary file
|
trunk/flags/tt.png
DELETED
Binary file
|
trunk/flags/tv.png
DELETED
Binary file
|
trunk/flags/tw.png
DELETED
Binary file
|
trunk/flags/tz.png
DELETED
Binary file
|
trunk/flags/ua.png
DELETED
Binary file
|
trunk/flags/ug.png
DELETED
Binary file
|
trunk/flags/uk.png
DELETED
Binary file
|
trunk/flags/um.png
DELETED
Binary file
|
trunk/flags/us-uk.png
DELETED
Binary file
|
trunk/flags/us.png
DELETED
Binary file
|
trunk/flags/uy.png
DELETED
Binary file
|
trunk/flags/uz.png
DELETED
Binary file
|
trunk/flags/va.png
DELETED
Binary file
|
trunk/flags/vc.png
DELETED
Binary file
|
trunk/flags/ve.png
DELETED
Binary file
|
trunk/flags/vg.png
DELETED
Binary file
|
trunk/flags/vi.png
DELETED
Binary file
|
trunk/flags/vn.png
DELETED
Binary file
|
trunk/flags/vu.png
DELETED
Binary file
|
trunk/flags/wf.alt.png
DELETED
Binary file
|
trunk/flags/wf.png
DELETED
Binary file
|
trunk/flags/ws.png
DELETED
Binary file
|
trunk/flags/ye.png
DELETED
Binary file
|
trunk/flags/yt.png
DELETED
Binary file
|
trunk/flags/yu.png
DELETED
Binary file
|
trunk/flags/za.png
DELETED
Binary file
|
trunk/flags/zm.png
DELETED
Binary file
|
trunk/flags/zw.png
DELETED
Binary file
|
trunk/flags/zz.png
DELETED
Binary file
|
trunk/includes/admin/central/class-wpglobus-admin-central.php
DELETED
@@ -1,172 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* File: class-wpglobus-admin-central.php
|
4 |
-
*
|
5 |
-
* @since 1.6.6
|
6 |
-
* @package WPGlobus\Admin\Central
|
7 |
-
*/
|
8 |
-
|
9 |
-
/**
|
10 |
-
* Class WPGlobus_Admin_Central.
|
11 |
-
*/
|
12 |
-
if ( ! class_exists( 'WPGlobus_Admin_Central' ) ) :
|
13 |
-
|
14 |
-
class WPGlobus_Admin_Central {
|
15 |
-
|
16 |
-
/**
|
17 |
-
* Link template.
|
18 |
-
* @var string
|
19 |
-
*/
|
20 |
-
public static $link_template;
|
21 |
-
|
22 |
-
/**
|
23 |
-
* Constructor.
|
24 |
-
*/
|
25 |
-
public static function construct() {
|
26 |
-
|
27 |
-
self::set_vars();
|
28 |
-
|
29 |
-
add_action( 'admin_menu', array( __CLASS__, 'add_menu' ), PHP_INT_MAX );
|
30 |
-
|
31 |
-
}
|
32 |
-
|
33 |
-
/**
|
34 |
-
* Set class variables.
|
35 |
-
*/
|
36 |
-
public static function set_vars() {
|
37 |
-
|
38 |
-
self::$link_template = '<a href="{{href}}" class="{{link_class}}" data-tab-id="{{tab_id}}">';
|
39 |
-
self::$link_template .= '<span class="{{span_class}}" style="vertical-align: sub;"></span>';
|
40 |
-
self::$link_template .= '{{title}}';
|
41 |
-
self::$link_template .= '</a>';
|
42 |
-
|
43 |
-
}
|
44 |
-
|
45 |
-
/**
|
46 |
-
* Add a hidden admin menu item.
|
47 |
-
* It serves as a base for several admin tabs, but currently do not have the "root" content.
|
48 |
-
*/
|
49 |
-
public static function add_menu() {
|
50 |
-
add_submenu_page(
|
51 |
-
null,
|
52 |
-
'',
|
53 |
-
'',
|
54 |
-
'administrator',
|
55 |
-
WPGlobus::PAGE_WPGLOBUS_ADMIN_CENTRAL,
|
56 |
-
array( __CLASS__, 'central_page' )
|
57 |
-
);
|
58 |
-
}
|
59 |
-
|
60 |
-
/**
|
61 |
-
* The admin central page.
|
62 |
-
*/
|
63 |
-
public static function central_page() {
|
64 |
-
|
65 |
-
/**
|
66 |
-
* Filter tabs.
|
67 |
-
* Returning array.
|
68 |
-
* @since 1.6.6
|
69 |
-
*
|
70 |
-
* @param array $tabs Array of tabs.
|
71 |
-
* @param string $link_template The link template.
|
72 |
-
*/
|
73 |
-
$tabs = apply_filters( 'wpglobus_admin_central_tabs', self::set_tabs(), self::$link_template );
|
74 |
-
|
75 |
-
WPGlobus_Admin_Page::print_header();
|
76 |
-
|
77 |
-
?>
|
78 |
-
<h2 class="nav-tab-wrapper"> <?php
|
79 |
-
foreach ( $tabs as $type=>$tab ) :
|
80 |
-
$html = str_replace( '{{link_class}}', implode( ' ', $tab['link_class'] ), $tab['link'] );
|
81 |
-
$html = str_replace( '{{span_class}}', implode( ' ', $tab['span_class'] ), $html );
|
82 |
-
$html = str_replace( '{{title}}', $tab['title'], $html );
|
83 |
-
if ( ! empty( $tab['tab_id'] ) ) {
|
84 |
-
$html = str_replace( '{{href}}', '#' . $tab['tab_id'], $html );
|
85 |
-
$html = str_replace( '{{tab_id}}', $tab['tab_id'], $html );
|
86 |
-
} elseif ( ! empty( $tab['href'] ) ) {
|
87 |
-
$html = str_replace( '{{href}}', $tab['href'], $html );
|
88 |
-
$html = str_replace( '{{tab_id}}', '', $html );
|
89 |
-
} else {
|
90 |
-
$html = str_replace( '{{href}}', '#', $html );
|
91 |
-
$html = str_replace( '{{tab_id}}', '', $html );
|
92 |
-
}
|
93 |
-
echo $html; // WPCS: XSS ok.
|
94 |
-
endforeach; ?>
|
95 |
-
</h2> <?php
|
96 |
-
|
97 |
-
/**
|
98 |
-
* Fires to render a specific tab panel.
|
99 |
-
*
|
100 |
-
* @since 1.6.6
|
101 |
-
*
|
102 |
-
* @param array $tabs Array of tabs.
|
103 |
-
*/
|
104 |
-
do_action( 'wpglobus_admin_central_panel', $tabs );
|
105 |
-
|
106 |
-
WPGlobus_Admin_Page::print_footer();
|
107 |
-
|
108 |
-
}
|
109 |
-
|
110 |
-
/**
|
111 |
-
* Add standard tabs.
|
112 |
-
* @return array
|
113 |
-
*/
|
114 |
-
protected static function set_tabs() {
|
115 |
-
|
116 |
-
$tabs = array();
|
117 |
-
|
118 |
-
/**
|
119 |
-
* WPGlobus Guide tab.
|
120 |
-
*/
|
121 |
-
$tab = array(
|
122 |
-
'title' => __( 'Guide', 'wpglobus' ),
|
123 |
-
'link_class' => array( 'nav-tab' ),
|
124 |
-
'span_class' => array( 'dashicons', 'dashicons-book-alt' ),
|
125 |
-
'link' => self::$link_template,
|
126 |
-
'href' => WPGlobus::URL_WPGLOBUS_SITE . 'quick-start/',
|
127 |
-
'tab_id' => ''
|
128 |
-
);
|
129 |
-
$tabs[ 'guide' ] = $tab;
|
130 |
-
|
131 |
-
/**
|
132 |
-
* WPGlobus Help Desk tab.
|
133 |
-
*/
|
134 |
-
$href = add_query_arg(
|
135 |
-
array(
|
136 |
-
'page' => WPGlobus::PAGE_WPGLOBUS_HELPDESK
|
137 |
-
),
|
138 |
-
admin_url( 'admin.php' )
|
139 |
-
);
|
140 |
-
|
141 |
-
$tab = array(
|
142 |
-
'title' => __( 'WPGlobus Help Desk', 'wpglobus' ),
|
143 |
-
'link_class' => array( 'nav-tab' ),
|
144 |
-
'span_class' => array( 'dashicons', 'dashicons-format-chat' ),
|
145 |
-
'link' => self::$link_template,
|
146 |
-
'href' => $href,
|
147 |
-
'tab_id' => ''
|
148 |
-
);
|
149 |
-
$tabs[ 'helpdesk' ] = $tab;
|
150 |
-
|
151 |
-
/**
|
152 |
-
* WPGlobus Add-ons tab.
|
153 |
-
*/
|
154 |
-
$href = WPGlobus_Admin_Page::url_addons();
|
155 |
-
|
156 |
-
$tab = array(
|
157 |
-
'title' => __( 'Add-ons', 'wpglobus' ),
|
158 |
-
'link_class' => array( 'nav-tab' ),
|
159 |
-
'span_class' => array( 'dashicons', 'dashicons-admin-plugins' ),
|
160 |
-
'link' => self::$link_template,
|
161 |
-
'href' => $href,
|
162 |
-
'tab_id' => ''
|
163 |
-
);
|
164 |
-
$tabs[ 'add_ons' ] = $tab;
|
165 |
-
|
166 |
-
return $tabs;
|
167 |
-
|
168 |
-
}
|
169 |
-
}
|
170 |
-
|
171 |
-
endif;
|
172 |
-
/* EOF */
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/includes/admin/class-wpglobus-about.php
DELETED
@@ -1,178 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* @package WPGlobus\Admin
|
4 |
-
*/
|
5 |
-
|
6 |
-
/**
|
7 |
-
* Class WPGlobus_About
|
8 |
-
*/
|
9 |
-
class WPGlobus_About {
|
10 |
-
|
11 |
-
/**
|
12 |
-
* For Google Analytics
|
13 |
-
*/
|
14 |
-
const QA_CAMPAIGN = '?utm_source=wpglobus-admin-about&utm_medium=link&utm_campaign=activate-plugin';
|
15 |
-
|
16 |
-
/**
|
17 |
-
* Output the about screen.
|
18 |
-
*/
|
19 |
-
public static function about_screen() {
|
20 |
-
|
21 |
-
WPGlobus_Admin_Page::print_header();
|
22 |
-
|
23 |
-
?>
|
24 |
-
<h2 class="nav-tab-wrapper">
|
25 |
-
<a href="#" class="nav-tab nav-tab-active">
|
26 |
-
<?php esc_html_e( 'Quick Start', 'wpglobus' ); ?>
|
27 |
-
</a>
|
28 |
-
<a href="<?php echo esc_url( WPGlobus_Admin_Page::url_settings() ); ?>"
|
29 |
-
class="nav-tab">
|
30 |
-
<?php WPGlobus_Admin_Page::nav_tab_icon_e( 'Settings' ); ?>
|
31 |
-
<?php esc_html_e( 'Settings' ); ?>
|
32 |
-
</a>
|
33 |
-
<a href="<?php echo esc_url( WPGlobus_Admin_Page::url_addons() ); ?>"
|
34 |
-
class="nav-tab">
|
35 |
-
<?php WPGlobus_Admin_Page::nav_tab_icon_e( 'Add-ons' ); ?>
|
36 |
-
<?php esc_html_e( 'Add-ons', 'wpglobus' ); ?>
|
37 |
-
</a>
|
38 |
-
<a href="<?php echo esc_url( WPGlobus_Utils::url_wpglobus_site() . 'quick-start/' . self::QA_CAMPAIGN ); ?>"
|
39 |
-
target="_blank"
|
40 |
-
class="nav-tab">
|
41 |
-
<?php WPGlobus_Admin_Page::nav_tab_icon_e( 'Guide' ); ?>
|
42 |
-
<?php esc_html_e( 'Guide', 'wpglobus' ); ?>
|
43 |
-
</a>
|
44 |
-
<a href="<?php echo esc_url( WPGlobus_Utils::url_wpglobus_site() . 'faq/' . self::QA_CAMPAIGN ); ?>"
|
45 |
-
target="_blank"
|
46 |
-
class="nav-tab">
|
47 |
-
<?php WPGlobus_Admin_Page::nav_tab_icon_e( 'FAQ' ); ?>
|
48 |
-
<?php esc_html_e( 'FAQ', 'wpglobus' ); ?>
|
49 |
-
</a>
|
50 |
-
<a href="<?php echo esc_url( WPGlobus_Admin_Page::url_helpdesk() ); ?>"
|
51 |
-
class="nav-tab">
|
52 |
-
<?php WPGlobus_Admin_Page::nav_tab_icon_e( 'Helpdesk' ); ?>
|
53 |
-
<?php echo esc_html( WPGlobus_Admin_HelpDesk::$page_title ); ?>
|
54 |
-
</a>
|
55 |
-
</h2>
|
56 |
-
|
57 |
-
<?php if ( ! extension_loaded( 'mbstring' ) ) : ?>
|
58 |
-
<div style="background: #fff;border-left: 4px solid #dc3232;margin: 15px 15px 2px;padding: 1px 12px;">
|
59 |
-
<h4><?php esc_html_e( 'Attention: the Multibyte String PHP extension (`mbstring`) is not loaded!', 'wpglobus' ); ?></h4>
|
60 |
-
<p><?php esc_html_e( 'The mbstring extension is required for the full UTF-8 compatibility and better performance. Without it, some parts of WordPress and WPGlobus may function incorrectly. Please contact your hosting company or systems administrator.', 'wpglobus' ); ?></p>
|
61 |
-
</div>
|
62 |
-
<?php endif; ?>
|
63 |
-
|
64 |
-
<div class="feature-main feature-section col two-col">
|
65 |
-
<div class="col">
|
66 |
-
<?php self::easy_1_2_3(); ?>
|
67 |
-
</div>
|
68 |
-
<div class="col last-feature">
|
69 |
-
<?php self::translation_help(); ?>
|
70 |
-
</div>
|
71 |
-
</div>
|
72 |
-
|
73 |
-
<div class="feature-main feature-section col two-col">
|
74 |
-
<div class="col">
|
75 |
-
<?php self::important_notes(); ?>
|
76 |
-
</div>
|
77 |
-
<div class="col last-feature">
|
78 |
-
<?php self::links(); ?>
|
79 |
-
</div>
|
80 |
-
</div>
|
81 |
-
|
82 |
-
<hr />
|
83 |
-
|
84 |
-
<div class="return-to-dashboard">
|
85 |
-
<a class="button button-primary"
|
86 |
-
href="<?php echo esc_url( WPGlobus_Admin_Page::url_settings() ); ?>">
|
87 |
-
<?php esc_html_e( 'Go to WPGlobus Settings', 'wpglobus' ); ?>
|
88 |
-
</a>
|
89 |
-
</div>
|
90 |
-
|
91 |
-
<?php
|
92 |
-
WPGlobus_Admin_Page::print_footer();
|
93 |
-
}
|
94 |
-
|
95 |
-
protected static function easy_1_2_3() {
|
96 |
-
?>
|
97 |
-
<h4 class="dashicons-before dashicons-admin-settings bar">
|
98 |
-
<?php esc_html_e( 'Easy as 1-2-3:', 'wpglobus' ); ?>
|
99 |
-
</h4>
|
100 |
-
<ul class="wpglobus-checkmarks">
|
101 |
-
<li><?php esc_html_e( 'Go to WPGlobus admin menu and choose the countries / languages;', 'wpglobus' ); ?></li>
|
102 |
-
<li><?php esc_html_e( 'Enter the translations to the posts, pages, categories, tags and menus using a clean and simple interface.', 'wpglobus' ); ?></li>
|
103 |
-
<li><?php esc_html_e( 'Switch languages at the front-end using a drop-down menu with language names and country flags.', 'wpglobus' ); ?></li>
|
104 |
-
</ul>
|
105 |
-
<?php
|
106 |
-
}
|
107 |
-
|
108 |
-
protected static function links() {
|
109 |
-
?>
|
110 |
-
<h4 class="dashicons-before dashicons-admin-links bar">
|
111 |
-
<?php esc_html_e( 'Links:', 'wpglobus' ); ?>
|
112 |
-
</h4>
|
113 |
-
<ul>
|
114 |
-
<li>• <a href="<?php echo esc_url( WPGlobus_Utils::url_wpglobus_site() . self::QA_CAMPAIGN ); ?>"
|
115 |
-
target="_blank">WPGlobus.com</a></li>
|
116 |
-
<li>• <a href="<?php echo esc_url( WPGlobus_Utils::url_wpglobus_site() . 'quick-start/' . self::QA_CAMPAIGN ); ?>"
|
117 |
-
target="_blank"><?php esc_html_e( 'Guide', 'wpglobus' ); ?></a></li>
|
118 |
-
<li>• <a href="<?php echo esc_url( WPGlobus_Utils::url_wpglobus_site() . 'faq/' . self::QA_CAMPAIGN ); ?>"
|
119 |
-
target="_blank"><?php esc_html_e( 'FAQs', 'wpglobus' ); ?></a></li>
|
120 |
-
<li>• <a href="<?php echo esc_url( WPGlobus_Admin_Page::url_helpdesk() ); ?>"
|
121 |
-
target="_blank"><?php esc_html_e( 'Contact Us', 'wpglobus' ); ?></a></li>
|
122 |
-
<li>• <a href="https://wordpress.org/support/plugin/wpglobus/reviews/?filter=5"
|
123 |
-
target="_blank"><?php esc_html_e( 'Please give us 5 stars!', 'wpglobus' ); ?></a>
|
124 |
-
<span class="wpglobus-stars">☆☆☆☆☆</span></li>
|
125 |
-
|
126 |
-
</ul>
|
127 |
-
<?php
|
128 |
-
}
|
129 |
-
|
130 |
-
protected static function translation_help() {
|
131 |
-
?>
|
132 |
-
<h4 class="dashicons-before dashicons-translation highlight">
|
133 |
-
<?php esc_html_e( 'WPGlobus does not translate texts automatically!', 'wpglobus' ); ?>
|
134 |
-
</h4>
|
135 |
-
<p>
|
136 |
-
<?php esc_html_e( 'There are many translation companies and individual translators who can help you write and proofread the texts.', 'wpglobus' ); ?>
|
137 |
-
<?php esc_html_e( 'When you choose a translator, please look at their native language, country of residence, specialization and knowledge of WordPress.', 'wpglobus' ); ?>
|
138 |
-
</p>
|
139 |
-
<p>
|
140 |
-
<?php
|
141 |
-
printf(
|
142 |
-
// translators: %s are used to insert HTML link. Keep them in place.
|
143 |
-
esc_html__( 'We are planning to maintain a %s list of translators %s on the WPGlobus website. This is not an endorsement, just a courtesy. Please contact them directly and let us know how did it work for you!', 'wpglobus' ),
|
144 |
-
'<a href="' . esc_url( WPGlobus_Utils::url_wpglobus_site() . 'translator/' . self::QA_CAMPAIGN ) . '">',
|
145 |
-
'</a>'
|
146 |
-
); ?>
|
147 |
-
</p>
|
148 |
-
<?php
|
149 |
-
}
|
150 |
-
|
151 |
-
protected static function important_notes() {
|
152 |
-
?>
|
153 |
-
<h4 class="dashicons-before dashicons-info highlight">
|
154 |
-
<?php esc_html_e( 'Important notes:', 'wpglobus' ); ?>
|
155 |
-
</h4>
|
156 |
-
<ul class="wpglobus-important">
|
157 |
-
|
158 |
-
<li>
|
159 |
-
<?php _e( 'WPGlobus only supports the localization URLs in the form of <code>example.com/xx/page/</code>. We do not plan to support subdomains <code>xx.example.com</code> and language queries <code>example.com?lang=xx</code>.', 'wpglobus' ); // WPCS: XSS ok. ?>
|
160 |
-
</li>
|
161 |
-
<li>
|
162 |
-
<?php _e( 'Some themes and plugins are <strong>not multilingual-ready</strong>.', 'wpglobus' ); // WPCS: XSS ok. ?>
|
163 |
-
<?php esc_html_e( 'They might display some texts with no translation, or with all languages mixed together.', 'wpglobus' ); ?>
|
164 |
-
<?php
|
165 |
-
printf(
|
166 |
-
// translators: %s are used to insert HTML link. Keep them in place.
|
167 |
-
esc_html__( 'Please contact the theme / plugin author. If they are unable to assist, consider %s hiring the WPGlobus Team %s to write a custom code for you.', 'wpglobus' ),
|
168 |
-
'<a href="' . esc_url( WPGlobus_Utils::url_wpglobus_site() . 'professional-support/' . self::QA_CAMPAIGN ) . '">',
|
169 |
-
'</a>'
|
170 |
-
); ?>
|
171 |
-
</li>
|
172 |
-
|
173 |
-
</ul>
|
174 |
-
<?php
|
175 |
-
}
|
176 |
-
} //class
|
177 |
-
|
178 |
-
/*EOF*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/includes/admin/class-wpglobus-admin-bar-menu.php
DELETED
@@ -1,213 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Show WPGlobus menu in admin bar.
|
4 |
-
*
|
5 |
-
* @since 2.2.7
|
6 |
-
* @package WPGlobus\Admin
|
7 |
-
*/
|
8 |
-
|
9 |
-
if ( ! class_exists( 'WPGlobus_Admin_Bar_Menu' ) ) :
|
10 |
-
|
11 |
-
/**
|
12 |
-
* Class WPGlobus_Admin_Bar_Menu.
|
13 |
-
*/
|
14 |
-
class WPGlobus_Admin_Bar_Menu {
|
15 |
-
|
16 |
-
/**
|
17 |
-
* Available languages.
|
18 |
-
*
|
19 |
-
* @var array
|
20 |
-
*/
|
21 |
-
protected static $available_languages = array();
|
22 |
-
|
23 |
-
/**
|
24 |
-
* @since 2.2.8
|
25 |
-
*/
|
26 |
-
protected static $run_script = true;
|
27 |
-
|
28 |
-
/**
|
29 |
-
* Static constructor.
|
30 |
-
*
|
31 |
-
* @param WP_Admin_Bar $wp_admin_bar Admin bar.
|
32 |
-
*/
|
33 |
-
public static function construct( $wp_admin_bar ) {
|
34 |
-
|
35 |
-
$user_id = get_current_user_id();
|
36 |
-
|
37 |
-
if ( ! $user_id ) {
|
38 |
-
return;
|
39 |
-
}
|
40 |
-
|
41 |
-
self::$available_languages = get_available_languages();
|
42 |
-
|
43 |
-
$user_locale = get_user_meta( $user_id, 'locale', true );
|
44 |
-
|
45 |
-
add_action( 'admin_footer', array( __CLASS__, 'on__admin_footer' ), 1000 );
|
46 |
-
|
47 |
-
if ( empty( $user_locale ) ) {
|
48 |
-
self::add_language_menu( $wp_admin_bar );
|
49 |
-
} else {
|
50 |
-
if ( ! self::add_info_menu( $wp_admin_bar, $user_locale ) ) {
|
51 |
-
self::$run_script = false;
|
52 |
-
}
|
53 |
-
}
|
54 |
-
|
55 |
-
}
|
56 |
-
|
57 |
-
/**
|
58 |
-
* @since 2.2.8
|
59 |
-
*/
|
60 |
-
public static function on__admin_footer() {
|
61 |
-
|
62 |
-
if ( ! self::$run_script ) {
|
63 |
-
return;
|
64 |
-
}
|
65 |
-
|
66 |
-
?>
|
67 |
-
<!--suppress AnonymousFunctionJS, JSUnusedLocalSymbols -->
|
68 |
-
<script type="text/javascript">
|
69 |
-
//<![CDATA[
|
70 |
-
jQuery(document).ready(function ($) {
|
71 |
-
wpglobus_select_lang = function (locale) {
|
72 |
-
$.post(ajaxurl, {
|
73 |
-
action: 'WPGlobus_process_ajax',
|
74 |
-
order: {action: 'wpglobus_select_lang', locale: locale}
|
75 |
-
}, function (d) {
|
76 |
-
})
|
77 |
-
.done(function () {
|
78 |
-
window.location.reload();
|
79 |
-
});
|
80 |
-
}
|
81 |
-
$('#wpglobus-default-locale').on('click', function (e) {
|
82 |
-
wpglobus_select_lang('<?php echo esc_js( WPGlobus::Config()->locale[ WPGlobus::Config()->language ] ); ?>');
|
83 |
-
});
|
84 |
-
|
85 |
-
});
|
86 |
-
//]]>
|
87 |
-
</script>
|
88 |
-
<?php
|
89 |
-
}
|
90 |
-
|
91 |
-
/**
|
92 |
-
* Language menu with link to `profile.php` page.
|
93 |
-
*
|
94 |
-
* @param WP_Admin_Bar $wp_admin_bar Admin bar.
|
95 |
-
* @param string[] $user_locale User locale.
|
96 |
-
*/
|
97 |
-
public static function add_info_menu( $wp_admin_bar, $user_locale ) {
|
98 |
-
|
99 |
-
$user_profile_language = array_search( $user_locale, WPGlobus::Config()->locale, true );
|
100 |
-
|
101 |
-
if ( ! $user_profile_language ) {
|
102 |
-
return false;
|
103 |
-
}
|
104 |
-
|
105 |
-
if ( empty( WPGlobus::Config()->language_name[ $user_profile_language ] ) ) {
|
106 |
-
return false;
|
107 |
-
}
|
108 |
-
|
109 |
-
$img = '';
|
110 |
-
if ( ! empty( WPGlobus::Config()->flag[ $user_profile_language ] ) ) {
|
111 |
-
$img = '<span class="ab-icon"><img src="' . WPGlobus::Config()->flags_url . WPGlobus::Config()->flag[ $user_profile_language ] . '" alt=""/></span>';
|
112 |
-
}
|
113 |
-
|
114 |
-
$wp_admin_bar->add_menu(
|
115 |
-
array(
|
116 |
-
'id' => 'wpglobus-language-select',
|
117 |
-
'parent' => 'top-secondary',
|
118 |
-
'title' => $img . '<span class="ab-label">' .
|
119 |
-
WPGlobus::Config()->language_name[ $user_profile_language ] .
|
120 |
-
'</span>',
|
121 |
-
)
|
122 |
-
);
|
123 |
-
|
124 |
-
$title = esc_html__( 'Language was set on your profile page', 'wpglobus' );
|
125 |
-
$wp_admin_bar->add_menu(
|
126 |
-
array(
|
127 |
-
'parent' => 'wpglobus-language-select',
|
128 |
-
'id' => 'wpglobus-add-languages',
|
129 |
-
'title' => $title,
|
130 |
-
'href' => admin_url( 'profile.php' ),
|
131 |
-
'meta' => array(
|
132 |
-
'tabindex' => -1,
|
133 |
-
),
|
134 |
-
)
|
135 |
-
);
|
136 |
-
|
137 |
-
return true;
|
138 |
-
}
|
139 |
-
|
140 |
-
/**
|
141 |
-
* Language menu in admin bar.
|
142 |
-
*
|
143 |
-
* @param WP_Admin_Bar $wp_admin_bar Admin bar.
|
144 |
-
*/
|
145 |
-
public static function add_language_menu( $wp_admin_bar ) {
|
146 |
-
|
147 |
-
$available_languages = self::$available_languages;
|
148 |
-
|
149 |
-
$wp_admin_bar->add_menu(
|
150 |
-
array(
|
151 |
-
'id' => 'wpglobus-language-select',
|
152 |
-
'parent' => 'top-secondary',
|
153 |
-
'title' => '<span class="ab-icon">' .
|
154 |
-
'<img alt="" src="' . WPGlobus::Config()->flags_url .
|
155 |
-
WPGlobus::Config()->flag[ WPGlobus::Config()->language ] . '"/>' .
|
156 |
-
'</span><span class="ab-label">' .
|
157 |
-
WPGlobus::Config()->language_name[ WPGlobus::Config()->language ] .
|
158 |
-
'</span>',
|
159 |
-
)
|
160 |
-
);
|
161 |
-
|
162 |
-
$add_more_languages = array();
|
163 |
-
foreach ( WPGlobus::Config()->enabled_languages as $language ) :
|
164 |
-
|
165 |
-
if ( WPGlobus::Config()->language === $language ) {
|
166 |
-
continue;
|
167 |
-
}
|
168 |
-
|
169 |
-
$locale = WPGlobus::Config()->locale[ $language ];
|
170 |
-
|
171 |
-
if ( 'en_US' !== $locale ) {
|
172 |
-
if ( ! in_array( $locale, $available_languages, true ) ) {
|
173 |
-
$add_more_languages[] = WPGlobus::Config()->language_name[ $language ];
|
174 |
-
continue;
|
175 |
-
}
|
176 |
-
}
|
177 |
-
|
178 |
-
$wp_admin_bar->add_menu(
|
179 |
-
array(
|
180 |
-
'parent' => 'wpglobus-language-select',
|
181 |
-
'id' => 'wpglobus-' . $language,
|
182 |
-
'title' => '<span><img alt="" src="' . WPGlobus::Config()->flags_url . WPGlobus::Config()->flag[ $language ] . '" /></span> ' . WPGlobus::Config()->language_name[ $language ],
|
183 |
-
'href' => admin_url( 'options-general.php' ),
|
184 |
-
'meta' => array(
|
185 |
-
'tabindex' => -1,
|
186 |
-
'onclick' => 'wpglobus_select_lang("' . $locale . '");return false;',
|
187 |
-
),
|
188 |
-
)
|
189 |
-
);
|
190 |
-
|
191 |
-
endforeach;
|
192 |
-
|
193 |
-
if ( ! empty( $add_more_languages ) ) {
|
194 |
-
$title = esc_html__( 'Add', 'wpglobus' ) . ' (' . implode( ', ', $add_more_languages ) . ')';
|
195 |
-
$wp_admin_bar->add_menu(
|
196 |
-
array(
|
197 |
-
'parent' => 'wpglobus-language-select',
|
198 |
-
'id' => 'wpglobus-add-languages',
|
199 |
-
'title' => $title,
|
200 |
-
'href' => admin_url( 'options-general.php' ),
|
201 |
-
'meta' => array(
|
202 |
-
'tabindex' => -1,
|
203 |
-
),
|
204 |
-
)
|
205 |
-
);
|
206 |
-
}
|
207 |
-
|
208 |
-
return;
|
209 |
-
|
210 |
-
}
|
211 |
-
}
|
212 |
-
|
213 |
-
endif;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/includes/admin/class-wpglobus-admin-menu.php
DELETED
@@ -1,34 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Show a sidebar menu item.
|
4 |
-
*
|
5 |
-
* @since 1.7.8
|
6 |
-
*/
|
7 |
-
|
8 |
-
/**
|
9 |
-
* Class WPGlobus_Admin_Menu
|
10 |
-
*/
|
11 |
-
class WPGlobus_Admin_Menu {
|
12 |
-
|
13 |
-
/**
|
14 |
-
* Static constructor.
|
15 |
-
*/
|
16 |
-
public static function construct() {
|
17 |
-
add_action( 'admin_menu', array( __CLASS__, 'add_menu' ), PHP_INT_MAX );
|
18 |
-
}
|
19 |
-
|
20 |
-
public static function add_menu() {
|
21 |
-
$icon_class = 'dashicons dashicons-before dashicons-admin-plugins';
|
22 |
-
$menu_title = __( 'Add-ons', 'wpglobus' );
|
23 |
-
add_submenu_page(
|
24 |
-
WPGlobus::OPTIONS_PAGE_SLUG,
|
25 |
-
$menu_title,
|
26 |
-
'<span class="' . esc_attr( $icon_class )
|
27 |
-
. '" style="vertical-align:middle"></span> '
|
28 |
-
. $menu_title,
|
29 |
-
'administrator',
|
30 |
-
WPGlobus_Admin_Page::url_addons(true)
|
31 |
-
);
|
32 |
-
|
33 |
-
}
|
34 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/includes/admin/class-wpglobus-admin-page.php
DELETED
@@ -1,208 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* File: class-wpglobus-admin-page.php
|
4 |
-
*
|
5 |
-
* @package WPGlobus\Admin
|
6 |
-
*/
|
7 |
-
|
8 |
-
/**
|
9 |
-
* Helpers for building admin pages.
|
10 |
-
*/
|
11 |
-
class WPGlobus_Admin_Page {
|
12 |
-
|
13 |
-
/**
|
14 |
-
* Print page header.
|
15 |
-
*/
|
16 |
-
public static function print_header() {
|
17 |
-
$url_wpglobus_logo = WPGlobus::internal_images_url() . '/wpglobus-logo-180x180.png';
|
18 |
-
?>
|
19 |
-
<style>
|
20 |
-
.wp-badge.wpglobus-badge {
|
21 |
-
background: #ffffff url(<?php echo esc_url( $url_wpglobus_logo ); ?>) no-repeat;
|
22 |
-
background-size: contain;
|
23 |
-
}
|
24 |
-
</style>
|
25 |
-
|
26 |
-
<?php echo '<div class="wrap about-wrap wpglobus-about-wrap">'; ?>
|
27 |
-
|
28 |
-
<h1 class="wpglobus"><span class="wpglobus-wp">WP</span>Globus
|
29 |
-
<span class="wpglobus-version"><?php echo esc_html( WPGLOBUS_VERSION ); ?></span>
|
30 |
-
</h1>
|
31 |
-
|
32 |
-
<div class="wpglobus-motto"><?php esc_html_e( 'Multilingual Everything!', 'wpglobus' ); ?></div>
|
33 |
-
<div class="about-text">
|
34 |
-
<?php esc_html_e( 'WPGlobus is a family of WordPress plugins assisting you in making multilingual WordPress blogs and sites.', 'wpglobus' ); ?>
|
35 |
-
</div>
|
36 |
-
|
37 |
-
<div class="wp-badge wpglobus-badge"></div>
|
38 |
-
<?php
|
39 |
-
}
|
40 |
-
|
41 |
-
/**
|
42 |
-
* Print page header.
|
43 |
-
*/
|
44 |
-
public static function print_footer() {
|
45 |
-
echo '</div>';
|
46 |
-
}
|
47 |
-
|
48 |
-
/**
|
49 |
-
* URL of the WPGlobus Add-ons page.
|
50 |
-
*
|
51 |
-
* @param bool $relative Set it to true to get the URL relative to the admin.
|
52 |
-
*
|
53 |
-
* @return string
|
54 |
-
*/
|
55 |
-
public static function url_addons( $relative = false ) {
|
56 |
-
|
57 |
-
$url = add_query_arg(
|
58 |
-
array(
|
59 |
-
'tab' => 'search',
|
60 |
-
's' => 'WPGlobus',
|
61 |
-
'source' => 'WPGlobus',
|
62 |
-
),
|
63 |
-
self_admin_url( 'plugin-install.php' )
|
64 |
-
);
|
65 |
-
|
66 |
-
if ( $relative ) {
|
67 |
-
$url = str_replace( self_admin_url(), '', $url );
|
68 |
-
}
|
69 |
-
|
70 |
-
return $url;
|
71 |
-
|
72 |
-
}
|
73 |
-
|
74 |
-
/**
|
75 |
-
* URL of the WPGlobus Settings page.
|
76 |
-
*
|
77 |
-
* @since 2.4.8 Added $tab parameter.
|
78 |
-
*
|
79 |
-
* @return string
|
80 |
-
*/
|
81 |
-
public static function url_settings( $tab = '' ) {
|
82 |
-
if ( empty($tab) ) {
|
83 |
-
return add_query_arg( 'page', WPGlobus::OPTIONS_PAGE_SLUG, admin_url( 'admin.php' ) );
|
84 |
-
}
|
85 |
-
return add_query_arg( array('page'=>WPGlobus::OPTIONS_PAGE_SLUG, 'tab'=>$tab), admin_url( 'admin.php' ) );
|
86 |
-
}
|
87 |
-
|
88 |
-
/**
|
89 |
-
* URL of the WPGlobus Helpdesk page.
|
90 |
-
*
|
91 |
-
* @return string
|
92 |
-
* @since 1.9.10
|
93 |
-
*/
|
94 |
-
public static function url_helpdesk() {
|
95 |
-
return add_query_arg( 'page', WPGlobus::PAGE_WPGLOBUS_HELPDESK, admin_url( 'admin.php' ) );
|
96 |
-
}
|
97 |
-
|
98 |
-
/**
|
99 |
-
* URL of the Clean-up Tool page.
|
100 |
-
*
|
101 |
-
* @return string
|
102 |
-
* @since 1.9.10
|
103 |
-
*/
|
104 |
-
public static function url_clean_up_tool() {
|
105 |
-
return add_query_arg( 'page', WPGlobus::PAGE_WPGLOBUS_CLEAN, admin_url( 'admin.php' ) );
|
106 |
-
}
|
107 |
-
|
108 |
-
/**
|
109 |
-
* URL of the About page.
|
110 |
-
*
|
111 |
-
* @return string
|
112 |
-
* @since 1.9.10
|
113 |
-
*/
|
114 |
-
public static function url_about() {
|
115 |
-
return add_query_arg( 'page', WPGlobus::PAGE_WPGLOBUS_ABOUT, admin_url( 'admin.php' ) );
|
116 |
-
}
|
117 |
-
|
118 |
-
/**
|
119 |
-
* URL of the Admin Central page.
|
120 |
-
*
|
121 |
-
* @param string $central_tab_id Tab on the page.
|
122 |
-
*
|
123 |
-
* @return string
|
124 |
-
* @since 1.9.10
|
125 |
-
*/
|
126 |
-
public static function url_admin_central( $central_tab_id = '' ) {
|
127 |
-
return add_query_arg( 'page', WPGlobus::PAGE_WPGLOBUS_ADMIN_CENTRAL . '#' . $central_tab_id, admin_url( 'admin.php' ) );
|
128 |
-
}
|
129 |
-
|
130 |
-
/**
|
131 |
-
* URL of the Options Panel.
|
132 |
-
*
|
133 |
-
* @param string $tab Tab on the page.
|
134 |
-
*
|
135 |
-
* @return string
|
136 |
-
* @since 1.9.10
|
137 |
-
*/
|
138 |
-
public static function url_options_panel( $tab = WPGlobus_Options::DEFAULT_TAB ) {
|
139 |
-
|
140 |
-
return add_query_arg( array(
|
141 |
-
'page' => WPGlobus::OPTIONS_PAGE_SLUG,
|
142 |
-
'tab' => $tab,
|
143 |
-
), admin_url( 'admin.php' ) );
|
144 |
-
}
|
145 |
-
|
146 |
-
/**
|
147 |
-
* URL of the WPGlobus-Plus Panel.
|
148 |
-
*
|
149 |
-
* @param string $tab Tab on the page.
|
150 |
-
*
|
151 |
-
* @return string
|
152 |
-
* @since 1.9.10
|
153 |
-
*/
|
154 |
-
public static function url_wpglobus_plus_panel( $tab = 'modules' ) {
|
155 |
-
if ( class_exists( 'WPGlobusPlus', false ) ) {
|
156 |
-
return add_query_arg( array(
|
157 |
-
'page' => WPGlobusPlus::WPGLOBUS_PLUS_OPTIONS_PAGE,
|
158 |
-
'tab' => $tab,
|
159 |
-
), admin_url( 'admin.php' ) );
|
160 |
-
} else {
|
161 |
-
return admin_url();
|
162 |
-
}
|
163 |
-
}
|
164 |
-
|
165 |
-
/**
|
166 |
-
* Icon for navigation tab item.
|
167 |
-
*
|
168 |
-
* @param string $icon_class A Dashicon CSS class or our internal alias.
|
169 |
-
* @param boolean $add_dashicons_class Add "dashicons" class before icon class.
|
170 |
-
*
|
171 |
-
* @link https://developer.wordpress.org/resource/dashicons/
|
172 |
-
* @return string
|
173 |
-
*/
|
174 |
-
public static function nav_tab_icon( $icon_class, $add_dashicons_class = true ) {
|
175 |
-
|
176 |
-
static $aliases = array(
|
177 |
-
'faq' => 'dashicons-editor-help',
|
178 |
-
'settings' => 'dashicons-admin-settings',
|
179 |
-
'add-ons' => 'dashicons-admin-plugins',
|
180 |
-
'guide' => 'dashicons-book-alt',
|
181 |
-
'helpdesk' => 'dashicons-format-chat',
|
182 |
-
'globe' => 'dashicons-admin-site',
|
183 |
-
);
|
184 |
-
|
185 |
-
$icon_class = strtolower( $icon_class );
|
186 |
-
|
187 |
-
if ( isset( $aliases[ $icon_class ] ) ) {
|
188 |
-
// An alias passed.
|
189 |
-
$icon_class = $aliases[ $icon_class ];
|
190 |
-
}
|
191 |
-
|
192 |
-
if ( $add_dashicons_class ) {
|
193 |
-
$icon_class = 'dashicons dashicons-before ' . $icon_class;
|
194 |
-
}
|
195 |
-
|
196 |
-
return $icon_class;
|
197 |
-
|
198 |
-
}
|
199 |
-
|
200 |
-
/**
|
201 |
-
* Print icon for navigation tab item.
|
202 |
-
*
|
203 |
-
* @param string $icon_class A Dashicon CSS class or our internal alias.
|
204 |
-
*/
|
205 |
-
public static function nav_tab_icon_e( $icon_class ) {
|
206 |
-
echo '<span class="' . esc_attr( self::nav_tab_icon( $icon_class ) ) . '"></span>';
|
207 |
-
}
|
208 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/includes/admin/class-wpglobus-admin-post.php
DELETED
@@ -1,57 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* File: class-wpglobus-admin-post.php
|
4 |
-
* Class for post.php page.
|
5 |
-
*
|
6 |
-
* @package WPGlobus\Admin
|
7 |
-
* @author Alex Gor(alexgff)
|
8 |
-
* @since 2.4
|
9 |
-
*/
|
10 |
-
if ( ! class_exists( 'WPGlobus_Admin_Post' ) ) :
|
11 |
-
|
12 |
-
/**
|
13 |
-
* Class WPGlobus_Admin_Menu.
|
14 |
-
*/
|
15 |
-
class WPGlobus_Admin_Post {
|
16 |
-
|
17 |
-
/**
|
18 |
-
* Static constructor.
|
19 |
-
*/
|
20 |
-
public static function construct() {
|
21 |
-
|
22 |
-
if ( ! WPGlobus_WP::is_pagenow('post.php') ) {
|
23 |
-
return;
|
24 |
-
}
|
25 |
-
|
26 |
-
if ( 'off' == WPGlobus::Config()->toggle ) {
|
27 |
-
return;
|
28 |
-
}
|
29 |
-
|
30 |
-
add_filter( 'preview_post_link', array( __CLASS__, 'filter__preview_post_link' ), 5, 2 );
|
31 |
-
}
|
32 |
-
|
33 |
-
/**
|
34 |
-
* Filters the URL used for a post preview in builder mode.
|
35 |
-
* @see wp-includes/link-template.php
|
36 |
-
*
|
37 |
-
* @param string $preview_link URL used for the post preview.
|
38 |
-
* @param WP_Post $post Post object.
|
39 |
-
*/
|
40 |
-
public static function filter__preview_post_link( $preview_link, $post ) {
|
41 |
-
|
42 |
-
if ( ! WPGlobus::Config()->builder->is_builder_page() ) {
|
43 |
-
return $preview_link;
|
44 |
-
}
|
45 |
-
|
46 |
-
if ( WPGlobus::Config()->builder->is_default_language() ) {
|
47 |
-
return $preview_link;
|
48 |
-
|
49 |
-
}
|
50 |
-
|
51 |
-
return WPGlobus_Utils::localize_url( $preview_link, WPGlobus::Config()->builder->get_language() );
|
52 |
-
}
|
53 |
-
}
|
54 |
-
|
55 |
-
endif;
|
56 |
-
|
57 |
-
# --- EOF
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/includes/admin/class-wpglobus-clean.php
DELETED
@@ -1,743 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* @package WPGlobus/Admin
|
4 |
-
* @since 1.4.3
|
5 |
-
*/
|
6 |
-
|
7 |
-
if ( ! class_exists( 'WPGlobus_Clean' ) ) :
|
8 |
-
|
9 |
-
/**
|
10 |
-
* Class WPGlobus_Clean
|
11 |
-
*/
|
12 |
-
class WPGlobus_Clean {
|
13 |
-
|
14 |
-
const LOG_BASENAME = 'wpglobus-clean';
|
15 |
-
|
16 |
-
protected static $tables = array();
|
17 |
-
|
18 |
-
protected static $log_file = '';
|
19 |
-
|
20 |
-
/**
|
21 |
-
* Controller
|
22 |
-
*/
|
23 |
-
public static function controller() {
|
24 |
-
|
25 |
-
self::_set_log_file();
|
26 |
-
|
27 |
-
self::get_table();
|
28 |
-
|
29 |
-
self::screen();
|
30 |
-
|
31 |
-
add_action( 'admin_footer', array(
|
32 |
-
'WPGlobus_Clean',
|
33 |
-
'action__admin_print_scripts'
|
34 |
-
),
|
35 |
-
99
|
36 |
-
);
|
37 |
-
|
38 |
-
}
|
39 |
-
|
40 |
-
/**
|
41 |
-
* Initialize the class variable `log_file`.
|
42 |
-
* Note: 'wp-content' can be set to a different path, so we are using the standard WP method.
|
43 |
-
* @todo Check if the folder exists and file is writeable.
|
44 |
-
*/
|
45 |
-
protected static function _set_log_file() {
|
46 |
-
$upload_dir = wp_upload_dir();
|
47 |
-
$wpglobus_logs_dir = $upload_dir['basedir'] . '/' . 'wpglobus-logs';
|
48 |
-
|
49 |
-
wp_mkdir_p( $wpglobus_logs_dir );
|
50 |
-
// Protect the folder from reading via URL
|
51 |
-
if ( ! file_exists( $wpglobus_logs_dir . '/.htaccess' ) ) {
|
52 |
-
file_put_contents( $wpglobus_logs_dir . '/.htaccess', 'deny from all' );
|
53 |
-
}
|
54 |
-
if ( ! file_exists( $wpglobus_logs_dir . '/index.php' ) ) {
|
55 |
-
file_put_contents( $wpglobus_logs_dir . '/index.php', '' );
|
56 |
-
}
|
57 |
-
|
58 |
-
self::$log_file = $wpglobus_logs_dir . '/' . self::LOG_BASENAME . '.log';
|
59 |
-
}
|
60 |
-
|
61 |
-
/**
|
62 |
-
* Get table
|
63 |
-
*
|
64 |
-
* @param string $table Table name to set data.
|
65 |
-
*
|
66 |
-
* @return void
|
67 |
-
*/
|
68 |
-
public static function get_table( $table = '' ) {
|
69 |
-
|
70 |
-
$get_all = false;
|
71 |
-
if ( '' === $table ) {
|
72 |
-
$get_all = true;
|
73 |
-
}
|
74 |
-
|
75 |
-
if ( 'posts' === $table || $get_all ) {
|
76 |
-
|
77 |
-
/**
|
78 |
-
* table posts
|
79 |
-
*/
|
80 |
-
$posts = new stdClass();
|
81 |
-
$posts->include_fields = array(
|
82 |
-
'post_content',
|
83 |
-
'post_title',
|
84 |
-
'post_excerpt',
|
85 |
-
'post_content_filtered'
|
86 |
-
);
|
87 |
-
$posts->id_field = 'ID';
|
88 |
-
$posts->post_status = array(
|
89 |
-
'publish',
|
90 |
-
'draft'
|
91 |
-
);
|
92 |
-
|
93 |
-
self::$tables['posts'] = $posts;
|
94 |
-
|
95 |
-
}
|
96 |
-
|
97 |
-
if ( 'postmeta' === $table || $get_all ) {
|
98 |
-
|
99 |
-
/**
|
100 |
-
* table postmeta
|
101 |
-
*/
|
102 |
-
$postmeta = new stdClass();
|
103 |
-
$postmeta->include_fields = array(
|
104 |
-
'meta_value'
|
105 |
-
);
|
106 |
-
$postmeta->id_field = 'meta_id';
|
107 |
-
|
108 |
-
self::$tables['postmeta'] = $postmeta;
|
109 |
-
|
110 |
-
}
|
111 |
-
|
112 |
-
if ( 'options' === $table || $get_all ) {
|
113 |
-
|
114 |
-
/**
|
115 |
-
* table options
|
116 |
-
*/
|
117 |
-
$options = new stdClass();
|
118 |
-
$options->include_fields = array(
|
119 |
-
'option_value'
|
120 |
-
);
|
121 |
-
$options->id_field = 'option_id';
|
122 |
-
|
123 |
-
self::$tables['options'] = $options;
|
124 |
-
|
125 |
-
}
|
126 |
-
|
127 |
-
if ( 'terms' === $table || $get_all ) {
|
128 |
-
|
129 |
-
/**
|
130 |
-
* table terms
|
131 |
-
*/
|
132 |
-
$terms = new stdClass();
|
133 |
-
$terms->include_fields = array(
|
134 |
-
'name'
|
135 |
-
);
|
136 |
-
$terms->id_field = 'term_id';
|
137 |
-
|
138 |
-
self::$tables['terms'] = $terms;
|
139 |
-
|
140 |
-
}
|
141 |
-
|
142 |
-
if ( 'term_taxonomy' === $table || $get_all ) {
|
143 |
-
|
144 |
-
/**
|
145 |
-
* table term_taxonomy
|
146 |
-
*/
|
147 |
-
$term_taxonomy = new stdClass();
|
148 |
-
$term_taxonomy->include_fields = array(
|
149 |
-
'description'
|
150 |
-
);
|
151 |
-
$term_taxonomy->id_field = 'term_taxonomy_id';
|
152 |
-
|
153 |
-
self::$tables['term_taxonomy'] = $term_taxonomy;
|
154 |
-
|
155 |
-
}
|
156 |
-
|
157 |
-
if ( 'usermeta' === $table || $get_all ) {
|
158 |
-
|
159 |
-
/**
|
160 |
-
* table usermeta
|
161 |
-
*/
|
162 |
-
$usermeta = new stdClass();
|
163 |
-
$usermeta->include_fields = array(
|
164 |
-
'meta_value'
|
165 |
-
);
|
166 |
-
|
167 |
-
$usermeta->id_field = 'umeta_id';
|
168 |
-
|
169 |
-
self::$tables['usermeta'] = $usermeta;
|
170 |
-
|
171 |
-
}
|
172 |
-
|
173 |
-
|
174 |
-
if ( class_exists( 'WooCommerce' ) ) :
|
175 |
-
|
176 |
-
/**
|
177 |
-
* WooCommerce tables
|
178 |
-
*/
|
179 |
-
if ( 'woocommerce_attribute_taxonomies' === $table || $get_all ) {
|
180 |
-
/**
|
181 |
-
* table woocommerce_attribute_taxonomies
|
182 |
-
*/
|
183 |
-
$woocommerce_attribute_taxonomies = new stdClass();
|
184 |
-
$woocommerce_attribute_taxonomies->include_fields = array(
|
185 |
-
'attribute_label'
|
186 |
-
);
|
187 |
-
$woocommerce_attribute_taxonomies->id_field = 'attribute_id';
|
188 |
-
|
189 |
-
self::$tables['woocommerce_attribute_taxonomies'] = $woocommerce_attribute_taxonomies;
|
190 |
-
}
|
191 |
-
|
192 |
-
if ( 'woocommerce_order_items' === $table || $get_all ) {
|
193 |
-
/**
|
194 |
-
* table woocommerce_order_items
|
195 |
-
*/
|
196 |
-
$woocommerce_order_items = new stdClass();
|
197 |
-
$woocommerce_order_items->include_fields = array(
|
198 |
-
'order_item_name'
|
199 |
-
);
|
200 |
-
$woocommerce_order_items->id_field = 'order_item_id';
|
201 |
-
|
202 |
-
self::$tables['woocommerce_order_items'] = $woocommerce_order_items;
|
203 |
-
}
|
204 |
-
|
205 |
-
endif;
|
206 |
-
|
207 |
-
}
|
208 |
-
|
209 |
-
/**
|
210 |
-
* Get table list
|
211 |
-
*/
|
212 |
-
public static function get_table_list() {
|
213 |
-
|
214 |
-
$spinner = WPGlobus::$PLUGIN_DIR_URL . 'includes/css/images/spinner.gif';
|
215 |
-
|
216 |
-
$list = '<ul>';
|
217 |
-
foreach ( self::$tables as $table => $data ) {
|
218 |
-
|
219 |
-
$list .= '<li id="' . $table . '">';
|
220 |
-
/** @noinspection DisconnectedForeachInstructionInspection */
|
221 |
-
$list .= '<span class="wpglobus-spinner" style="float:left;margin-right:10px;"><img src="' . $spinner . '" /></span>';
|
222 |
-
$list .= '<span class="wpglobus-result" style="float:left;width:20px;height:20px;"></span>';
|
223 |
-
$list .= '<span class=""><input type="checkbox" id="cb-' . $table . '" checked disabled /></span>';
|
224 |
-
$list .= $table;
|
225 |
-
$list .= '</li>';
|
226 |
-
|
227 |
-
}
|
228 |
-
$list .= '<li id="wpglobus_options">';
|
229 |
-
$list .= '<span class="wpglobus-spinner" style="float:left;margin-right:10px;"><img src="' . $spinner . '" /></span>';
|
230 |
-
$list .= '<span class="wpglobus-result" style="float:left;width:20px;height:20px;"></span>';
|
231 |
-
$list .= '<span class=""><input type="checkbox" id="cb-wpglobus_options" name="cb-wpglobus_options" /></span>';
|
232 |
-
$list .= esc_html( __( 'Remove the WPGlobus settings (not recommended)', 'wpglobus' ) );
|
233 |
-
$list .= '</li>';
|
234 |
-
$list .= '</ul>';
|
235 |
-
|
236 |
-
return $list;
|
237 |
-
|
238 |
-
}
|
239 |
-
|
240 |
-
/**
|
241 |
-
* Ajax action handler
|
242 |
-
*
|
243 |
-
* @param string[] $order
|
244 |
-
*/
|
245 |
-
public static function process_ajax( $order ) {
|
246 |
-
|
247 |
-
self::_set_log_file();
|
248 |
-
|
249 |
-
$_log = false;
|
250 |
-
|
251 |
-
if ( 'true' === $order['log'] ) {
|
252 |
-
$_log = true;
|
253 |
-
}
|
254 |
-
|
255 |
-
if ( $order['action'] === 'die' ) {
|
256 |
-
wp_send_json_success( $order );
|
257 |
-
}
|
258 |
-
|
259 |
-
if ( $order['action'] === 'wpglobus-reset' ) {
|
260 |
-
|
261 |
-
/**
|
262 |
-
* SELECT * FROM `wp_options` WHERE `option_name` REGEXP 'wpglobus'
|
263 |
-
*/
|
264 |
-
|
265 |
-
global $wpdb;
|
266 |
-
|
267 |
-
/**
|
268 |
-
* Make table with prefix
|
269 |
-
*/
|
270 |
-
$table = $wpdb->prefix . 'options';
|
271 |
-
|
272 |
-
$query = "SELECT `option_id`, `option_name` FROM `$table` WHERE `option_name` REGEXP 'wpglobus'";
|
273 |
-
|
274 |
-
$ids = $wpdb->get_results( $query, ARRAY_A );
|
275 |
-
|
276 |
-
$records = array();
|
277 |
-
$fields = array();
|
278 |
-
|
279 |
-
foreach ( $ids as $data ) {
|
280 |
-
foreach ( $data as $field_id => $record_id ) {
|
281 |
-
if ( 'option_id' === $field_id ) {
|
282 |
-
$records[] = $record_id;
|
283 |
-
} else if ( 'option_name' === $field_id ) {
|
284 |
-
$fields[] = $record_id;
|
285 |
-
}
|
286 |
-
}
|
287 |
-
}
|
288 |
-
|
289 |
-
$result = true;
|
290 |
-
if ( ! empty( $records ) ) {
|
291 |
-
|
292 |
-
if ( $_log ) {
|
293 |
-
self::_log( $table, '', $fields, '' );
|
294 |
-
}
|
295 |
-
|
296 |
-
$set = implode( ',', $records );
|
297 |
-
$query = "DELETE FROM $table WHERE `option_id` IN ($set)";
|
298 |
-
$result = $wpdb->query( $query );
|
299 |
-
}
|
300 |
-
|
301 |
-
if ( false === $result ) {
|
302 |
-
wp_send_json_error( $order );
|
303 |
-
}
|
304 |
-
|
305 |
-
wp_send_json_success( $order );
|
306 |
-
|
307 |
-
}
|
308 |
-
|
309 |
-
if ( $order['action'] !== 'clean' ) {
|
310 |
-
wp_send_json_error( $order );
|
311 |
-
}
|
312 |
-
|
313 |
-
self::get_table( $order['table'] );
|
314 |
-
|
315 |
-
/**
|
316 |
-
* Set of examples of sql queries
|
317 |
-
* @see http://dev.mysql.com/doc/refman/5.7/en/pattern-matching.html
|
318 |
-
* @see http://dev.mysql.com/doc/refman/5.7/en/regexp.html
|
319 |
-
*/
|
320 |
-
|
321 |
-
/**
|
322 |
-
* SELECT * FROM `wp_posts` WHERE 1=1 AND `post_status` REGEXP 'publish|draft' AND (
|
323 |
-
* `post_content` REGEXP '{:[a-z]{2}|[[.[.]]:[a-z]{2}|<!--:[a-z]{2}' OR
|
324 |
-
* `post_title` REGEXP '{:[a-z]{2}|[[.[.]]:[a-z]{2}|<!--:[a-z]{2}' OR
|
325 |
-
* `post_excerpt` REGEXP '{:[a-z]{2}|[[.[.]]:[a-z]{2}|<!--:[a-z]{2}' OR
|
326 |
-
* `post_content_filtered` REGEXP '{:[a-z]{2}|[[.[.]]:[a-z]{2}|<!--:[a-z]{2}' )
|
327 |
-
*/
|
328 |
-
|
329 |
-
/**
|
330 |
-
* SELECT * FROM `wp_postmeta` WHERE `meta_value` REGEXP '{:[a-z]{2}|[[.[.]]:[a-z]{2}|<!--:[a-z]{2}'
|
331 |
-
*/
|
332 |
-
|
333 |
-
/**
|
334 |
-
* SELECT * FROM `wp_options` WHERE `option_value` REGEXP '{:[a-z]{2}|[[.[.]]:[a-z]{2}|<!--:[a-z]{2}'
|
335 |
-
*/
|
336 |
-
|
337 |
-
/**
|
338 |
-
* SELECT * FROM `wp_terms` WHERE `name` REGEXP '{:[a-z]{2}|[[.[.]]:[a-z]{2}|<!--:[a-z]{2}'
|
339 |
-
*/
|
340 |
-
|
341 |
-
/**
|
342 |
-
* SELECT * FROM `wp_term_taxonomy` WHERE `description` REGEXP '{:[a-z]{2}|[[.[.]]:[a-z]{2}|<!--:[a-z]{2}'
|
343 |
-
*/
|
344 |
-
|
345 |
-
/**
|
346 |
-
* SELECT * FROM `wp_usermeta` WHERE `meta_value` REGEXP '{:[a-z]{2}|[[.[.]]:[a-z]{2}|<!--:[a-z]{2}'
|
347 |
-
*/
|
348 |
-
|
349 |
-
/**
|
350 |
-
* SELECT * FROM `wp_woocommerce_attribute_taxonomies` WHERE `attribute_label` REGEXP '{:[a-z]{2}|[[.[.]]:[a-z]{2}|<!--:[a-z]{2}'
|
351 |
-
*/
|
352 |
-
|
353 |
-
/**
|
354 |
-
* SELECT * FROM `wp_woocommerce_order_items` WHERE `order_item_name` REGEXP '{:[a-z]{2}|[[.[.]]:[a-z]{2}|<!--:[a-z]{2}'
|
355 |
-
*/
|
356 |
-
|
357 |
-
global $wpdb;
|
358 |
-
|
359 |
-
/**
|
360 |
-
* Make table with prefix
|
361 |
-
*/
|
362 |
-
$table = $wpdb->prefix . $order['table'];
|
363 |
-
|
364 |
-
/**
|
365 |
-
* Standard regexp
|
366 |
-
*/
|
367 |
-
$wpg_regexp = '{:[a-z]{2}|[[.[.]]:[a-z]{2}|<!--:[a-z]{2}';
|
368 |
-
|
369 |
-
/**
|
370 |
-
* Post status
|
371 |
-
*/
|
372 |
-
$post_status = '';
|
373 |
-
if ( ! empty( self::$tables[ $order['table'] ]->post_status ) ) {
|
374 |
-
/**
|
375 |
-
* Example: AND `post_status` REGEXP 'publish|draft'
|
376 |
-
*/
|
377 |
-
$post_status = "AND post_status REGEXP '" . implode( '|', self::$tables[ $order['table'] ]->post_status ) . "' ";
|
378 |
-
}
|
379 |
-
|
380 |
-
/**
|
381 |
-
* Set condition
|
382 |
-
*/
|
383 |
-
$condition = false;
|
384 |
-
if ( count( self::$tables[ $order['table'] ]->include_fields ) === 0 ) {
|
385 |
-
/** do nothing */
|
386 |
-
} else if ( count( self::$tables[ $order['table'] ]->include_fields ) === 1 ) {
|
387 |
-
/**
|
388 |
-
* one field
|
389 |
-
*/
|
390 |
-
$field = self::$tables[ $order['table'] ]->include_fields[0];
|
391 |
-
$condition = "AND $field REGEXP '$wpg_regexp'";
|
392 |
-
|
393 |
-
} else {
|
394 |
-
/**
|
395 |
-
* multiple fields
|
396 |
-
*/
|
397 |
-
$temp = array();
|
398 |
-
foreach ( self::$tables[ $order['table'] ]->include_fields as $field ) {
|
399 |
-
$temp[] = "$field REGEXP '$wpg_regexp'";
|
400 |
-
}
|
401 |
-
|
402 |
-
$condition = 'AND ( ' . implode( ' OR ', $temp ) . ' )';
|
403 |
-
|
404 |
-
}
|
405 |
-
|
406 |
-
/**
|
407 |
-
* Set record ID
|
408 |
-
*/
|
409 |
-
$id = false;
|
410 |
-
if ( ! empty( self::$tables[ $order['table'] ]->id_field ) ) {
|
411 |
-
$id = self::$tables[ $order['table'] ]->id_field;
|
412 |
-
}
|
413 |
-
|
414 |
-
if ( ! $id ) {
|
415 |
-
wp_send_json_error( $order );
|
416 |
-
}
|
417 |
-
|
418 |
-
if ( ! $condition ) {
|
419 |
-
wp_send_json_error( $order );
|
420 |
-
}
|
421 |
-
|
422 |
-
$query = "SELECT $id FROM $table WHERE 1=1 $post_status $condition";
|
423 |
-
|
424 |
-
$ids = $wpdb->get_results( $query, ARRAY_A );
|
425 |
-
|
426 |
-
$result = true;
|
427 |
-
|
428 |
-
foreach ( $ids as $data ) {
|
429 |
-
|
430 |
-
foreach ( $data as $field_id => $record_id ) {
|
431 |
-
|
432 |
-
/** @noinspection DisconnectedForeachInstructionInspection */
|
433 |
-
$ifields = implode( ', ', self::$tables[ $order['table'] ]->include_fields );
|
434 |
-
|
435 |
-
$query1 = "SELECT $ifields FROM $table WHERE $field_id = '$record_id'";
|
436 |
-
|
437 |
-
/** @var array $record */
|
438 |
-
$record = $wpdb->get_results( $query1 );
|
439 |
-
|
440 |
-
$update_fields = array();
|
441 |
-
|
442 |
-
foreach ( self::$tables[ $order['table'] ]->include_fields as $include_field ) {
|
443 |
-
|
444 |
-
$value = $record[0]->$include_field;
|
445 |
-
|
446 |
-
$value = trim( $value );
|
447 |
-
if ( empty( $value ) ) {
|
448 |
-
continue;
|
449 |
-
}
|
450 |
-
|
451 |
-
$serialized = false;
|
452 |
-
if ( is_serialized( $value ) ) {
|
453 |
-
$serialized = true;
|
454 |
-
$value = maybe_unserialize( $value );
|
455 |
-
}
|
456 |
-
|
457 |
-
$converted = self::convert( $value );
|
458 |
-
|
459 |
-
if ( $_log ) {
|
460 |
-
self::_log( $table, $record_id, $value, $converted );
|
461 |
-
}
|
462 |
-
|
463 |
-
if ( $serialized ) {
|
464 |
-
$converted = maybe_serialize( $converted );
|
465 |
-
}
|
466 |
-
|
467 |
-
$update_fields[] = $include_field . "='" . $converted . "'";
|
468 |
-
|
469 |
-
} // endforeach;
|
470 |
-
|
471 |
-
if ( ! empty( $update_fields ) ) {
|
472 |
-
/**
|
473 |
-
* UPDATE record
|
474 |
-
*/
|
475 |
-
$updates = implode( ', ', $update_fields );
|
476 |
-
$upd_query = "UPDATE `$table` SET $updates WHERE `$field_id` = $record_id";
|
477 |
-
|
478 |
-
$res = $wpdb->query( $upd_query );
|
479 |
-
|
480 |
-
if ( false === $res ) {
|
481 |
-
$result = false;
|
482 |
-
}
|
483 |
-
|
484 |
-
}
|
485 |
-
|
486 |
-
} // endforeach
|
487 |
-
|
488 |
-
} // endforeach
|
489 |
-
|
490 |
-
if ( false === $result ) {
|
491 |
-
wp_send_json_error( $order );
|
492 |
-
}
|
493 |
-
|
494 |
-
wp_send_json_success( $order );
|
495 |
-
|
496 |
-
}
|
497 |
-
|
498 |
-
/**
|
499 |
-
* Logger
|
500 |
-
*
|
501 |
-
* @param string $table
|
502 |
-
* @param string $id
|
503 |
-
* @param string $initial
|
504 |
-
* @param string $converted
|
505 |
-
*/
|
506 |
-
public static function _log( $table = '', $id = '', $initial = '', $converted = '' ) {
|
507 |
-
error_log( date( DATE_ATOM ) . "\n", 3, self::$log_file );
|
508 |
-
error_log( 'TABLE: ' . $table . "\n", 3, self::$log_file );
|
509 |
-
error_log( 'ID: ' . $id . "\n", 3, self::$log_file );
|
510 |
-
error_log( "BEFORE: \n" . print_r( $initial, true ) . "\n", 3, self::$log_file );
|
511 |
-
if ( empty($converted) ) {
|
512 |
-
error_log( "AFTER: \n(empty)\n", 3, self::$log_file );
|
513 |
-
} else {
|
514 |
-
error_log( "AFTER: \n" . print_r( $converted, true ) . "\n", 3, self::$log_file );
|
515 |
-
}
|
516 |
-
error_log( '=================' . "\n\n", 3, self::$log_file );
|
517 |
-
}
|
518 |
-
|
519 |
-
/**
|
520 |
-
* Enqueue js
|
521 |
-
*
|
522 |
-
* @return void
|
523 |
-
*/
|
524 |
-
public static function action__admin_print_scripts() {
|
525 |
-
|
526 |
-
$src = WPGlobus::$PLUGIN_DIR_URL . 'includes/js/wpglobus-clean' . WPGlobus::SCRIPT_SUFFIX() . '.js';
|
527 |
-
|
528 |
-
$result_icons['success'] = WPGlobus::$PLUGIN_DIR_URL . 'includes/css/images/success.png';
|
529 |
-
$result_icons['error'] = WPGlobus::$PLUGIN_DIR_URL . 'includes/css/images/error.png';
|
530 |
-
|
531 |
-
wp_enqueue_script(
|
532 |
-
'wpglobus-clean',
|
533 |
-
$src,
|
534 |
-
array( 'jquery' ),
|
535 |
-
WPGLOBUS_VERSION,
|
536 |
-
true
|
537 |
-
);
|
538 |
-
|
539 |
-
wp_localize_script(
|
540 |
-
'wpglobus-clean',
|
541 |
-
'WPGlobusClean',
|
542 |
-
array(
|
543 |
-
'version' => WPGLOBUS_VERSION,
|
544 |
-
'icons' => $result_icons,
|
545 |
-
'data' => array_merge( self::$tables, array( 'wpglobus_options' => new stdClass() ) )
|
546 |
-
)
|
547 |
-
);
|
548 |
-
|
549 |
-
|
550 |
-
}
|
551 |
-
|
552 |
-
/**
|
553 |
-
* Output the clean screen.
|
554 |
-
*
|
555 |
-
* @return void
|
556 |
-
*/
|
557 |
-
public static function screen() {
|
558 |
-
|
559 |
-
/**
|
560 |
-
* For Google Analytics
|
561 |
-
*/
|
562 |
-
$ga_campaign = '?utm_source=wpglobus-admin-clean&utm_medium=link&utm_campaign=clean-up-tool';
|
563 |
-
|
564 |
-
$url_wpglobus_site = WPGlobus_Utils::url_wpglobus_site();
|
565 |
-
// $url_wpglobus_site_home = $url_wpglobus_site . $ga_campaign;
|
566 |
-
$url_wpglobus_site_contact = $url_wpglobus_site . 'pg/contact-us/' . $ga_campaign;
|
567 |
-
$url_wpglobus_site_quick_start = $url_wpglobus_site . 'quick-start/' . $ga_campaign;
|
568 |
-
// $url_wpglobus_site_faq = $url_wpglobus_site . 'faq/' . $ga_campaign;
|
569 |
-
// $url_wpglobus_site_pro_support = $url_wpglobus_site . 'professional-support/' . $ga_campaign;
|
570 |
-
|
571 |
-
$url_wpglobus_logo = WPGlobus::$PLUGIN_DIR_URL . 'includes/css/images/wpglobus-logo-180x180.png';
|
572 |
-
|
573 |
-
?>
|
574 |
-
<style>
|
575 |
-
.wp-badge.wpglobus-badge {
|
576 |
-
background: #ffffff url(<?php echo esc_url( $url_wpglobus_logo ); ?>) no-repeat;
|
577 |
-
background-size: contain;
|
578 |
-
}
|
579 |
-
</style>
|
580 |
-
<div class="wrap about-wrap wpglobus-about-wrap clean-wrap wpglobus-clean">
|
581 |
-
<h1 class="wpglobus"><span class="wpglobus-wp">WP</span>Globus
|
582 |
-
<span class="wpglobus-version"><?php echo esc_html( WPGLOBUS_VERSION ); ?></span>
|
583 |
-
</h1>
|
584 |
-
|
585 |
-
<div class="wpglobus-motto"><?php esc_html_e( 'Multilingual Everything!', 'wpglobus' ); ?></div>
|
586 |
-
|
587 |
-
<div class="about-text">
|
588 |
-
<?php esc_html_e( 'WPGlobus is a family of WordPress plugins assisting you in making multilingual WordPress blogs and sites.', 'wpglobus' ); ?>
|
589 |
-
</div>
|
590 |
-
|
591 |
-
<div class="wp-badge wpglobus-badge"></div>
|
592 |
-
|
593 |
-
<h2 class="nav-tab-wrapper">
|
594 |
-
<a href="#" class="nav-tab nav-tab-active">
|
595 |
-
<?php esc_html_e( 'Clean-up Tool', 'wpglobus' ); ?>
|
596 |
-
</a>
|
597 |
-
<a href="<?php echo esc_url( $url_wpglobus_site_quick_start ); ?>"
|
598 |
-
target="_blank"
|
599 |
-
class="nav-tab">
|
600 |
-
<?php esc_html_e( 'Guide', 'wpglobus' ); ?>
|
601 |
-
</a>
|
602 |
-
<a href="<?php echo esc_url( WPGlobus_Admin_Page::url_settings() ); ?>" class="nav-tab">
|
603 |
-
<?php esc_html_e( 'Settings' ); ?>
|
604 |
-
</a>
|
605 |
-
<a href="<?php echo esc_url( WPGlobus_Admin_Page::url_addons() ); ?>" class="nav-tab">
|
606 |
-
<?php esc_html_e( 'Add-ons', 'wpglobus' ); ?>
|
607 |
-
</a>
|
608 |
-
<a href="<?php echo esc_url( $url_wpglobus_site_contact ); ?>" class="nav-tab">
|
609 |
-
<?php esc_html_e( 'Support', 'wpglobus' ); ?>
|
610 |
-
</a>
|
611 |
-
</h2>
|
612 |
-
|
613 |
-
<div style="color: white; background-color: red; padding: .5em; margin-top: 1em;">
|
614 |
-
<?php esc_html_e( 'WARNING: this operation is non-reversible. It is strongly recommended that you backup your database before proceeding.', 'wpglobus' ); ?>
|
615 |
-
</div>
|
616 |
-
|
617 |
-
<div style="padding: .5em">
|
618 |
-
<p><strong>
|
619 |
-
1. <?php esc_html_e( 'This tool should be used only if you plan to completely uninstall WPGlobus. By running it, you will remove ALL translations you have entered to your post, pages, etc., keeping only the MAIN language texts. Please make sure that all entries have some content in the main language. Otherwise, you might end up with empty titles, no content, no excerpts, blank comments and so on.', 'wpglobus' ); ?>
|
620 |
-
</strong></p>
|
621 |
-
<p><strong>
|
622 |
-
2. <?php esc_html_e( 'Make sure that your active theme does not have any code related to WPGlobus. Such code could be added by you or by a 3rd party developer. If that code runs without first verifying that WPGlobus is active, WordPress may die with a fatal error.', 'wpglobus' ); ?>
|
623 |
-
</strong></p>
|
624 |
-
</div>
|
625 |
-
|
626 |
-
<div style="color:red; background-color: white; padding: .5em">
|
627 |
-
<?php
|
628 |
-
$_message = esc_html( sprintf(
|
629 |
-
// translators: %1$s - language name, %2$s - language code. Do not remove.
|
630 |
-
__( 'The main language is currently set to %1$s (%2$s). ALL TEXTS THAT ARE NOT IN %1$s WILL BE DELETED! To change the main language, please go to {{settings}}.', 'wpglobus' ),
|
631 |
-
WPGlobus::Config()->en_language_name[ WPGlobus::Config()->default_language ],
|
632 |
-
WPGlobus::Config()->default_language )
|
633 |
-
);
|
634 |
-
$_settings_link = '<a href="'.esc_url( WPGlobus_Admin_Page::url_settings('languages') ).'">' . esc_html( 'Settings', 'wpglobus' ) . '</a>';
|
635 |
-
echo str_replace( '{{settings}}', $_settings_link, $_message );
|
636 |
-
?>
|
637 |
-
</div>
|
638 |
-
|
639 |
-
<hr />
|
640 |
-
<h3 id="about-to-clean">
|
641 |
-
<?php esc_html_e( 'You are about to clean the content of the following database tables:', 'wpglobus' ); ?>
|
642 |
-
</h3>
|
643 |
-
|
644 |
-
<?php echo self::get_table_list(); // WPCS: XSS ok. ?>
|
645 |
-
|
646 |
-
<hr />
|
647 |
-
|
648 |
-
<h3>
|
649 |
-
<?php esc_html_e( 'The operations log', 'wpglobus' ); ?>
|
650 |
-
</h3>
|
651 |
-
<div>
|
652 |
-
<?php esc_html_e( 'We are going to write a detailed log of all the database changes performed. It should help in the case you need to restore something important. The log will be written to the file:', 'wpglobus' ); ?>
|
653 |
-
</div>
|
654 |
-
<br />
|
655 |
-
<code>
|
656 |
-
<?php echo self::$log_file; // WPCS: XSS ok. ?>
|
657 |
-
</code>
|
658 |
-
<br />
|
659 |
-
<br />
|
660 |
-
<label>
|
661 |
-
<input type="checkbox" name="wpglobus-clean-log" id="wpglobus-clean-log" checked="checked" />
|
662 |
-
<?php esc_html_e( 'Uncheck if you do not want to write the operations log (we recommend to keep it checked)', 'wpglobus' ); ?>
|
663 |
-
|
664 |
-
</label>
|
665 |
-
<hr />
|
666 |
-
<h3>
|
667 |
-
<?php esc_html_e( 'You have been warned...', 'wpglobus' ); ?>
|
668 |
-
</h3>
|
669 |
-
<?php esc_html_e( 'Please confirm by checking the box below:', 'wpglobus' ); ?>
|
670 |
-
<div style="color:red; background-color: white; padding: .5em; margin: 1em 0;">
|
671 |
-
<?php esc_html_e( 'I have read and understood everything written on this page. I am aware that by using this tool I may loose some content of my website. I have made a database backup and know how to restore it if necessary. I am fully responsible for the results.', 'wpglobus' ); ?>
|
672 |
-
</div>
|
673 |
-
|
674 |
-
<label><input type="checkbox" name="wpglobus-clean-activate" id="wpglobus-clean-activate" /><?php esc_html_e( 'YES, I CONFIRM', 'wpglobus' ); ?>
|
675 |
-
</label>
|
676 |
-
<div class="return-to-dashboard">
|
677 |
-
<a id="wpglobus-clean-button" class="button button-primary hidden" href="#about-to-clean">
|
678 |
-
<?php esc_html_e( 'Process with the Clean-up', 'wpglobus' ); ?>
|
679 |
-
</a>
|
680 |
-
</div>
|
681 |
-
|
682 |
-
</div>
|
683 |
-
|
684 |
-
<?php
|
685 |
-
}
|
686 |
-
|
687 |
-
/**
|
688 |
-
* Convert string to text with default language
|
689 |
-
*
|
690 |
-
* @param mixed $data
|
691 |
-
*
|
692 |
-
* @return mixed $data
|
693 |
-
*/
|
694 |
-
public static function convert( $data ) {
|
695 |
-
|
696 |
-
if ( empty( $data ) ) {
|
697 |
-
return '';
|
698 |
-
}
|
699 |
-
|
700 |
-
if ( is_null( $data ) ) {
|
701 |
-
return $data;
|
702 |
-
}
|
703 |
-
|
704 |
-
if ( is_bool( $data ) ) {
|
705 |
-
return $data;
|
706 |
-
}
|
707 |
-
|
708 |
-
if ( is_float( $data ) ) {
|
709 |
-
return $data;
|
710 |
-
}
|
711 |
-
|
712 |
-
if ( is_int( $data ) ) {
|
713 |
-
return $data;
|
714 |
-
}
|
715 |
-
|
716 |
-
if ( is_string( $data ) ) {
|
717 |
-
$data = WPGlobus_Core::text_filter( $data, WPGlobus::Config()->default_language, WPGlobus::RETURN_EMPTY );
|
718 |
-
|
719 |
-
/**
|
720 |
-
* Set double apostrophe for mySQL UPDATE
|
721 |
-
*/
|
722 |
-
return str_replace( "'", "''", $data );
|
723 |
-
}
|
724 |
-
|
725 |
-
foreach ( $data as $key => $value ) {
|
726 |
-
if ( is_array( $data ) ) {
|
727 |
-
/** @noinspection AlterInForeachInspection */
|
728 |
-
$data[ $key ] = self::convert( $value );
|
729 |
-
} else if ( is_object( $data ) ) {
|
730 |
-
$data->$key = self::convert( $value );
|
731 |
-
}
|
732 |
-
}
|
733 |
-
|
734 |
-
return $data;
|
735 |
-
|
736 |
-
}
|
737 |
-
|
738 |
-
|
739 |
-
} //class
|
740 |
-
|
741 |
-
endif;
|
742 |
-
|
743 |
-
# --- EOF
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/includes/admin/class-wpglobus-customize-options.php
DELETED
@@ -1,1588 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* File: class-wpglobus-customize-options.php
|
4 |
-
*
|
5 |
-
* WPGlobus_Customize_Options
|
6 |
-
*
|
7 |
-
* @package WPGlobus\Admin\Customizer
|
8 |
-
* @since 1.4.6
|
9 |
-
*
|
10 |
-
* @see http://www.narga.net/comprehensive-guide-wordpress-theme-options-with-customization-api/
|
11 |
-
* @see https://developer.wordpress.org/themes/advanced-topics/customizer-api/#top
|
12 |
-
* @see https://codex.wordpress.org/Theme_Customization_API
|
13 |
-
* @see #customize-controls
|
14 |
-
*/
|
15 |
-
|
16 |
-
/**
|
17 |
-
* wpglobus_option
|
18 |
-
* wpglobus_option_flags
|
19 |
-
* wpglobus_option_locale
|
20 |
-
* wpglobus_option_en_language_names
|
21 |
-
* wpglobus_option_language_names
|
22 |
-
* wpglobus_option_post_meta_settings
|
23 |
-
*/
|
24 |
-
|
25 |
-
/**
|
26 |
-
* WPGlobus option Customizer setting @see $wp_customize->add_setting
|
27 |
-
*
|
28 |
-
* wpglobus_option[last_tab] => are not used in customizer
|
29 |
-
*
|
30 |
-
* wpglobus_option[enabled_languages] => wpglobus_customize_enabled_languages
|
31 |
-
*
|
32 |
-
* wpglobus_option[more_languages] => are not used in customizer
|
33 |
-
*
|
34 |
-
* wpglobus_option[show_flag_name] => wpglobus_customize_language_selector_mode
|
35 |
-
*
|
36 |
-
* wpglobus_option[use_nav_menu] => wpglobus_customize_language_selector_menu
|
37 |
-
*
|
38 |
-
* wpglobus_option[selector_wp_list_pages]
|
39 |
-
* => Array
|
40 |
-
* (
|
41 |
-
* [show_selector] => 1 => wpglobus_customize_selector_wp_list_pages
|
42 |
-
* )
|
43 |
-
*
|
44 |
-
* wpglobus_option[css_editor] => wpglobus_customize_css_editor
|
45 |
-
*
|
46 |
-
*/
|
47 |
-
if ( ! class_exists( 'WPGlobus_Customize_Options' ) ) :
|
48 |
-
|
49 |
-
|
50 |
-
if ( ! class_exists( 'WP_Customize_Control' ) ) {
|
51 |
-
require_once( ABSPATH . WPINC . '/class-wp-customize-control.php' );
|
52 |
-
}
|
53 |
-
|
54 |
-
/**
|
55 |
-
* Class WPGlobusTextBox.
|
56 |
-
* Adds textbox support to the theme customizer.
|
57 |
-
*
|
58 |
-
* @see wp-includes\class-wp-customize-control.php
|
59 |
-
*/
|
60 |
-
class WPGlobusTextBox extends WP_Customize_Control {
|
61 |
-
|
62 |
-
public $type = 'textbox';
|
63 |
-
|
64 |
-
public $content = '';
|
65 |
-
|
66 |
-
/**
|
67 |
-
* Constructor.
|
68 |
-
*
|
69 |
-
* @param WP_Customize_Manager $manager Customizer bootstrap instance.
|
70 |
-
* @param string $id Control ID.
|
71 |
-
* @param array $args Optional. Arguments to override class property defaults.
|
72 |
-
*/
|
73 |
-
public function __construct( $manager, $id, $args = array() ) {
|
74 |
-
$this->content = empty( $args['content'] ) ? '' : $args['content'];
|
75 |
-
$this->statuses = array( '' => esc_html__( 'Default', 'wpglobus' ) );
|
76 |
-
parent::__construct( $manager, $id, $args );
|
77 |
-
}
|
78 |
-
|
79 |
-
public function render_content() {
|
80 |
-
|
81 |
-
echo $this->content;
|
82 |
-
|
83 |
-
}
|
84 |
-
|
85 |
-
}
|
86 |
-
|
87 |
-
/**
|
88 |
-
* Adds checkbox with title support to the theme customizer.
|
89 |
-
*
|
90 |
-
* @see wp-includes\class-wp-customize-control.php
|
91 |
-
*/
|
92 |
-
class WPGlobusCheckBox extends WP_Customize_Control {
|
93 |
-
|
94 |
-
public $type = 'wpglobus_checkbox';
|
95 |
-
|
96 |
-
public $title = '';
|
97 |
-
|
98 |
-
public function __construct( $manager, $id, $args = array() ) {
|
99 |
-
|
100 |
-
$this->title = empty( $args['title'] ) ? '' : $args['title'];
|
101 |
-
|
102 |
-
$this->statuses = array( '' => esc_html__( 'Default', 'wpglobus' ) );
|
103 |
-
|
104 |
-
parent::__construct( $manager, $id, $args );
|
105 |
-
|
106 |
-
}
|
107 |
-
|
108 |
-
public function render_content() {
|
109 |
-
|
110 |
-
?>
|
111 |
-
|
112 |
-
<label>
|
113 |
-
<?php if ( ! empty( $this->title ) ) : ?>
|
114 |
-
<span class="customize-control-title"><?php echo esc_html( $this->title ); ?></span>
|
115 |
-
<?php endif; ?>
|
116 |
-
<div style="display:flex;">
|
117 |
-
<div style="flex:1">
|
118 |
-
<input type="checkbox" value="<?php echo esc_attr( $this->value() ); ?>" <?php $this->link(); checked( $this->value() ); ?> />
|
119 |
-
</div>
|
120 |
-
<div style="flex:8">
|
121 |
-
<?php echo esc_html( $this->label ); ?>
|
122 |
-
</div>
|
123 |
-
</div>
|
124 |
-
<?php if ( ! empty( $this->description ) ) : ?>
|
125 |
-
<span class="description customize-control-description"><?php echo esc_html($this->description); ?></span>
|
126 |
-
<?php endif; ?>
|
127 |
-
</label> <?php
|
128 |
-
|
129 |
-
}
|
130 |
-
}
|
131 |
-
|
132 |
-
/**
|
133 |
-
* Adds link support to the theme customizer.
|
134 |
-
*
|
135 |
-
* @see wp-includes\class-wp-customize-control.php
|
136 |
-
*/
|
137 |
-
class WPGlobusLink extends WP_Customize_Control {
|
138 |
-
|
139 |
-
public $type = 'wpglobus_link';
|
140 |
-
|
141 |
-
public $args = array();
|
142 |
-
|
143 |
-
public function __construct( $manager, $id, $args = array() ) {
|
144 |
-
|
145 |
-
$this->args = $args;
|
146 |
-
|
147 |
-
$this->statuses = array( '' => esc_html__( 'Default', 'wpglobus' ) );
|
148 |
-
|
149 |
-
parent::__construct( $manager, $id, $args );
|
150 |
-
|
151 |
-
}
|
152 |
-
|
153 |
-
public function render_content() {
|
154 |
-
|
155 |
-
?>
|
156 |
-
|
157 |
-
<label>
|
158 |
-
<?php if ( ! empty( $this->args['title'] ) ) : ?>
|
159 |
-
<span class="customize-control-title"><?php echo esc_html( $this->args['title'] ); ?></span>
|
160 |
-
<?php endif; ?>
|
161 |
-
<a href="<?php echo $this->args['href']; // WPCS: XSS ok. ?>" target="_blank"><?php echo $this->args['text']; // WPCS: XSS ok. ?></a>
|
162 |
-
<?php if ( ! empty( $this->description ) ) : ?>
|
163 |
-
<span class="description customize-control-description"><?php echo esc_html($this->description); ?></span>
|
164 |
-
<?php endif; ?>
|
165 |
-
</label> <?php
|
166 |
-
|
167 |
-
}
|
168 |
-
}
|
169 |
-
|
170 |
-
/**
|
171 |
-
* Adds CheckBoxSet support to the theme customizer.
|
172 |
-
*
|
173 |
-
* @see wp-includes\class-wp-customize-control.php
|
174 |
-
*/
|
175 |
-
class WPGlobusCheckBoxSet extends WP_Customize_Control {
|
176 |
-
|
177 |
-
public $type = 'checkbox_set';
|
178 |
-
|
179 |
-
public $skeleton = '';
|
180 |
-
|
181 |
-
public $args = array();
|
182 |
-
|
183 |
-
public function __construct( $manager, $id, $args = array() ) {
|
184 |
-
$this->args = $args;
|
185 |
-
$this->statuses = array( '' => esc_html__( 'Default', 'wpglobus' ) );
|
186 |
-
|
187 |
-
$this->skeleton =
|
188 |
-
'<a href="{{edit-link}}" target="_blank"><span style="cursor:pointer;">Edit</span></a> ' .
|
189 |
-
'<img style="cursor:move;" {{flag}} /> ' .
|
190 |
-
'<input name="wpglobus_item_{{name}}" id="wpglobus_item_{{id}}" type="checkbox" checked="{{checked}}" ' .
|
191 |
-
' class="{{class}}" ' .
|
192 |
-
' data-order="{{order}}" data-language="{{language}}" disabled="{{disabled}}" />' .
|
193 |
-
'<span style="cursor:move;">{{item}}</span>';
|
194 |
-
|
195 |
-
parent::__construct( $manager, $id, $args );
|
196 |
-
|
197 |
-
}
|
198 |
-
|
199 |
-
public function render_content() { ?>
|
200 |
-
|
201 |
-
<label>
|
202 |
-
<?php if ( ! empty( $this->label ) ) : ?>
|
203 |
-
<span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span>
|
204 |
-
<?php endif;
|
205 |
-
if ( ! empty( $this->description ) ) : ?>
|
206 |
-
<span class="description customize-control-description"><?php echo esc_html($this->description); ?></span>
|
207 |
-
<?php endif;
|
208 |
-
|
209 |
-
$new_item = str_replace( '{{class}}', 'wpglobus-checkbox ' . $this->args['checkbox_class'], $this->skeleton );
|
210 |
-
echo '<div style="display:none;" id="wpglobus-item-skeleton">' . $new_item . '</div>'; // WPCS: XSS ok.
|
211 |
-
|
212 |
-
echo '<ul id="wpglobus-sortable" style="margin-top:10px;margin-left:20px;">';
|
213 |
-
|
214 |
-
foreach ( $this->args['items'] as $order => $item ) {
|
215 |
-
|
216 |
-
$disabled = $order == 0 ? ' disabled="disabled" ' : '';
|
217 |
-
|
218 |
-
$li_item = str_replace(
|
219 |
-
'{{flag}}',
|
220 |
-
'src="' . WPGlobus::Config()->flags_url . WPGlobus::Config()->flag[ $item ] . '"',
|
221 |
-
$this->skeleton
|
222 |
-
);
|
223 |
-
$li_item = str_replace( '{{name}}', $item, $li_item );
|
224 |
-
$li_item = str_replace( '{{id}}', $item, $li_item );
|
225 |
-
$li_item = str_replace( 'checked="{{checked}}"', 'checked="checked"', $li_item );
|
226 |
-
$li_item = str_replace( 'disabled="{{disabled}}"', $disabled, $li_item );
|
227 |
-
$li_item = str_replace( '{{class}}', 'wpglobus-checkbox ' . $this->args['checkbox_class'], $li_item );
|
228 |
-
$li_item = str_replace( '{{item}}', WPGlobus::Config()->en_language_name[ $item ] . ' (' . $item . ')', $li_item );
|
229 |
-
$li_item = str_replace( '{{order}}', $order, $li_item );
|
230 |
-
$li_item = str_replace( '{{language}}', $item, $li_item );
|
231 |
-
$li_item = str_replace(
|
232 |
-
'{{edit-link}}',
|
233 |
-
admin_url() . 'admin.php?page=' . WPGlobus::LANGUAGE_EDIT_PAGE . '&action=edit&lang=' . $item . '"', $li_item
|
234 |
-
);
|
235 |
-
|
236 |
-
echo '<li>' . $li_item . '</li>'; // WPCS: XSS ok.
|
237 |
-
|
238 |
-
}
|
239 |
-
|
240 |
-
echo '</ul>'; ?>
|
241 |
-
|
242 |
-
</label> <hr /> <?php
|
243 |
-
|
244 |
-
}
|
245 |
-
|
246 |
-
}
|
247 |
-
|
248 |
-
/**
|
249 |
-
* Adds Fields Settings Control support to the theme customizer.
|
250 |
-
*
|
251 |
-
* @see wp-includes\class-wp-customize-control.php
|
252 |
-
*/
|
253 |
-
class WPGlobusFieldsSettingsControl extends WP_Customize_Control {
|
254 |
-
|
255 |
-
public $type = 'wpglobus_fields_settings_control';
|
256 |
-
|
257 |
-
public $args = array();
|
258 |
-
|
259 |
-
public $section_template = '';
|
260 |
-
|
261 |
-
public function __construct( $manager, $id, $args = array() ) {
|
262 |
-
|
263 |
-
$this->args = $args;
|
264 |
-
|
265 |
-
$this->section_template = "<div id='wpglobus-settings-{{section}}' style='border-bottom:1px solid black;margin-bottom:5px;padding:5px;' class='items-box' data-section='{{section}}'>";
|
266 |
-
$this->section_template .= esc_html__( 'Section', 'wpglobus' ) . ": <a href='#' onclick='wp.customize.section({{section_id}}).expand();'><b>{{section_title}}</b></a>";
|
267 |
-
$this->section_template .= "<div class='items' style='padding-top:10px;'>{{items}}</div>";
|
268 |
-
$this->section_template .= "</div>";
|
269 |
-
|
270 |
-
parent::__construct( $manager, $id, $args );
|
271 |
-
|
272 |
-
}
|
273 |
-
|
274 |
-
public function render_content() {
|
275 |
-
?>
|
276 |
-
<div class="wpglobus-fields_settings_control_box" data-section-template="<?php echo $this->section_template; // WPCS: XSS ok. ?>">
|
277 |
-
<?php if ( $this->args['start_section'] ) : ?>
|
278 |
-
<div style="border-bottom:1px solid black;margin: 0 0 5px;padding-left:5px;">
|
279 |
-
<a href="#" onclick="jQuery('.wpglobus-fields_settings_control_box .items-box' ).css('display','block');"><b><?php esc_html_e( 'Show all sections', 'wpglobus' ); ?></b></a>
|
280 |
-
</div>
|
281 |
-
<input type="submit" style="float:right;" name="<?php echo WPGlobus_Customize_Options::$controls_save_button; // WPCS: XSS ok. ?>" id="<?php echo WPGlobus_Customize_Options::$controls_save_button; // WPCS: XSS ok. ?>" class="button button-primary save" value="<?php esc_html_e( 'Save & Reload', 'wpglobus' ); ?>">
|
282 |
-
<?php else: ?>
|
283 |
-
<div>
|
284 |
-
<?php if ( ! empty( $this->args['message'] ) ) {
|
285 |
-
echo $this->args['message']; // WPCS: XSS ok.
|
286 |
-
} ?>
|
287 |
-
</div>
|
288 |
-
<?php endif; ?>
|
289 |
-
</div> <!-- .wpglobus-fields_settings_control_box --> <?php
|
290 |
-
}
|
291 |
-
}
|
292 |
-
|
293 |
-
/**
|
294 |
-
* Class WPGlobus_Customize_Options
|
295 |
-
*/
|
296 |
-
class WPGlobus_Customize_Options {
|
297 |
-
|
298 |
-
/**
|
299 |
-
* Array of sections
|
300 |
-
*/
|
301 |
-
public static $sections = array();
|
302 |
-
|
303 |
-
/**
|
304 |
-
* Array of settings
|
305 |
-
*/
|
306 |
-
public static $settings = array();
|
307 |
-
|
308 |
-
/**
|
309 |
-
* Set transient key
|
310 |
-
*/
|
311 |
-
public static $enabled_post_types_key = 'wpglobus_customize_enabled_post_types';
|
312 |
-
|
313 |
-
/**
|
314 |
-
* Set option key for customizer
|
315 |
-
*/
|
316 |
-
public static $options_key = 'wpglobus_customize_options';
|
317 |
-
|
318 |
-
/**
|
319 |
-
* Save button ID
|
320 |
-
*/
|
321 |
-
public static $controls_save_button = 'wpglobus-user-controls-save';
|
322 |
-
|
323 |
-
/**
|
324 |
-
* Current theme.
|
325 |
-
*
|
326 |
-
* @var WP_Theme
|
327 |
-
*/
|
328 |
-
public static $theme;
|
329 |
-
|
330 |
-
/**
|
331 |
-
* Current theme name.
|
332 |
-
*
|
333 |
-
* @var string
|
334 |
-
*/
|
335 |
-
public static $theme_name = '';
|
336 |
-
|
337 |
-
/**
|
338 |
-
* Array of disabled themes.
|
339 |
-
* @var string[]
|
340 |
-
*/
|
341 |
-
public static $disabled_themes = array();
|
342 |
-
|
343 |
-
public static function controller() {
|
344 |
-
|
345 |
-
self::$theme = wp_get_theme();
|
346 |
-
self::$theme_name = self::get_theme( 'name' );
|
347 |
-
|
348 |
-
self::$disabled_themes = array(
|
349 |
-
'customizr',
|
350 |
-
'customizr pro'
|
351 |
-
);
|
352 |
-
|
353 |
-
/**
|
354 |
-
* @since 1.7.7
|
355 |
-
* Don't standard loading of the option 'theme_mods_experon'. Theme uses redux.
|
356 |
-
* Don't standard behavior in customizer.
|
357 |
-
* @see https://wordpress.org/themes/experon/
|
358 |
-
*/
|
359 |
-
self::$disabled_themes[] = 'experon';
|
360 |
-
|
361 |
-
/**
|
362 |
-
* @since 2.3.12
|
363 |
-
* Don't standard behavior with links in Appearance section (requires installing an additional module).
|
364 |
-
* @see https://gwangi-theme.com/
|
365 |
-
*/
|
366 |
-
self::$disabled_themes[] = 'gwangi';
|
367 |
-
|
368 |
-
/**
|
369 |
-
* @since 2.5.21
|
370 |
-
* Is not correct saving the `Items Content` fields in some site configuration.
|
371 |
-
* @see https://wordpress.org/themes/newyork-city/
|
372 |
-
*/
|
373 |
-
self::$disabled_themes[] = 'newyork city';
|
374 |
-
|
375 |
-
add_action( 'wp_loaded', array( __CLASS__, 'init' ) );
|
376 |
-
|
377 |
-
/**
|
378 |
-
* @see \WP_Customize_Manager::wp_loaded
|
379 |
-
* It calls the `customize_register` action first,
|
380 |
-
* and then - the `customize_preview_init` action
|
381 |
-
*/
|
382 |
-
add_action( 'customize_register', array(
|
383 |
-
'WPGlobus_Customize_Options',
|
384 |
-
'action__customize_register'
|
385 |
-
) );
|
386 |
-
|
387 |
-
/**
|
388 |
-
* @since 1.6.0
|
389 |
-
*/
|
390 |
-
add_action( 'customize_register', array(
|
391 |
-
'WPGlobus_Customize_Options',
|
392 |
-
'action__customize_fields_settings'
|
393 |
-
) );
|
394 |
-
|
395 |
-
add_action( 'customize_preview_init', array(
|
396 |
-
'WPGlobus_Customize_Options',
|
397 |
-
'action__customize_preview_init'
|
398 |
-
), 11 );
|
399 |
-
|
400 |
-
/**
|
401 |
-
* This is called by wp-admin/customize.php
|
402 |
-
*/
|
403 |
-
|
404 |
-
add_action( 'customize_controls_enqueue_scripts', array(
|
405 |
-
'WPGlobus_Customize_Options',
|
406 |
-
'action__customize_controls_enqueue_scripts'
|
407 |
-
), 1010 );
|
408 |
-
|
409 |
-
add_action( 'wp_ajax_' . __CLASS__ . '_process_ajax', array(
|
410 |
-
'WPGlobus_Customize_Options',
|
411 |
-
'action__process_ajax'
|
412 |
-
) );
|
413 |
-
|
414 |
-
/**
|
415 |
-
* @since 1.9.8
|
416 |
-
*/
|
417 |
-
add_filter( 'wpglobus_customize_disabled_setting_mask', array(
|
418 |
-
__CLASS__,
|
419 |
-
'filter__disabled_setting_mask'
|
420 |
-
) );
|
421 |
-
|
422 |
-
}
|
423 |
-
|
424 |
-
/**
|
425 |
-
* Delayed processes.
|
426 |
-
* @since 1.6.0
|
427 |
-
*/
|
428 |
-
public static function init() {
|
429 |
-
|
430 |
-
/**
|
431 |
-
* Hook to modify the `$disabled_themes` array.
|
432 |
-
*
|
433 |
-
* @param string[] self ::$disabled_themes
|
434 |
-
* Enter the lowercase theme name (not slug, no dashes).
|
435 |
-
* For example, to disable the "Parallax One" theme,
|
436 |
-
* enter 'parallax one'.
|
437 |
-
*
|
438 |
-
* @see second param.
|
439 |
-
*
|
440 |
-
* @param string self::$theme_name Name of current theme.
|
441 |
-
* @param WP_Theme Object self::$theme Current theme.
|
442 |
-
*/
|
443 |
-
self::$disabled_themes = apply_filters( 'wpglobus_customizer_disabled_themes', self::$disabled_themes, self::$theme_name, self::$theme );
|
444 |
-
}
|
445 |
-
|
446 |
-
/**
|
447 |
-
* Ajax handler.
|
448 |
-
*/
|
449 |
-
public static function action__process_ajax() {
|
450 |
-
|
451 |
-
$result = true;
|
452 |
-
$ajax_return = array();
|
453 |
-
|
454 |
-
$post_order = isset( $_POST['order'] ) ? $_POST['order'] : null; // WPCS: input var ok, sanitization ok.
|
455 |
-
|
456 |
-
$order = array();
|
457 |
-
if ( $post_order ) {
|
458 |
-
$order['action'] = sanitize_text_field( $post_order['action'] );
|
459 |
-
$order['options'] = isset($post_order['options']) ? $post_order['options'] : array();
|
460 |
-
$order['controls'] = isset($post_order['controls']) ? $post_order['controls'] : array();
|
461 |
-
}
|
462 |
-
|
463 |
-
switch ( $order['action'] ) {
|
464 |
-
case 'wpglobus_customize_save':
|
465 |
-
/**
|
466 |
-
* Options array.
|
467 |
-
*
|
468 |
-
* @var array
|
469 |
-
*/
|
470 |
-
$options = get_option( WPGlobus::Config()->option );
|
471 |
-
|
472 |
-
foreach ( $order['options'] as $key => $value ) {
|
473 |
-
|
474 |
-
switch ( $key ) :
|
475 |
-
case 'show_selector':
|
476 |
-
$options['selector_wp_list_pages'][ $key ] = $value;
|
477 |
-
break;
|
478 |
-
case 'redirect_by_language':
|
479 |
-
// @todo check this option which do we really need?
|
480 |
-
$options['browser_redirect'][ $key ] = $value;
|
481 |
-
$options[ $key ] = $value;
|
482 |
-
break;
|
483 |
-
case 'use_nav_menu':
|
484 |
-
if ( '0' == $value ) {
|
485 |
-
$value = '';
|
486 |
-
} else {
|
487 |
-
$value = sanitize_text_field( $value );
|
488 |
-
}
|
489 |
-
$options[ $key ] = $value;
|
490 |
-
break;
|
491 |
-
case 'js_editor':
|
492 |
-
$value = trim($value);
|
493 |
-
if ( ! empty( $value ) ) {
|
494 |
-
$value = str_replace( '\"', '"', $value );
|
495 |
-
$value = str_replace( "\'", "'", $value );
|
496 |
-
$value = esc_html( $value );
|
497 |
-
}
|
498 |
-
$options[ $key ] = $value;
|
499 |
-
break;
|
500 |
-
default:
|
501 |
-
$options[ $key ] = $value;
|
502 |
-
endswitch;
|
503 |
-
|
504 |
-
}
|
505 |
-
|
506 |
-
update_option( WPGlobus::Config()->option, $options );
|
507 |
-
break;
|
508 |
-
|
509 |
-
case 'cb-controls-save':
|
510 |
-
$options = get_option( self::$options_key );
|
511 |
-
|
512 |
-
if ( empty( $order['controls'] ) ) {
|
513 |
-
if ( ! empty( $options['customize_user_control'][ self::$theme_name ] ) ) {
|
514 |
-
unset( $options['customize_user_control'][ self::$theme_name ] );
|
515 |
-
}
|
516 |
-
} else {
|
517 |
-
|
518 |
-
$cntrls = array();
|
519 |
-
foreach ( $order['controls'] as $cntr => $status ) {
|
520 |
-
$cntr = str_replace( '{{', '[', $cntr );
|
521 |
-
$cntr = str_replace( '}}', ']', $cntr );
|
522 |
-
|
523 |
-
$cntrls[ $cntr ] = $status;
|
524 |
-
}
|
525 |
-
|
526 |
-
$options['customize_user_control'][ self::$theme_name ] = $cntrls;
|
527 |
-
}
|
528 |
-
|
529 |
-
if ( empty( $options['customize_user_control'] ) ) {
|
530 |
-
unset( $options['customize_user_control'] );
|
531 |
-
}
|
532 |
-
|
533 |
-
if ( empty( $options ) ) {
|
534 |
-
delete_option( self::$options_key );
|
535 |
-
} else {
|
536 |
-
$result = update_option( self::$options_key, $options, false );
|
537 |
-
|
538 |
-
}
|
539 |
-
|
540 |
-
break;
|
541 |
-
}
|
542 |
-
|
543 |
-
if ( false === $result ) {
|
544 |
-
wp_send_json_error( $ajax_return );
|
545 |
-
}
|
546 |
-
|
547 |
-
wp_send_json_success( $ajax_return );
|
548 |
-
}
|
549 |
-
|
550 |
-
/**
|
551 |
-
* Section for message about unsupported theme.
|
552 |
-
*
|
553 |
-
* @param WP_Customize_Manager $wp_customize
|
554 |
-
* @param WP_Theme $theme
|
555 |
-
*/
|
556 |
-
public static function sorry_section( $wp_customize, $theme ) {
|
557 |
-
|
558 |
-
/**
|
559 |
-
* Sorry section
|
560 |
-
*/
|
561 |
-
$wp_customize->add_section( 'wpglobus_sorry_section', array(
|
562 |
-
'title' => esc_html__( 'WPGlobus', 'wpglobus' ),
|
563 |
-
'priority' => 0,
|
564 |
-
'panel' => 'wpglobus_settings_panel'
|
565 |
-
) );
|
566 |
-
|
567 |
-
$wp_customize->add_setting( 'sorry_message', array(
|
568 |
-
'type' => 'option',
|
569 |
-
'capability' => 'manage_options',
|
570 |
-
'transport' => 'postMessage'
|
571 |
-
) );
|
572 |
-
$wp_customize->add_control( new WPGlobusTextBox( $wp_customize,
|
573 |
-
'sorry_message', array(
|
574 |
-
'section' => 'wpglobus_sorry_section',
|
575 |
-
'settings' => 'sorry_message',
|
576 |
-
'priority' => 0,
|
577 |
-
'content' => self::get_content( 'sorry_message', $theme )
|
578 |
-
|
579 |
-
)
|
580 |
-
) );
|
581 |
-
|
582 |
-
}
|
583 |
-
|
584 |
-
/**
|
585 |
-
* Callback for register fields settings section.
|
586 |
-
*
|
587 |
-
* @since 1.6.0
|
588 |
-
*
|
589 |
-
* @param WP_Customize_Manager $wp_customize
|
590 |
-
*/
|
591 |
-
public static function action__customize_fields_settings( WP_Customize_Manager $wp_customize ) {
|
592 |
-
|
593 |
-
if ( ! self::is_theme_enabled() ) {
|
594 |
-
return;
|
595 |
-
}
|
596 |
-
|
597 |
-
/**
|
598 |
-
* SECTION: fields settings
|
599 |
-
*/
|
600 |
-
if ( 1 ) {
|
601 |
-
|
602 |
-
/**
|
603 |
-
* @since WP 4.5
|
604 |
-
* @see https://make.wordpress.org/core/2016/03/10/customizer-improvements-in-4-5/
|
605 |
-
*/
|
606 |
-
|
607 |
-
global $wp_version;
|
608 |
-
|
609 |
-
$start_section = true;
|
610 |
-
$message = '';
|
611 |
-
if ( version_compare( $wp_version, '4.5-RC1', '<' ) ) :
|
612 |
-
$start_section = false;
|
613 |
-
$message = esc_html__( 'You need to update WordPress to 4.5 or later to get Fields Settings section', 'wpglobus' );
|
614 |
-
endif;
|
615 |
-
|
616 |
-
self::$sections['wpglobus_fields_settings_section'] = 'wpglobus_fields_settings_section';
|
617 |
-
|
618 |
-
/**
|
619 |
-
* CSS tweak for the `description` field.
|
620 |
-
* @since 2.5.21
|
621 |
-
*/
|
622 |
-
$wp_customize->add_section( self::$sections['wpglobus_fields_settings_section'], array(
|
623 |
-
'title' => esc_html__( 'Fields Settings', 'wpglobus' ),
|
624 |
-
'priority' => 500,
|
625 |
-
'panel' => 'wpglobus_settings_panel',
|
626 |
-
'description' => '<div class="inner" style="background-color:#00669b;padding:5px 10px;border-radius:5px;font-size:14px;color:#fff;border:3px solid #00669b;">' .
|
627 |
-
self::get_content( 'settings_section_help' ) .
|
628 |
-
'</div>'
|
629 |
-
) );
|
630 |
-
|
631 |
-
/** setting */
|
632 |
-
$wp_customize->add_setting( 'wpglobus_fields_settings_setting', array(
|
633 |
-
'type' => 'option',
|
634 |
-
'capability' => 'manage_options',
|
635 |
-
'transport' => 'postMessage'
|
636 |
-
) );
|
637 |
-
|
638 |
-
/** control */
|
639 |
-
$wp_customize->add_control( new WPGlobusFieldsSettingsControl( $wp_customize,
|
640 |
-
self::$sections['wpglobus_fields_settings_section'], array(
|
641 |
-
'section' => self::$sections['wpglobus_fields_settings_section'],
|
642 |
-
'settings' => 'wpglobus_fields_settings_setting',
|
643 |
-
'priority' => 0,
|
644 |
-
'start_section' => $start_section,
|
645 |
-
'message' => $message
|
646 |
-
|
647 |
-
)
|
648 |
-
) );
|
649 |
-
|
650 |
-
}
|
651 |
-
|
652 |
-
}
|
653 |
-
|
654 |
-
/**
|
655 |
-
* Callback for customize_register.
|
656 |
-
*
|
657 |
-
* @param WP_Customize_Manager $wp_customize
|
658 |
-
*/
|
659 |
-
public static function action__customize_register( WP_Customize_Manager $wp_customize ) {
|
660 |
-
|
661 |
-
/**
|
662 |
-
* WPGlobus panel
|
663 |
-
*/
|
664 |
-
$wp_customize->add_panel( 'wpglobus_settings_panel', array(
|
665 |
-
'priority' => 1010,
|
666 |
-
'capability' => 'edit_theme_options',
|
667 |
-
'theme_supports' => '',
|
668 |
-
'title' => esc_html__( 'WPGlobus Settings', 'wpglobus' ),
|
669 |
-
'description' => '<div style="background-color:#eee;padding:10px 5px;">' .
|
670 |
-
self::get_content( 'welcome_message' ) .
|
671 |
-
'</div>' . self::get_content( 'deactivate_message' ),
|
672 |
-
) );
|
673 |
-
|
674 |
-
if ( ! self::is_theme_enabled() ) {
|
675 |
-
|
676 |
-
self::sorry_section( $wp_customize, self::$theme );
|
677 |
-
|
678 |
-
return;
|
679 |
-
|
680 |
-
}
|
681 |
-
|
682 |
-
/**
|
683 |
-
* Updating options for customizer accordingly with WPGlobus::Config().
|
684 |
-
*/
|
685 |
-
/** wpglobus_customize_language_selector_mode <=> wpglobus_option[show_flag_name] */
|
686 |
-
update_option( 'wpglobus_customize_language_selector_mode', WPGlobus::Config()->show_flag_name );
|
687 |
-
|
688 |
-
/** */
|
689 |
-
if ( empty( WPGlobus::Config()->nav_menu ) ) {
|
690 |
-
/**
|
691 |
-
* Menu item '--- select navigation menu ---' has value 0.
|
692 |
-
* It is used when 'Language Selector Menu' setting is not selected.
|
693 |
-
*/
|
694 |
-
update_option( 'wpglobus_customize_language_selector_menu', '0' );
|
695 |
-
} else {
|
696 |
-
update_option( 'wpglobus_customize_language_selector_menu', WPGlobus::Config()->nav_menu );
|
697 |
-
}
|
698 |
-
|
699 |
-
/** wpglobus_customize_selector_wp_list_pages <=> wpglobus_option[selector_wp_list_pages][show_selector] */
|
700 |
-
update_option( 'wpglobus_customize_selector_wp_list_pages', WPGlobus::Config()->selector_wp_list_pages );
|
701 |
-
|
702 |
-
/** wpglobus_customize_css_editor <=> wpglobus_option[css_editor] */
|
703 |
-
update_option( 'wpglobus_customize_css_editor', WPGlobus::Config()->css_editor );
|
704 |
-
|
705 |
-
/** wpglobus_customize_redirect_by_language <=> wpglobus_option[browser_redirect][redirect_by_language] */
|
706 |
-
if ( empty( WPGlobus::Config()->browser_redirect['redirect_by_language'] ) || (int) WPGlobus::Config()->browser_redirect['redirect_by_language'] == 0 ) {
|
707 |
-
update_option( 'wpglobus_customize_redirect_by_language', '' );
|
708 |
-
} else {
|
709 |
-
update_option( 'wpglobus_customize_redirect_by_language', WPGlobus::Config()->browser_redirect['redirect_by_language'] );
|
710 |
-
}
|
711 |
-
|
712 |
-
/** wpglobus_customize_js_editor <=> wpglobus_option[js_editor] */
|
713 |
-
if ( empty( WPGlobus::Config()->js_editor ) ) {
|
714 |
-
update_option( 'wpglobus_customize_js_editor', '' );
|
715 |
-
} else {
|
716 |
-
update_option( 'wpglobus_customize_js_editor', WPGlobus::Config()->js_editor );
|
717 |
-
}
|
718 |
-
|
719 |
-
|
720 |
-
/** end updating options */
|
721 |
-
|
722 |
-
/**
|
723 |
-
* Init section priority.
|
724 |
-
*/
|
725 |
-
$section_priority = 0;
|
726 |
-
|
727 |
-
/**
|
728 |
-
* SECTION: Help.
|
729 |
-
*/
|
730 |
-
if ( 0 ) {
|
731 |
-
|
732 |
-
$section_priority = $section_priority + 0;
|
733 |
-
|
734 |
-
self::$sections['wpglobus_help_section'] = 'wpglobus_help_section';
|
735 |
-
$wp_customize->add_section( self::$sections['wpglobus_help_section'], array(
|
736 |
-
'title' => esc_html__( 'Help', 'wpglobus' ),
|
737 |
-
'priority' => $section_priority,
|
738 |
-
'panel' => 'wpglobus_settings_panel',
|
739 |
-
) );
|
740 |
-
|
741 |
-
$wp_customize->add_control( 'wpglobus_customize_add_onsZZZ', array(
|
742 |
-
'section' => self::$sections['wpglobus_help_section'],
|
743 |
-
'settings' => array(),
|
744 |
-
'type' => 'button',
|
745 |
-
)
|
746 |
-
);
|
747 |
-
}
|
748 |
-
/** end SECTION: Help */
|
749 |
-
|
750 |
-
/**
|
751 |
-
* SECTION: Language.
|
752 |
-
*/
|
753 |
-
if ( 1 ) {
|
754 |
-
|
755 |
-
$section_priority = $section_priority + 10;
|
756 |
-
|
757 |
-
$wp_customize->add_section( 'wpglobus_languages_section', array(
|
758 |
-
'title' => esc_html__( 'Languages', 'wpglobus' ),
|
759 |
-
'priority' => $section_priority,
|
760 |
-
'panel' => 'wpglobus_settings_panel'
|
761 |
-
) );
|
762 |
-
self::$sections['wpglobus_languages_section'] = 'wpglobus_languages_section';
|
763 |
-
|
764 |
-
/**
|
765 |
-
* Setting: Enabled languages.
|
766 |
-
*/
|
767 |
-
$wp_customize->add_setting( 'wpglobus_customize_enabled_languages', array(
|
768 |
-
'type' => 'option',
|
769 |
-
'capability' => 'manage_options',
|
770 |
-
'transport' => 'postMessage'
|
771 |
-
) );
|
772 |
-
$wp_customize->add_control( new WPGlobusCheckBoxSet( $wp_customize,
|
773 |
-
'wpglobus_customize_enabled_languages', array(
|
774 |
-
'section' => 'wpglobus_languages_section',
|
775 |
-
'settings' => 'wpglobus_customize_enabled_languages',
|
776 |
-
'priority' => 0,
|
777 |
-
'items' => WPGlobus::Config()->enabled_languages,
|
778 |
-
'label' => esc_html__( 'Enabled Languages', 'wpglobus' ),
|
779 |
-
'checkbox_class' => 'wpglobus-listen-change wpglobus-language-item',
|
780 |
-
'description' => esc_html__( 'These languages are currently enabled on your site.', 'wpglobus' )
|
781 |
-
|
782 |
-
)
|
783 |
-
) );
|
784 |
-
self::$settings['wpglobus_languages_section']['wpglobus_customize_enabled_languages']['type'] = 'checkbox_set';
|
785 |
-
/** @see option wpglobus_option['enabled_languages'] */
|
786 |
-
self::$settings['wpglobus_languages_section']['wpglobus_customize_enabled_languages']['option'] = 'enabled_languages';
|
787 |
-
|
788 |
-
/**
|
789 |
-
* Setting: Add languages.
|
790 |
-
*/
|
791 |
-
/** Generate array $more_languages */
|
792 |
-
/** @var array $more_languages */
|
793 |
-
$more_languages = array();
|
794 |
-
$more_languages['select'] = '---- select ----';
|
795 |
-
|
796 |
-
foreach ( WPGlobus::Config()->flag as $code => $file ) {
|
797 |
-
if ( ! in_array( $code, WPGlobus::Config()->enabled_languages ) ) {
|
798 |
-
$lang_in_en = '';
|
799 |
-
if ( ! empty( WPGlobus::Config()->en_language_name[ $code ] ) ) {
|
800 |
-
$lang_in_en = ' (' . WPGlobus::Config()->en_language_name[ $code ] . ')';
|
801 |
-
}
|
802 |
-
// '<img src="' . WPGlobus::Config()->flags_url . $file . '" />'
|
803 |
-
$more_languages[ $code ] = WPGlobus::Config()->language_name[ $code ] . $lang_in_en;
|
804 |
-
}
|
805 |
-
}
|
806 |
-
|
807 |
-
$desc_add_languages =
|
808 |
-
esc_html__( 'Choose a language you would like to enable.', 'wpglobus' ).
|
809 |
-
'<br />'.
|
810 |
-
esc_html__( 'Press the [Save & Publish] button to confirm.', 'wpglobus' ).
|
811 |
-
'<br />';
|
812 |
-
$desc_add_languages .= sprintf(
|
813 |
-
// translators: %1$s and %2$s - placeholders to insert HTML link around 'here'
|
814 |
-
esc_html__( 'or Add new Language %1$s here %2$s', 'wpglobus' ),
|
815 |
-
'<a style="text-decoration:underline;" href="' . admin_url() . 'admin.php?page=' . WPGlobus::LANGUAGE_EDIT_PAGE . '&action=add" target="_blank">',
|
816 |
-
'</a>'
|
817 |
-
);
|
818 |
-
|
819 |
-
$wp_customize->add_setting( 'wpglobus_customize_add_language', array(
|
820 |
-
'type' => 'option',
|
821 |
-
'capability' => 'manage_options',
|
822 |
-
'transport' => 'postMessage'
|
823 |
-
) );
|
824 |
-
$wp_customize->add_control( 'wpglobus_add_languages_select_box', array(
|
825 |
-
'settings' => 'wpglobus_customize_add_language',
|
826 |
-
'label' => esc_html__( 'Add Languages', 'wpglobus' ),
|
827 |
-
'section' => 'wpglobus_languages_section',
|
828 |
-
'type' => 'select',
|
829 |
-
'priority' => 10,
|
830 |
-
'choices' => $more_languages,
|
831 |
-
'description' => $desc_add_languages
|
832 |
-
) );
|
833 |
-
//self::$settings[ 'wpglobus_languages_section' ][ 'wpglobus_customize_add_language' ] = 'select';
|
834 |
-
|
835 |
-
/**
|
836 |
-
* Setting: Language Selector Mode.
|
837 |
-
*/
|
838 |
-
$wp_customize->add_setting( 'wpglobus_customize_language_selector_mode', array(
|
839 |
-
'type' => 'option',
|
840 |
-
'capability' => 'manage_options',
|
841 |
-
'transport' => 'refresh'
|
842 |
-
#'transport' => 'postMessage'
|
843 |
-
) );
|
844 |
-
$wp_customize->add_control( 'wpglobus_customize_language_selector_mode', array(
|
845 |
-
'settings' => 'wpglobus_customize_language_selector_mode',
|
846 |
-
'label' => esc_html__( 'Language Selector Mode', 'wpglobus' ),
|
847 |
-
'section' => 'wpglobus_languages_section',
|
848 |
-
'type' => 'select',
|
849 |
-
'priority' => 20,
|
850 |
-
'choices' => array(
|
851 |
-
'code' => esc_html__( 'Two-letter Code with flag (en, ru, it, etc.)', 'wpglobus' ),
|
852 |
-
'full_name' => esc_html__( 'Full Name (English, Russian, Italian, etc.)', 'wpglobus' ),
|
853 |
-
/* @since 1.2.1 */
|
854 |
-
'name' => esc_html__( 'Full Name with flag (English, Russian, Italian, etc.)', 'wpglobus' ),
|
855 |
-
'empty' => esc_html__( 'Flags only', 'wpglobus' )
|
856 |
-
),
|
857 |
-
'description' => esc_html__( 'Choose the way language name and country flag are shown in the drop-down menu', 'wpglobus' )
|
858 |
-
) );
|
859 |
-
self::$settings['wpglobus_languages_section']['wpglobus_customize_language_selector_mode']['type'] = 'select';
|
860 |
-
/** @see option wpglobus_option['show_flag_name'] */
|
861 |
-
self::$settings['wpglobus_languages_section']['wpglobus_customize_language_selector_mode']['option'] = 'show_flag_name';
|
862 |
-
|
863 |
-
/**
|
864 |
-
* @see https://make.wordpress.org/core/2016/03/22/implementing-selective-refresh-support-for-widgets/
|
865 |
-
* @see https://make.wordpress.org/core/2016/03/10/customizer-improvements-in-4-5/
|
866 |
-
*
|
867 |
-
* $wp_customize->selective_refresh->add_partial( 'wpglobus_customize_language_selector_mode', array(
|
868 |
-
* 'selector' => '#site-navigation',
|
869 |
-
* 'render_callback' => function() {
|
870 |
-
* wp_nav_menu();
|
871 |
-
* },
|
872 |
-
* ) );
|
873 |
-
* // */
|
874 |
-
|
875 |
-
/**
|
876 |
-
* Setting: Language Selector Menu.
|
877 |
-
*/
|
878 |
-
/** @var array $nav_menus */
|
879 |
-
$nav_menus = WPGlobus::_get_nav_menus();
|
880 |
-
|
881 |
-
$menus = array();
|
882 |
-
|
883 |
-
foreach ( $nav_menus as $menu ) {
|
884 |
-
$menus[ $menu->slug ] = $menu->name;
|
885 |
-
}
|
886 |
-
if ( ! empty( $nav_menus ) && count( $nav_menus ) > 1 ) {
|
887 |
-
$menus['all'] = 'All';
|
888 |
-
}
|
889 |
-
if ( ! empty( $nav_menus ) ) {
|
890 |
-
array_unshift(
|
891 |
-
$menus,
|
892 |
-
'--- ' . esc_html__('select navigation menu', 'wpglobus'). ' ---'
|
893 |
-
);
|
894 |
-
}
|
895 |
-
|
896 |
-
if ( empty( $menus ) ) {
|
897 |
-
|
898 |
-
$wp_customize->add_control( new WPGlobusLink( $wp_customize,
|
899 |
-
'wpglobus_customize_language_selector_menu', array(
|
900 |
-
'section' => 'wpglobus_languages_section',
|
901 |
-
'title' => esc_html__( 'Language Selector Menu', 'wpglobus' ),
|
902 |
-
'settings' => array(),
|
903 |
-
'priority' => 30,
|
904 |
-
'type' => 'wpglobus_link',
|
905 |
-
/**
|
906 |
-
* We are in Customizer, so we can "focus" to the menus and not go to menus in admin.
|
907 |
-
* The JS code and the message below are copied from
|
908 |
-
* @see WP_Nav_Menu_Widget::form
|
909 |
-
*/
|
910 |
-
'href' => esc_attr( 'javascript: wp.customize.panel( "nav_menus" ).focus();' ),
|
911 |
-
'text' => esc_html__( 'No menus have been created yet. Create some.', 'wpglobus' ),
|
912 |
-
'description' => esc_html__( 'Choose the navigation menu where the language selector will be shown', 'wpglobus' ),
|
913 |
-
)
|
914 |
-
) );
|
915 |
-
|
916 |
-
self::$settings['wpglobus_languages_section']['wpglobus_customize_language_selector_menu']['type'] = 'wpglobus_link';
|
917 |
-
self::$settings['wpglobus_languages_section']['wpglobus_customize_language_selector_menu']['option'] = array();
|
918 |
-
|
919 |
-
} else {
|
920 |
-
|
921 |
-
$wp_customize->add_setting( 'wpglobus_customize_language_selector_menu', array(
|
922 |
-
'type' => 'option',
|
923 |
-
'capability' => 'manage_options',
|
924 |
-
'transport' => 'postMessage'
|
925 |
-
) );
|
926 |
-
$wp_customize->add_control( 'wpglobus_customize_language_selector_menu', array(
|
927 |
-
'settings' => 'wpglobus_customize_language_selector_menu',
|
928 |
-
'label' => esc_html__( 'Language Selector Menu', 'wpglobus' ),
|
929 |
-
'section' => 'wpglobus_languages_section',
|
930 |
-
'type' => 'select',
|
931 |
-
'priority' => 30,
|
932 |
-
'choices' => $menus,
|
933 |
-
'description' => esc_html__( 'Choose the navigation menu where the language selector will be shown', 'wpglobus' ),
|
934 |
-
) );
|
935 |
-
|
936 |
-
self::$settings['wpglobus_languages_section']['wpglobus_customize_language_selector_menu']['type'] = 'select';
|
937 |
-
/** @see option wpglobus_option['use_nav_menu'] */
|
938 |
-
self::$settings['wpglobus_languages_section']['wpglobus_customize_language_selector_menu']['option'] = 'use_nav_menu';
|
939 |
-
|
940 |
-
}
|
941 |
-
|
942 |
-
/**
|
943 |
-
* Setting: "All Pages" menus Language selector.
|
944 |
-
*/
|
945 |
-
$wp_customize->add_setting( 'wpglobus_customize_selector_wp_list_pages', array(
|
946 |
-
'type' => 'option',
|
947 |
-
'capability' => 'manage_options',
|
948 |
-
'transport' => 'postMessage'
|
949 |
-
) );
|
950 |
-
$wp_customize->add_control( new WPGlobusCheckBox( $wp_customize,
|
951 |
-
'wpglobus_customize_selector_wp_list_pages', array(
|
952 |
-
'settings' => 'wpglobus_customize_selector_wp_list_pages',
|
953 |
-
'title' => esc_html__( '"All Pages" menus Language selector', 'wpglobus' ),
|
954 |
-
'section' => 'wpglobus_languages_section',
|
955 |
-
'priority' => 40,
|
956 |
-
'label' => esc_html__( 'Adds language selector to the menus that automatically list all existing pages (using `wp_list_pages`)', 'wpglobus' ),
|
957 |
-
)
|
958 |
-
) );
|
959 |
-
self::$settings['wpglobus_languages_section']['wpglobus_customize_selector_wp_list_pages']['type'] = 'wpglobus_checkbox';
|
960 |
-
/** @see option wpglobus_option['selector_wp_list_pages']['show_selector'] */
|
961 |
-
self::$settings['wpglobus_languages_section']['wpglobus_customize_selector_wp_list_pages']['option'] = 'show_selector';
|
962 |
-
|
963 |
-
/**
|
964 |
-
* Setting: Custom CSS.
|
965 |
-
*/
|
966 |
-
$wp_customize->add_setting( 'wpglobus_customize_css_editor', array(
|
967 |
-
'type' => 'option',
|
968 |
-
'capability' => 'manage_options',
|
969 |
-
'transport' => 'postMessage'
|
970 |
-
) );
|
971 |
-
$wp_customize->add_control( 'wpglobus_customize_css_editor', array(
|
972 |
-
'settings' => 'wpglobus_customize_css_editor',
|
973 |
-
'label' => esc_html__( 'Custom CSS', 'wpglobus' ),
|
974 |
-
'section' => 'wpglobus_languages_section',
|
975 |
-
'type' => 'textarea',
|
976 |
-
'priority' => 50,
|
977 |
-
'description' => esc_html__( 'Here you can enter the CSS rules to adjust the language selector menu for your theme. Look at the examples in the `style-samples.css` file.', 'wpglobus' ),
|
978 |
-
) );
|
979 |
-
self::$settings['wpglobus_languages_section']['wpglobus_customize_css_editor']['type'] = 'textarea';
|
980 |
-
/** @see option wpglobus_option['css_editor'] */
|
981 |
-
self::$settings['wpglobus_languages_section']['wpglobus_customize_css_editor']['option'] = 'css_editor';
|
982 |
-
|
983 |
-
}
|
984 |
-
/** end SECTION: Language */
|
985 |
-
|
986 |
-
/**
|
987 |
-
* SECTION: Post types.
|
988 |
-
*/
|
989 |
-
if ( 1 ) {
|
990 |
-
|
991 |
-
$section_priority = $section_priority + 10;
|
992 |
-
|
993 |
-
$section = 'wpglobus_post_types_section';
|
994 |
-
|
995 |
-
$wp_customize->add_section( $section, array(
|
996 |
-
'title' => esc_html__( 'Post types', 'wpglobus' ),
|
997 |
-
'priority' => $section_priority,
|
998 |
-
'panel' => 'wpglobus_settings_panel'
|
999 |
-
) );
|
1000 |
-
self::$sections[ $section ] = $section;
|
1001 |
-
|
1002 |
-
if ( false === ( $enabled_post_types = get_transient( self::$enabled_post_types_key ) ) ) {
|
1003 |
-
|
1004 |
-
$post_types = get_post_types();
|
1005 |
-
|
1006 |
-
$enabled_post_types = array();
|
1007 |
-
|
1008 |
-
foreach ( $post_types as $post_type ) {
|
1009 |
-
/**
|
1010 |
-
* @see "SECTION: Post types" in includes\options\class-wpglobus-options.php for complete post type array.
|
1011 |
-
*/
|
1012 |
-
if ( ! in_array( $post_type, WPGlobus_Post_Types::hidden_types(), true ) ) {
|
1013 |
-
|
1014 |
-
/**
|
1015 |
-
* Obsolete from 1.9.10.
|
1016 |
-
* @todo Remove after testing.
|
1017 |
-
*/
|
1018 |
-
/**
|
1019 |
-
|
1020 |
-
if ( in_array( $post_type, array( 'post', 'page' ) ) ) {
|
1021 |
-
$enabled_post_types[ $post_type ] = $post_type;
|
1022 |
-
continue;
|
1023 |
-
}
|
1024 |
-
|
1025 |
-
foreach ( WPGlobus::O()->vendors_scripts as $script => $status ) {
|
1026 |
-
|
1027 |
-
if ( empty( $status ) ) {
|
1028 |
-
continue;
|
1029 |
-
}
|
1030 |
-
|
1031 |
-
if ( $script == 'ACF' || $script == 'ACFPRO' ) {
|
1032 |
-
if ( in_array( $post_type, array( 'acf-field-group', 'acf-field', 'acf' ) ) ) {
|
1033 |
-
continue 2;
|
1034 |
-
}
|
1035 |
-
}
|
1036 |
-
|
1037 |
-
if ( $script == 'WOOCOMMERCE' ) {
|
1038 |
-
if ( in_array(
|
1039 |
-
$post_type,
|
1040 |
-
array(
|
1041 |
-
'product',
|
1042 |
-
'product_tag',
|
1043 |
-
'product_cat',
|
1044 |
-
'shop_order',
|
1045 |
-
'shop_coupon',
|
1046 |
-
'product_variation',
|
1047 |
-
'shop_order_refund',
|
1048 |
-
'shop_webhook'
|
1049 |
-
)
|
1050 |
-
) ) {
|
1051 |
-
continue 2;
|
1052 |
-
}
|
1053 |
-
}
|
1054 |
-
|
1055 |
-
if ( $script == 'WPCF7' ) {
|
1056 |
-
if ( in_array( $post_type, array( 'wpcf7_contact_form' ) ) ) {
|
1057 |
-
continue 2;
|
1058 |
-
}
|
1059 |
-
}
|
1060 |
-
|
1061 |
-
}
|
1062 |
-
// */
|
1063 |
-
|
1064 |
-
$enabled_post_types[ $post_type ] = $post_type;
|
1065 |
-
|
1066 |
-
}
|
1067 |
-
}
|
1068 |
-
|
1069 |
-
set_transient( self::$enabled_post_types_key, $enabled_post_types, 60 );
|
1070 |
-
|
1071 |
-
}
|
1072 |
-
|
1073 |
-
foreach ( $enabled_post_types as $post_type ) :
|
1074 |
-
|
1075 |
-
$status = '';
|
1076 |
-
|
1077 |
-
if ( isset( WPGlobus::Config()->extended_options['post_type'][ $post_type ] ) ) {
|
1078 |
-
|
1079 |
-
if ( WPGlobus::Config()->extended_options['post_type'][ $post_type ] == 1 ) {
|
1080 |
-
$status = '1';
|
1081 |
-
}
|
1082 |
-
|
1083 |
-
} else {
|
1084 |
-
$status = '1';
|
1085 |
-
}
|
1086 |
-
|
1087 |
-
update_option( 'wpglobus_customize_post_type_' . $post_type, $status );
|
1088 |
-
|
1089 |
-
endforeach;
|
1090 |
-
|
1091 |
-
$i = 0;
|
1092 |
-
foreach ( $enabled_post_types as $post_type ) :
|
1093 |
-
|
1094 |
-
$pst = 'wpglobus_customize_post_type_' . $post_type;
|
1095 |
-
|
1096 |
-
$wp_customize->add_setting( $pst, array(
|
1097 |
-
'type' => 'option',
|
1098 |
-
'capability' => 'manage_options',
|
1099 |
-
'transport' => 'postMessage'
|
1100 |
-
) );
|
1101 |
-
|
1102 |
-
$title = '';
|
1103 |
-
if ( $i == 0 ) {
|
1104 |
-
$title = esc_html__( 'Uncheck to disable WPGlobus', 'wpglobus' );
|
1105 |
-
}
|
1106 |
-
|
1107 |
-
$wp_customize->add_control( new WPGlobusCheckBox( $wp_customize,
|
1108 |
-
$pst, array(
|
1109 |
-
'settings' => $pst,
|
1110 |
-
'title' => $title,
|
1111 |
-
'label' => $post_type,
|
1112 |
-
'section' => $section,
|
1113 |
-
#'default' => '1',
|
1114 |
-
'priority' => 10,
|
1115 |
-
)
|
1116 |
-
) );
|
1117 |
-
|
1118 |
-
$i ++;
|
1119 |
-
self::$settings[ $section ][ $pst ]['type'] = 'wpglobus_checkbox';
|
1120 |
-
/** @see option wpglobus_option['post_type'] */
|
1121 |
-
self::$settings[ $section ][ $pst ]['option'] = 'post_type';
|
1122 |
-
|
1123 |
-
endforeach;
|
1124 |
-
|
1125 |
-
};
|
1126 |
-
/** end SECTION: Post types */
|
1127 |
-
|
1128 |
-
/**
|
1129 |
-
* SECTION: Redirect.
|
1130 |
-
*/
|
1131 |
-
if ( 1 ) {
|
1132 |
-
|
1133 |
-
$section_priority = $section_priority + 10;
|
1134 |
-
|
1135 |
-
self::$sections['wpglobus_redirect_section'] = 'wpglobus_redirect_section';
|
1136 |
-
|
1137 |
-
$wp_customize->add_section( self::$sections['wpglobus_redirect_section'], array(
|
1138 |
-
'title' => esc_html__( 'Redirect', 'wpglobus' ),
|
1139 |
-
'priority' => $section_priority,
|
1140 |
-
'panel' => 'wpglobus_settings_panel',
|
1141 |
-
) );
|
1142 |
-
|
1143 |
-
/**
|
1144 |
-
* Option
|
1145 |
-
* [browser_redirect] => Array
|
1146 |
-
* (
|
1147 |
-
* [redirect_by_language] => 0
|
1148 |
-
* )
|
1149 |
-
*/
|
1150 |
-
|
1151 |
-
/**
|
1152 |
-
* Setting wpglobus_customize_redirect_by_language.
|
1153 |
-
*/
|
1154 |
-
$wp_customize->add_setting( 'wpglobus_customize_redirect_by_language', array(
|
1155 |
-
'type' => 'option',
|
1156 |
-
'capability' => 'manage_options',
|
1157 |
-
'transport' => 'postMessage'
|
1158 |
-
) );
|
1159 |
-
$wp_customize->add_control( new WPGlobusCheckBox( $wp_customize,
|
1160 |
-
'wpglobus_customize_redirect_by_language', array(
|
1161 |
-
'section' => self::$sections['wpglobus_redirect_section'],
|
1162 |
-
'settings' => 'wpglobus_customize_redirect_by_language',
|
1163 |
-
'title' => esc_html__( 'Choose the language automatically, based on:', 'wpglobus' ),
|
1164 |
-
'priority' => 10,
|
1165 |
-
'label' => esc_html__( 'Preferred language set in the browser', 'wpglobus' ),
|
1166 |
-
'description' => esc_html__('When a user comes to the site for the first time, try to find the best matching language version of the page.', 'wpglobus')
|
1167 |
-
)
|
1168 |
-
) );
|
1169 |
-
|
1170 |
-
self::$settings[ self::$sections['wpglobus_redirect_section'] ]['wpglobus_customize_redirect_by_language']['type'] = 'wpglobus_checkbox';
|
1171 |
-
/** @see option wpglobus_option[browser_redirect][redirect_by_language] */
|
1172 |
-
self::$settings[ self::$sections['wpglobus_redirect_section'] ]['wpglobus_customize_redirect_by_language']['option'] = 'redirect_by_language';
|
1173 |
-
|
1174 |
-
}
|
1175 |
-
/** end SECTION: Redirect */
|
1176 |
-
|
1177 |
-
/**
|
1178 |
-
* SECTION: Custom JS Code.
|
1179 |
-
*/
|
1180 |
-
if ( 1 ) {
|
1181 |
-
|
1182 |
-
$section_priority = $section_priority + 10;
|
1183 |
-
|
1184 |
-
self::$sections['wpglobus_js_editor_section'] = 'wpglobus_js_editor_section';
|
1185 |
-
|
1186 |
-
/**
|
1187 |
-
* Setting 'wpglobus_customize_js_editor'.
|
1188 |
-
*/
|
1189 |
-
|
1190 |
-
/**
|
1191 |
-
* class WP_Customize_Code_Editor_Control
|
1192 |
-
* @since WordPress 4.9.0
|
1193 |
-
* @see https://developer.wordpress.org/reference/classes/wp_customize_code_editor_control/
|
1194 |
-
*/
|
1195 |
-
if ( ! class_exists('WP_Customize_Code_Editor_Control') ) {
|
1196 |
-
|
1197 |
-
$content = esc_html__( 'To add a Custom JS Code in Customizer, you need to upgrade WordPress to version 4.9 or later.', 'wpglobus' );
|
1198 |
-
$content .= '<br /><br />' .
|
1199 |
-
esc_html__( 'With your version of WordPress, please use the', 'wpglobus' ) .
|
1200 |
-
' <a style="text-decoration:underline;" target="_blank" href="' . esc_url( admin_url() . 'admin.php?page=' . WPGlobus::OPTIONS_PAGE_SLUG . '&tab=0' ) . '">' .
|
1201 |
-
esc_html__( 'WPGlobus Settings page', 'wpglobus' ) .
|
1202 |
-
'.</a>';
|
1203 |
-
|
1204 |
-
$wp_customize->add_section( self::$sections['wpglobus_js_editor_section'], array(
|
1205 |
-
'title' => esc_html__( 'Custom JS Code', 'wpglobus' ),
|
1206 |
-
'priority' => $section_priority,
|
1207 |
-
'panel' => 'wpglobus_settings_panel',
|
1208 |
-
) );
|
1209 |
-
|
1210 |
-
$wp_customize->add_setting( 'wpglobus_customize_js_editor', array(
|
1211 |
-
'type' => 'option',
|
1212 |
-
'capability' => 'manage_options',
|
1213 |
-
'transport' => 'postMessage'
|
1214 |
-
) );
|
1215 |
-
|
1216 |
-
$wp_customize->add_control( new WPGlobusTextBox( $wp_customize,
|
1217 |
-
'wpglobus_customize_js_editor', array(
|
1218 |
-
'section' => self::$sections['wpglobus_js_editor_section'],
|
1219 |
-
'settings' => 'wpglobus_customize_js_editor',
|
1220 |
-
'content' => $content
|
1221 |
-
)
|
1222 |
-
) );
|
1223 |
-
|
1224 |
-
} else {
|
1225 |
-
|
1226 |
-
$wp_customize->add_section( self::$sections['wpglobus_js_editor_section'], array(
|
1227 |
-
'title' => esc_html__( 'Custom JS Code', 'wpglobus' ),
|
1228 |
-
'priority' => $section_priority,
|
1229 |
-
'panel' => 'wpglobus_settings_panel',
|
1230 |
-
) );
|
1231 |
-
|
1232 |
-
|
1233 |
-
$wp_customize->add_setting( 'wpglobus_customize_js_editor', array(
|
1234 |
-
'type' => 'option',
|
1235 |
-
'capability' => 'manage_options',
|
1236 |
-
'transport' => 'postMessage'
|
1237 |
-
) );
|
1238 |
-
$wp_customize->add_control( new WP_Customize_Code_Editor_Control( $wp_customize,
|
1239 |
-
'wpglobus_customize_js_editor', array(
|
1240 |
-
'code_type' => 'javascript',
|
1241 |
-
#'mode' => 'javascript',
|
1242 |
-
'input_attrs' => array('rows'=>80),
|
1243 |
-
'section' => self::$sections['wpglobus_js_editor_section'],
|
1244 |
-
'settings' => 'wpglobus_customize_js_editor',
|
1245 |
-
'title' => esc_html__( 'Title', 'wpglobus' ),
|
1246 |
-
'priority' => 10,
|
1247 |
-
'label' => esc_html__( 'Custom JS Code', 'wpglobus' ),
|
1248 |
-
'description' => esc_html__( '(Paste your JS code here.)', 'wpglobus' )
|
1249 |
-
)
|
1250 |
-
) );
|
1251 |
-
|
1252 |
-
self::$settings[ self::$sections['wpglobus_js_editor_section'] ]['wpglobus_customize_js_editor']['type'] = 'code_editor';
|
1253 |
-
/** @see option wpglobus_option['css_editor'] */
|
1254 |
-
self::$settings[ self::$sections['wpglobus_js_editor_section'] ]['wpglobus_customize_js_editor']['option'] = 'js_editor';
|
1255 |
-
|
1256 |
-
}
|
1257 |
-
}
|
1258 |
-
/** end SECTION: Custom JS Code */
|
1259 |
-
|
1260 |
-
/**
|
1261 |
-
* SECTION: Add ons.
|
1262 |
-
*/
|
1263 |
-
if ( 1 ) {
|
1264 |
-
|
1265 |
-
$section_priority = $section_priority + 10;
|
1266 |
-
|
1267 |
-
global $wp_version;
|
1268 |
-
|
1269 |
-
self::$sections['wpglobus_addons_section'] = 'wpglobus_addons_section';
|
1270 |
-
|
1271 |
-
if ( version_compare( $wp_version, '4.5-RC1', '<' ) ) {
|
1272 |
-
|
1273 |
-
$wp_customize->add_section( self::$sections['wpglobus_addons_section'], array(
|
1274 |
-
'title' => esc_html__( 'Add-ons', 'wpglobus' ),
|
1275 |
-
'priority' => $section_priority,
|
1276 |
-
'panel' => 'wpglobus_settings_panel',
|
1277 |
-
) );
|
1278 |
-
|
1279 |
-
/** Add ons setting */
|
1280 |
-
$wp_customize->add_setting( 'wpglobus_customize_add_ons', array(
|
1281 |
-
'type' => 'option',
|
1282 |
-
'capability' => 'manage_options',
|
1283 |
-
'transport' => 'postMessage',
|
1284 |
-
) );
|
1285 |
-
|
1286 |
-
$wp_customize->add_control( new WPGlobusCheckBox( $wp_customize,
|
1287 |
-
'wpglobus_customize_add_ons', array(
|
1288 |
-
'settings' => 'wpglobus_customize_add_ons',
|
1289 |
-
'title' => esc_html__( 'Title', 'wpglobus' ),
|
1290 |
-
'label' => esc_html__( 'Label', 'wpglobus' ),
|
1291 |
-
'section' => self::$sections['wpglobus_addons_section'],
|
1292 |
-
'type' => 'checkbox',
|
1293 |
-
'priority' => 10,
|
1294 |
-
'description' => esc_html__( 'Description', 'wpglobus' ),
|
1295 |
-
)
|
1296 |
-
) );
|
1297 |
-
|
1298 |
-
} else {
|
1299 |
-
|
1300 |
-
/**
|
1301 |
-
* Changes in WP 4.5
|
1302 |
-
* @link https://make.wordpress.org/core/2016/03/10/customizer-improvements-in-4-5/
|
1303 |
-
*/
|
1304 |
-
|
1305 |
-
$wp_customize->add_section( self::$sections['wpglobus_addons_section'], array(
|
1306 |
-
'title' => esc_html__( 'Add-ons', 'wpglobus' ),
|
1307 |
-
'priority' => $section_priority,
|
1308 |
-
'panel' => 'wpglobus_settings_panel',
|
1309 |
-
) );
|
1310 |
-
|
1311 |
-
$wp_customize->add_control( 'wpglobus_customize_add_ons', array(
|
1312 |
-
'section' => self::$sections['wpglobus_addons_section'],
|
1313 |
-
'settings' => array(),
|
1314 |
-
'type' => 'button',
|
1315 |
-
)
|
1316 |
-
);
|
1317 |
-
}
|
1318 |
-
}
|
1319 |
-
/** end SECTION: Add ons */
|
1320 |
-
|
1321 |
-
/**
|
1322 |
-
* Fires to add customize settings.
|
1323 |
-
*
|
1324 |
-
* @since 1.4.6
|
1325 |
-
*
|
1326 |
-
* @param WP_Customize_Manager $wp_customize The WP Customize Manager.
|
1327 |
-
*/
|
1328 |
-
do_action( 'wpglobus_customize_register', $wp_customize );
|
1329 |
-
|
1330 |
-
/** @var array $res */
|
1331 |
-
$res = apply_filters( 'wpglobus_customize_data', array(
|
1332 |
-
'sections' => self::$sections,
|
1333 |
-
'settings' => self::$settings,
|
1334 |
-
) );
|
1335 |
-
|
1336 |
-
self::$sections = $res['sections'];
|
1337 |
-
self::$settings = $res['settings'];
|
1338 |
-
|
1339 |
-
}
|
1340 |
-
|
1341 |
-
/**
|
1342 |
-
* Get content for WPGlobusTextBox element.
|
1343 |
-
*
|
1344 |
-
* @param string $control
|
1345 |
-
* @param mixed $attrs
|
1346 |
-
*
|
1347 |
-
* @return string
|
1348 |
-
*/
|
1349 |
-
public static function get_content( $control = '', $attrs = null ) {
|
1350 |
-
|
1351 |
-
if ( '' == $control ) {
|
1352 |
-
return '';
|
1353 |
-
}
|
1354 |
-
|
1355 |
-
$content = '';
|
1356 |
-
switch ( $control ) :
|
1357 |
-
case 'settings_section_help' :
|
1358 |
-
$content = sprintf(
|
1359 |
-
esc_html__( 'Here you can specify which fields should be considered multilingual by WPGlobus. To exclude a field, uncheck it and then press the button %s below.', 'wpglobus'),
|
1360 |
-
'<strong>' . esc_html__( 'Save & Reload', 'wpglobus' ) . '</strong>'
|
1361 |
-
);
|
1362 |
-
|
1363 |
-
break;
|
1364 |
-
case 'welcome_message' :
|
1365 |
-
|
1366 |
-
$content = '<div style="width:100%;">' .
|
1367 |
-
esc_html__( 'Thank you for installing WPGlobus!', 'wpglobus' ) .
|
1368 |
-
'<br/>' .
|
1369 |
-
'• ' .
|
1370 |
-
'<a style="text-decoration:underline;" target="_blank" href="' . admin_url() . 'admin.php?page=' . WPGlobus::PAGE_WPGLOBUS_ABOUT . '">' .
|
1371 |
-
esc_html__( 'Read About WPGlobus', 'wpglobus' ) .
|
1372 |
-
'</a>' .
|
1373 |
-
'<br/>' .
|
1374 |
-
'• ' . esc_html__( 'Click the <strong>[Languages]</strong> tab at the left to setup the options.', 'wpglobus' ) .
|
1375 |
-
#'<br/>' .
|
1376 |
-
#'• ' . esc_html__( 'Use the <strong>[Languages Table]</strong> section to add a new language or to edit the language attributes: name, code, flag icon, etc.', 'wpglobus' ) .
|
1377 |
-
'<br/>' .
|
1378 |
-
'<br/>' .
|
1379 |
-
esc_html__( 'Should you have any questions or comments, please do not hesitate to contact us.', 'wpglobus' ) .
|
1380 |
-
'<br/>' .
|
1381 |
-
'<br/>' .
|
1382 |
-
'<em>' .
|
1383 |
-
esc_html__( 'Sincerely Yours,', 'wpglobus' ) .
|
1384 |
-
'<br/>' .
|
1385 |
-
esc_html__( 'The WPGlobus Team', 'wpglobus' ) .
|
1386 |
-
'</em>' .
|
1387 |
-
'</div>';
|
1388 |
-
|
1389 |
-
break;
|
1390 |
-
case 'deactivate_message' :
|
1391 |
-
|
1392 |
-
/**
|
1393 |
-
* For Google Analytics
|
1394 |
-
*/
|
1395 |
-
$ga_campaign = '?utm_source=wpglobus-admin-clean&utm_medium=link&utm_campaign=talk-to-us';
|
1396 |
-
|
1397 |
-
$url_wpglobus_site = WPGlobus_Utils::url_wpglobus_site();
|
1398 |
-
$url_wpglobus_site_submit_ticket = $url_wpglobus_site . 'support/submit-ticket/' . $ga_campaign;
|
1399 |
-
|
1400 |
-
$content = '<p><em>' .
|
1401 |
-
sprintf(
|
1402 |
-
esc_html(
|
1403 |
-
// translators: %?$s: HTML codes for hyperlink. Do not remove.
|
1404 |
-
__( 'We would hate to see you go. If something goes wrong, do not uninstall WPGlobus yet. Please %1$stalk to us%2$s and let us help!', 'wpglobus' ) ),
|
1405 |
-
'<a href="' . $url_wpglobus_site_submit_ticket . '" target="_blank" style="text-decoration:underline;">',
|
1406 |
-
'</a>'
|
1407 |
-
) .
|
1408 |
-
'</em></p>' .
|
1409 |
-
'<hr/>' .
|
1410 |
-
'<p><i class="el el-exclamation-sign" style="color:red"></i> <strong>' .
|
1411 |
-
esc_html( __( 'Please note that if you deactivate WPGlobus, your site will show all the languages together, mixed up. You will need to remove all translations, keeping only one language.', 'wpglobus' ) ) .
|
1412 |
-
'</strong></p>' .
|
1413 |
-
'<p>' .
|
1414 |
-
sprintf(
|
1415 |
-
// translators: %s: link to the Clean-up Tool
|
1416 |
-
esc_html__( 'If there are just a few places, you should edit them manually. To automatically remove all translations at once, you can use the %s. WARNING: The clean-up operation is irreversible, so use it only if you need to completely uninstall WPGlobus.', 'wpglobus' ),
|
1417 |
-
sprintf(
|
1418 |
-
// translators: %?$s: HTML codes for hyperlink. Do not remove.
|
1419 |
-
esc_html__( '%1$sClean-up Tool%2$s', 'wpglobus' ),
|
1420 |
-
'<a style="text-decoration:underline;" target="_blank" href="' . admin_url() . 'admin.php?page=' . WPGlobus::PAGE_WPGLOBUS_CLEAN . '">',
|
1421 |
-
'</a>'
|
1422 |
-
) ) .
|
1423 |
-
'</p>';
|
1424 |
-
|
1425 |
-
break;
|
1426 |
-
case 'sorry_message' :
|
1427 |
-
|
1428 |
-
$content = '<p><strong>' .
|
1429 |
-
sprintf(
|
1430 |
-
// translators: %s: name of current theme
|
1431 |
-
esc_html__( 'Sorry, WPGlobus customizer doesn\'t support current theme %s.', 'wpglobus' ),
|
1432 |
-
'<em>' . $attrs->__get( 'name' ) . '</em>'
|
1433 |
-
) .
|
1434 |
-
'<br />' .
|
1435 |
-
sprintf(
|
1436 |
-
// translators: %?$s: HTML codes for hyperlink. Do not remove.
|
1437 |
-
esc_html__( 'Please use %1$sWPGlobus options page%2$s instead.', 'wpglobus' ),
|
1438 |
-
'<a style="text-decoration:underline;" target="_blank" href="' . admin_url() . 'admin.php?page=' . WPGlobus::OPTIONS_PAGE_SLUG . '&tab=0">',
|
1439 |
-
'</a>'
|
1440 |
-
) .
|
1441 |
-
'</strong></p>';
|
1442 |
-
|
1443 |
-
break;
|
1444 |
-
endswitch;
|
1445 |
-
|
1446 |
-
return $content;
|
1447 |
-
|
1448 |
-
}
|
1449 |
-
|
1450 |
-
/**
|
1451 |
-
* Load Customize Preview JS.
|
1452 |
-
*
|
1453 |
-
* Used by hook: 'customize_preview_init'
|
1454 |
-
* @see 'customize_preview_init'
|
1455 |
-
*/
|
1456 |
-
public static function action__customize_preview_init() {
|
1457 |
-
|
1458 |
-
/*
|
1459 |
-
wp_enqueue_script(
|
1460 |
-
'wpglobus-customize-options-preview',
|
1461 |
-
WPGlobus::$PLUGIN_DIR_URL . 'includes/js/wpglobus-customize-options-preview' .
|
1462 |
-
WPGlobus::SCRIPT_SUFFIX() . '.js',
|
1463 |
-
array( 'jquery' ),
|
1464 |
-
WPGLOBUS_VERSION,
|
1465 |
-
true
|
1466 |
-
);
|
1467 |
-
// */
|
1468 |
-
/*
|
1469 |
-
wp_localize_script(
|
1470 |
-
'wpglobus-customize-options-preview',
|
1471 |
-
'WPGlobusCustomize',
|
1472 |
-
array(
|
1473 |
-
'version' => WPGLOBUS_VERSION,
|
1474 |
-
#'blogname' => WPGlobus_Core::text_filter( get_option( 'blogname' ), WPGlobus::Config()->language ),
|
1475 |
-
#'blogdescription' => WPGlobus_Core::text_filter( get_option( 'blogdescription' ), WPGlobus::Config()->language )
|
1476 |
-
)
|
1477 |
-
); // */
|
1478 |
-
|
1479 |
-
}
|
1480 |
-
|
1481 |
-
/**
|
1482 |
-
* Load Customize Control JS.
|
1483 |
-
*/
|
1484 |
-
public static function action__customize_controls_enqueue_scripts() {
|
1485 |
-
|
1486 |
-
/**
|
1487 |
-
* Get customize_user_control options which there are specifically for every theme.
|
1488 |
-
*/
|
1489 |
-
$options = get_option( self::$options_key );
|
1490 |
-
if ( $options == '' ) {
|
1491 |
-
$options = null;
|
1492 |
-
} else {
|
1493 |
-
if ( empty( $options['customize_user_control'] ) ) {
|
1494 |
-
$options = null;
|
1495 |
-
} else {
|
1496 |
-
$options = $options['customize_user_control'];
|
1497 |
-
}
|
1498 |
-
}
|
1499 |
-
|
1500 |
-
$i18n = array();
|
1501 |
-
$i18n['expandShrink'] = esc_html__('Expand/Shrink', 'wpglobus');
|
1502 |
-
|
1503 |
-
wp_register_script(
|
1504 |
-
'wpglobus-customize-options',
|
1505 |
-
WPGlobus::$PLUGIN_DIR_URL . 'includes/js/wpglobus-customize-options' . WPGlobus::SCRIPT_SUFFIX() . '.js',
|
1506 |
-
array( 'jquery', 'jquery-ui-draggable' ),
|
1507 |
-
WPGLOBUS_VERSION,
|
1508 |
-
true
|
1509 |
-
);
|
1510 |
-
wp_enqueue_script( 'wpglobus-customize-options' );
|
1511 |
-
wp_localize_script(
|
1512 |
-
'wpglobus-customize-options',
|
1513 |
-
'WPGlobusCustomizeOptions',
|
1514 |
-
array(
|
1515 |
-
'version' => WPGLOBUS_VERSION,
|
1516 |
-
'i18n' => $i18n,
|
1517 |
-
'config' => WPGlobus::Config(),
|
1518 |
-
'ajaxurl' => admin_url( 'admin-ajax.php' ),
|
1519 |
-
'process_ajax' => __CLASS__ . '_process_ajax',
|
1520 |
-
'editLink' => admin_url() . 'admin.php?page=' . WPGlobus::LANGUAGE_EDIT_PAGE . '&action=edit&lang={{language}}"',
|
1521 |
-
'settings' => self::$settings,
|
1522 |
-
'sections' => self::$sections,
|
1523 |
-
'addonsPage' => admin_url() . 'plugin-install.php?tab=search&s=WPGlobus&source=WPGlobus',
|
1524 |
-
'themeName' => self::$theme_name,
|
1525 |
-
'themeEnabled' => self::is_theme_enabled() ? 'true' : 'false',
|
1526 |
-
'helpButton' => '<span style="float:right;cursor:pointer;" class="wpglobus-customize-icon-help customize-help-toggle dashicons dashicons-editor-help" tabindex="0" aria-expanded="false"></span>',
|
1527 |
-
'userControl' => $options,
|
1528 |
-
'userControlSaveButton' => self::$controls_save_button,
|
1529 |
-
'userControlIcon' => WPGlobus::$PLUGIN_DIR_URL . 'includes/css/images/checkbox-icon.png',
|
1530 |
-
'userControlIconClass' => 'wpglobus-customize-user-control-icon',
|
1531 |
-
'userControlBoxSelector' => '.wpglobus-fields_settings_control_box .items-box'
|
1532 |
-
# @see WPGlobusFieldsSettingsControl class
|
1533 |
-
)
|
1534 |
-
);
|
1535 |
-
|
1536 |
-
}
|
1537 |
-
|
1538 |
-
/**
|
1539 |
-
* Get current theme or its property.
|
1540 |
-
*
|
1541 |
-
* @since 1.6.0
|
1542 |
-
*
|
1543 |
-
* @param string $param
|
1544 |
-
*
|
1545 |
-
* @return string|WP_Theme
|
1546 |
-
*/
|
1547 |
-
public static function get_theme( $param = '' ) {
|
1548 |
-
|
1549 |
-
if ( 'name' === $param ) {
|
1550 |
-
return strtolower( self::$theme->name );
|
1551 |
-
}
|
1552 |
-
|
1553 |
-
return self::$theme;
|
1554 |
-
|
1555 |
-
}
|
1556 |
-
|
1557 |
-
/**
|
1558 |
-
* Check for enabled theme.
|
1559 |
-
*
|
1560 |
-
* @since 1.6.0
|
1561 |
-
* @return boolean
|
1562 |
-
*/
|
1563 |
-
public static function is_theme_enabled() {
|
1564 |
-
|
1565 |
-
if ( in_array( self::$theme_name, self::$disabled_themes ) ) {
|
1566 |
-
return false;
|
1567 |
-
}
|
1568 |
-
|
1569 |
-
return true;
|
1570 |
-
}
|
1571 |
-
|
1572 |
-
|
1573 |
-
/**
|
1574 |
-
* Filter to disable the making multilingual our own settings.
|
1575 |
-
*
|
1576 |
-
* @since 1.9.8
|
1577 |
-
* @return array
|
1578 |
-
*/
|
1579 |
-
public static function filter__disabled_setting_mask($disabled_setting_mask) {
|
1580 |
-
$disabled_setting_mask[] = 'wpglobus_customize_js_editor';
|
1581 |
-
return $disabled_setting_mask;
|
1582 |
-
}
|
1583 |
-
|
1584 |
-
} // class WPGlobus_Customize_Options.
|
1585 |
-
|
1586 |
-
endif;
|
1587 |
-
|
1588 |
-
# --- EOF
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/includes/admin/class-wpglobus-dashboard-news.php
DELETED
@@ -1,67 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/**
|
4 |
-
* Class WPGlobus_Dashboard_News
|
5 |
-
* @since 1.7.7
|
6 |
-
*/
|
7 |
-
class WPGlobus_Dashboard_News {
|
8 |
-
|
9 |
-
/**
|
10 |
-
* WPGlobus_Dashboard_News constructor.
|
11 |
-
*/
|
12 |
-
public function __construct() {
|
13 |
-
add_action( 'wp_dashboard_setup', array(
|
14 |
-
$this,
|
15 |
-
'action__wp_dashboard_setup'
|
16 |
-
) );
|
17 |
-
|
18 |
-
add_filter( 'wpglobus_localize_feed_url', array(
|
19 |
-
$this,
|
20 |
-
'filter__wpglobus_localize_feed_url'
|
21 |
-
), 0, 2 );
|
22 |
-
|
23 |
-
}
|
24 |
-
|
25 |
-
/**
|
26 |
-
* Do not localize feed URL because we have news only in English.
|
27 |
-
*
|
28 |
-
* @param bool $need_to_localize
|
29 |
-
* @param SimplePie $feed
|
30 |
-
*
|
31 |
-
* @return bool
|
32 |
-
*/
|
33 |
-
public function filter__wpglobus_localize_feed_url( $need_to_localize, $feed ) {
|
34 |
-
|
35 |
-
return $need_to_localize && WPGlobus::URL_WPGLOBUS_SITE . 'feed/' !== $feed->feed_url;
|
36 |
-
}
|
37 |
-
|
38 |
-
/**
|
39 |
-
* Setup the dashboard widget.
|
40 |
-
*/
|
41 |
-
public function action__wp_dashboard_setup() {
|
42 |
-
add_meta_box( 'wpglobus_dashboard_news',
|
43 |
-
esc_html__( 'WPGlobus News', 'wpglobus' ),
|
44 |
-
array(
|
45 |
-
$this,
|
46 |
-
'dashboard_widget'
|
47 |
-
),
|
48 |
-
'dashboard', 'side', 'high'
|
49 |
-
);
|
50 |
-
}
|
51 |
-
|
52 |
-
/**
|
53 |
-
* Output the widget content.
|
54 |
-
*/
|
55 |
-
public function dashboard_widget() {
|
56 |
-
echo '<div class="rss-widget">';
|
57 |
-
wp_widget_rss_output( array(
|
58 |
-
'url' => WPGlobus::URL_WPGLOBUS_SITE . 'feed/',
|
59 |
-
'title' => esc_html__( 'WPGlobus News', 'wpglobus' ),
|
60 |
-
'items' => 3,
|
61 |
-
'show_summary' => 1,
|
62 |
-
'show_author' => 0,
|
63 |
-
'show_date' => 1
|
64 |
-
) );
|
65 |
-
echo '</div>';
|
66 |
-
}
|
67 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/includes/admin/class-wpglobus-language-edit-request.php
DELETED
@@ -1,255 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* WPGlobus / Admin / Language Edit / Request
|
4 |
-
* plugins/wpglobus/includes/admin/class-wpglobus-language-edit-request.php
|
5 |
-
*
|
6 |
-
* @package WPGlobus\Admin
|
7 |
-
* @since 1.9.7.1
|
8 |
-
*/
|
9 |
-
|
10 |
-
/**
|
11 |
-
* Class WPGlobus_Language_Edit_Request
|
12 |
-
*/
|
13 |
-
class WPGlobus_Language_Edit_Request {
|
14 |
-
|
15 |
-
const NONCE_ACTION = 'wpglobus-language-edit';
|
16 |
-
|
17 |
-
const ACTION_NONE = '';
|
18 |
-
|
19 |
-
const ACTION_EDIT = 'edit';
|
20 |
-
|
21 |
-
const ACTION_DELETE = 'delete';
|
22 |
-
|
23 |
-
const ACTION_ADD = 'add';
|
24 |
-
|
25 |
-
const ACTION_DONE = 'done';
|
26 |
-
|
27 |
-
/**
|
28 |
-
* GET['action']
|
29 |
-
*
|
30 |
-
* @var string
|
31 |
-
*/
|
32 |
-
protected $action = self::ACTION_NONE;
|
33 |
-
|
34 |
-
/**
|
35 |
-
* GET['lang']
|
36 |
-
*
|
37 |
-
* @var string
|
38 |
-
*/
|
39 |
-
protected $lang = '';
|
40 |
-
|
41 |
-
/**
|
42 |
-
* POST['submit']
|
43 |
-
*
|
44 |
-
* @var bool
|
45 |
-
*/
|
46 |
-
protected $is_submit = false;
|
47 |
-
|
48 |
-
/**
|
49 |
-
* POST['delete']
|
50 |
-
*
|
51 |
-
* @var bool
|
52 |
-
*/
|
53 |
-
protected $is_delete = false;
|
54 |
-
|
55 |
-
|
56 |
-
/**
|
57 |
-
* POST['wpglobus_language_code']
|
58 |
-
*
|
59 |
-
* @var string
|
60 |
-
*/
|
61 |
-
protected $wpglobus_language_code = '';
|
62 |
-
|
63 |
-
/**
|
64 |
-
* POST['wpglobus_flags']
|
65 |
-
*
|
66 |
-
* @var string
|
67 |
-
*/
|
68 |
-
protected $wpglobus_flags = '';
|
69 |
-
|
70 |
-
/**
|
71 |
-
* POST['wpglobus_language_name']
|
72 |
-
*
|
73 |
-
* @var string
|
74 |
-
*/
|
75 |
-
protected $wpglobus_language_name = '';
|
76 |
-
|
77 |
-
/**
|
78 |
-
* POST['wpglobus_en_language_name']
|
79 |
-
*
|
80 |
-
* @var string
|
81 |
-
*/
|
82 |
-
protected $wpglobus_en_language_name = '';
|
83 |
-
|
84 |
-
/**
|
85 |
-
* POST['wpglobus_locale']
|
86 |
-
*
|
87 |
-
* @var string
|
88 |
-
*/
|
89 |
-
protected $wpglobus_locale = '';
|
90 |
-
|
91 |
-
/**
|
92 |
-
* WPGlobus_Language_Edit_Request constructor.
|
93 |
-
*/
|
94 |
-
public function __construct() {
|
95 |
-
$this->parse_request();
|
96 |
-
}
|
97 |
-
|
98 |
-
/**
|
99 |
-
* Parse GET and POST.
|
100 |
-
*/
|
101 |
-
protected function parse_request() {
|
102 |
-
|
103 |
-
check_admin_referer( self::NONCE_ACTION );
|
104 |
-
|
105 |
-
if ( isset( $_GET['action'] ) && is_string( $_GET['action'] ) ) { // WPCS: input var ok, sanitization ok.
|
106 |
-
$action = sanitize_text_field( wp_unslash( $_GET['action'] ) ); // Input var okay.
|
107 |
-
if ( in_array( $action, array(
|
108 |
-
self::ACTION_ADD,
|
109 |
-
self::ACTION_EDIT,
|
110 |
-
self::ACTION_DELETE,
|
111 |
-
self::ACTION_DONE,
|
112 |
-
), true ) ) {
|
113 |
-
$this->action = $action;
|
114 |
-
} else {
|
115 |
-
$this->action = self::ACTION_NONE;
|
116 |
-
}
|
117 |
-
}
|
118 |
-
|
119 |
-
if ( isset( $_GET['lang'] ) && is_string( $_GET['lang'] ) ) { // WPCS: input var ok, sanitization ok.
|
120 |
-
$this->lang = sanitize_text_field( wp_unslash( $_GET['lang'] ) ); // Input var okay.
|
121 |
-
}
|
122 |
-
|
123 |
-
if ( isset( $_POST['submit'] ) ) { // Input var okay.
|
124 |
-
$this->is_submit = true;
|
125 |
-
}
|
126 |
-
|
127 |
-
if ( isset( $_POST['delete'] ) ) { // Input var okay.
|
128 |
-
$this->is_delete = true;
|
129 |
-
}
|
130 |
-
|
131 |
-
foreach (
|
132 |
-
array(
|
133 |
-
'wpglobus_language_code',
|
134 |
-
'wpglobus_flags',
|
135 |
-
'wpglobus_language_name',
|
136 |
-
'wpglobus_en_language_name',
|
137 |
-
'wpglobus_locale',
|
138 |
-
) as $var_name
|
139 |
-
) {
|
140 |
-
if ( isset( $_POST[ $var_name ] ) && is_string( $_POST[ $var_name ] ) ) { // WPCS: input var ok, sanitization ok.
|
141 |
-
$this->$var_name = sanitize_text_field( wp_unslash( $_POST[ $var_name ] ) ); // Input var okay.
|
142 |
-
}
|
143 |
-
}
|
144 |
-
}
|
145 |
-
|
146 |
-
/**
|
147 |
-
* Getter.
|
148 |
-
*
|
149 |
-
* @return string
|
150 |
-
*/
|
151 |
-
public function get_action() {
|
152 |
-
return $this->action;
|
153 |
-
}
|
154 |
-
|
155 |
-
/**
|
156 |
-
* Getter.
|
157 |
-
*
|
158 |
-
* @return string
|
159 |
-
*/
|
160 |
-
public function get_lang() {
|
161 |
-
return $this->lang;
|
162 |
-
}
|
163 |
-
|
164 |
-
/**
|
165 |
-
* Getter.
|
166 |
-
*
|
167 |
-
* @return bool
|
168 |
-
*/
|
169 |
-
public function is_submit() {
|
170 |
-
return $this->is_submit;
|
171 |
-
}
|
172 |
-
|
173 |
-
/**
|
174 |
-
* Getter.
|
175 |
-
*
|
176 |
-
* @return bool
|
177 |
-
*/
|
178 |
-
public function is_delete() {
|
179 |
-
return $this->is_delete;
|
180 |
-
}
|
181 |
-
|
182 |
-
/**
|
183 |
-
* Getter.
|
184 |
-
*
|
185 |
-
* @return string
|
186 |
-
*/
|
187 |
-
public function get_wpglobus_language_code() {
|
188 |
-
return $this->wpglobus_language_code;
|
189 |
-
}
|
190 |
-
|
191 |
-
/**
|
192 |
-
* Getter.
|
193 |
-
*
|
194 |
-
* @return string
|
195 |
-
*/
|
196 |
-
public function get_wpglobus_flags() {
|
197 |
-
return $this->wpglobus_flags;
|
198 |
-
}
|
199 |
-
|
200 |
-
/**
|
201 |
-
* Getter.
|
202 |
-
*
|
203 |
-
* @return string
|
204 |
-
*/
|
205 |
-
public function get_wpglobus_language_name() {
|
206 |
-
return $this->wpglobus_language_name;
|
207 |
-
}
|
208 |
-
|
209 |
-
/**
|
210 |
-
* Getter.
|
211 |
-
*
|
212 |
-
* @return string
|
213 |
-
*/
|
214 |
-
public function get_wpglobus_en_language_name() {
|
215 |
-
return $this->wpglobus_en_language_name;
|
216 |
-
}
|
217 |
-
|
218 |
-
/**
|
219 |
-
* Getter.
|
220 |
-
*
|
221 |
-
* @return string
|
222 |
-
*/
|
223 |
-
public function get_wpglobus_locale() {
|
224 |
-
return $this->wpglobus_locale;
|
225 |
-
}
|
226 |
-
|
227 |
-
public static function url_language_add() {
|
228 |
-
$url = add_query_arg( array(
|
229 |
-
'page' => WPGlobus::LANGUAGE_EDIT_PAGE,
|
230 |
-
'action' => self::ACTION_ADD,
|
231 |
-
), admin_url( 'admin.php' ) );
|
232 |
-
|
233 |
-
return wp_nonce_url( $url, self::NONCE_ACTION );
|
234 |
-
}
|
235 |
-
|
236 |
-
public static function url_language_edit( $language_code ) {
|
237 |
-
$url = add_query_arg( array(
|
238 |
-
'page' => WPGlobus::LANGUAGE_EDIT_PAGE,
|
239 |
-
'lang' => $language_code,
|
240 |
-
'action' => self::ACTION_EDIT,
|
241 |
-
), admin_url( 'admin.php' ) );
|
242 |
-
|
243 |
-
return wp_nonce_url( $url, self::NONCE_ACTION );
|
244 |
-
}
|
245 |
-
|
246 |
-
public static function url_language_delete( $language_code ) {
|
247 |
-
$url = add_query_arg( array(
|
248 |
-
'page' => WPGlobus::LANGUAGE_EDIT_PAGE,
|
249 |
-
'lang' => $language_code,
|
250 |
-
'action' => self::ACTION_DELETE,
|
251 |
-
), admin_url( 'admin.php' ) );
|
252 |
-
|
253 |
-
return wp_nonce_url( $url, self::NONCE_ACTION );
|
254 |
-
}
|
255 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/includes/admin/class-wpglobus-language-edit.php
DELETED
@@ -1,494 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* WPGlobus / Admin / Language Edit
|
4 |
-
*
|
5 |
-
* @package WPGlobus\Admin
|
6 |
-
*/
|
7 |
-
|
8 |
-
// Load the Request class.
|
9 |
-
require_once dirname( __FILE__ ) . '/class-wpglobus-language-edit-request.php';
|
10 |
-
|
11 |
-
/**
|
12 |
-
* Class WPGlobus_Language_Edit
|
13 |
-
*/
|
14 |
-
class WPGlobus_Language_Edit {
|
15 |
-
|
16 |
-
/**
|
17 |
-
* All flag files.
|
18 |
-
*
|
19 |
-
* @var array
|
20 |
-
*/
|
21 |
-
protected $all_flags = array();
|
22 |
-
|
23 |
-
/**
|
24 |
-
* Current action
|
25 |
-
*
|
26 |
-
* @var string
|
27 |
-
*/
|
28 |
-
protected $action = WPGlobus_Language_Edit_Request::ACTION_ADD;
|
29 |
-
|
30 |
-
/**
|
31 |
-
* Language code
|
32 |
-
*
|
33 |
-
* @var string
|
34 |
-
*/
|
35 |
-
protected $language_code = '';
|
36 |
-
|
37 |
-
/**
|
38 |
-
* Language name
|
39 |
-
*
|
40 |
-
* @var string
|
41 |
-
*/
|
42 |
-
protected $language_name = '';
|
43 |
-
|
44 |
-
/**
|
45 |
-
* Language name in English
|
46 |
-
*
|
47 |
-
* @var string
|
48 |
-
*/
|
49 |
-
protected $en_language_name = '';
|
50 |
-
|
51 |
-
/**
|
52 |
-
* Locale
|
53 |
-
*
|
54 |
-
* @var string
|
55 |
-
*/
|
56 |
-
protected $locale = '';
|
57 |
-
|
58 |
-
/**
|
59 |
-
* Flag for the current language
|
60 |
-
*
|
61 |
-
* @var string
|
62 |
-
*/
|
63 |
-
protected $flag = '';
|
64 |
-
|
65 |
-
/**
|
66 |
-
* Set to true when the form is submitted
|
67 |
-
*
|
68 |
-
* @var bool
|
69 |
-
*/
|
70 |
-
protected $submit = false;
|
71 |
-
|
72 |
-
/**
|
73 |
-
* Diagnostic messages
|
74 |
-
*
|
75 |
-
* @var string[]
|
76 |
-
*/
|
77 |
-
protected $submit_messages = array();
|
78 |
-
|
79 |
-
/**
|
80 |
-
* The Request object
|
81 |
-
*
|
82 |
-
* @var WPGlobus_Language_Edit_Request
|
83 |
-
*/
|
84 |
-
protected $request;
|
85 |
-
|
86 |
-
/**
|
87 |
-
* Constructor
|
88 |
-
*/
|
89 |
-
public function __construct() {
|
90 |
-
|
91 |
-
$this->request = new WPGlobus_Language_Edit_Request();
|
92 |
-
|
93 |
-
if ( WPGlobus_Language_Edit_Request::ACTION_DELETE === $this->request->get_action() ) {
|
94 |
-
$this->action = WPGlobus_Language_Edit_Request::ACTION_DELETE;
|
95 |
-
} elseif ( WPGlobus_Language_Edit_Request::ACTION_EDIT === $this->request->get_action() ) {
|
96 |
-
$this->action = WPGlobus_Language_Edit_Request::ACTION_EDIT;
|
97 |
-
}
|
98 |
-
|
99 |
-
$this->language_code = $this->request->get_lang();
|
100 |
-
|
101 |
-
if ( $this->request->is_submit() ) {
|
102 |
-
$this->submit = true;
|
103 |
-
$this->process_submit();
|
104 |
-
} elseif ( $this->request->is_delete() ) {
|
105 |
-
$this->process_delete();
|
106 |
-
$this->action = WPGlobus_Language_Edit_Request::ACTION_DONE;
|
107 |
-
} else {
|
108 |
-
$this->get_data();
|
109 |
-
}
|
110 |
-
|
111 |
-
if ( WPGlobus_Language_Edit_Request::ACTION_DONE !== $this->action ) {
|
112 |
-
$this->display_table();
|
113 |
-
}
|
114 |
-
|
115 |
-
add_action( 'admin_footer', array( $this, 'on_print_scripts' ), 99 );
|
116 |
-
|
117 |
-
}
|
118 |
-
|
119 |
-
/**
|
120 |
-
* Add script in admin footer
|
121 |
-
*/
|
122 |
-
public function on_print_scripts() {
|
123 |
-
|
124 |
-
if ( WPGlobus_Language_Edit_Request::ACTION_DONE === $this->action ) {
|
125 |
-
$location = '?page=' . WPGlobus::OPTIONS_PAGE_SLUG;
|
126 |
-
// @formatter:off
|
127 |
-
?>
|
128 |
-
<script>jQuery(document).ready(function () {window.location = window.location.protocol + '//' + window.location.host + window.location.pathname + '<?php echo $location; // WPCS: XSS ok. ?>'});</script>
|
129 |
-
<?php
|
130 |
-
// @formatter:on
|
131 |
-
}
|
132 |
-
|
133 |
-
wp_enqueue_script(
|
134 |
-
'wpglobus-form',
|
135 |
-
WPGlobus::plugin_dir_url() . 'includes/js/wpglobus-form' . WPGlobus::SCRIPT_SUFFIX() . '.js',
|
136 |
-
array( 'jquery' ),
|
137 |
-
WPGLOBUS_VERSION,
|
138 |
-
true
|
139 |
-
);
|
140 |
-
|
141 |
-
}
|
142 |
-
|
143 |
-
/**
|
144 |
-
* Process delete language action
|
145 |
-
*/
|
146 |
-
protected function process_delete() {
|
147 |
-
|
148 |
-
$config = WPGlobus::Config();
|
149 |
-
|
150 |
-
/**
|
151 |
-
* Get options
|
152 |
-
*
|
153 |
-
* @var array
|
154 |
-
*/
|
155 |
-
$opts = get_option( $config->option );
|
156 |
-
|
157 |
-
if ( isset( $opts['enabled_languages'][ $this->language_code ] ) ) {
|
158 |
-
|
159 |
-
unset( $opts['enabled_languages'][ $this->language_code ] );
|
160 |
-
|
161 |
-
/** FIX: reset $opts['more_languages'] */
|
162 |
-
if ( array_key_exists( 'more_languages', $opts ) ) {
|
163 |
-
$opts['more_languages'] = '';
|
164 |
-
}
|
165 |
-
update_option( $config->option, $opts );
|
166 |
-
|
167 |
-
}
|
168 |
-
|
169 |
-
unset( $config->language_name[ $this->language_code ] );
|
170 |
-
update_option( $config->option_language_names, $config->language_name );
|
171 |
-
|
172 |
-
unset( $config->flag[ $this->language_code ] );
|
173 |
-
update_option( $config->option_flags, $config->flag );
|
174 |
-
|
175 |
-
unset( $config->en_language_name[ $this->language_code ] );
|
176 |
-
update_option( $config->option_en_language_names, $config->en_language_name );
|
177 |
-
|
178 |
-
unset( $config->locale[ $this->language_code ] );
|
179 |
-
update_option( $config->option_locale, $config->locale );
|
180 |
-
|
181 |
-
}
|
182 |
-
|
183 |
-
/**
|
184 |
-
* Process submit action
|
185 |
-
*/
|
186 |
-
protected function process_submit() {
|
187 |
-
|
188 |
-
$code = $this->request->get_wpglobus_language_code();
|
189 |
-
if ( $code && $this->language_code === $code ) {
|
190 |
-
if ( $this->check_fields( $code, false ) ) {
|
191 |
-
$this->save();
|
192 |
-
$this->submit_messages['success'][] = __( 'Options updated', 'wpglobus' );
|
193 |
-
}
|
194 |
-
} else {
|
195 |
-
if ( $this->check_fields( $code ) ) {
|
196 |
-
$this->save( true );
|
197 |
-
$this->submit_messages['success'][] = __( 'Options updated', 'wpglobus' );
|
198 |
-
}
|
199 |
-
}
|
200 |
-
$this->get_flags();
|
201 |
-
|
202 |
-
}
|
203 |
-
|
204 |
-
/**
|
205 |
-
* Save data language to DB
|
206 |
-
*
|
207 |
-
* @param bool $update_code If need to change language code.
|
208 |
-
*/
|
209 |
-
protected function save( $update_code = false ) {
|
210 |
-
|
211 |
-
$config = WPGlobus::Config();
|
212 |
-
|
213 |
-
$old_code = '';
|
214 |
-
if ( $update_code && WPGlobus_Language_Edit_Request::ACTION_EDIT === $this->action ) {
|
215 |
-
$old_code = $this->language_code ? $this->language_code : $old_code;
|
216 |
-
if ( isset( $config->language_name[ $old_code ] ) ) {
|
217 |
-
unset( $config->language_name[ $old_code ] );
|
218 |
-
}
|
219 |
-
|
220 |
-
/**
|
221 |
-
* Get options
|
222 |
-
*
|
223 |
-
* @var array
|
224 |
-
*/
|
225 |
-
$opts = get_option( $config->option );
|
226 |
-
if ( isset( $opts['enabled_languages'][ $old_code ] ) ) {
|
227 |
-
unset( $opts['enabled_languages'][ $old_code ] );
|
228 |
-
update_option( $config->option, $opts );
|
229 |
-
}
|
230 |
-
if ( isset( $opts['more_languages'] ) && $old_code === $opts['more_languages'] ) {
|
231 |
-
unset( $opts['more_languages'] );
|
232 |
-
update_option( $config->option, $opts );
|
233 |
-
}
|
234 |
-
}
|
235 |
-
$config->language_name[ $this->language_code ] = $this->language_name;
|
236 |
-
update_option( $config->option_language_names, $config->language_name );
|
237 |
-
|
238 |
-
if ( $update_code && isset( $config->flag[ $old_code ] ) ) {
|
239 |
-
unset( $config->flag[ $old_code ] );
|
240 |
-
}
|
241 |
-
$config->flag[ $this->language_code ] = $this->flag;
|
242 |
-
update_option( $config->option_flags, $config->flag );
|
243 |
-
|
244 |
-
if ( $update_code && isset( $config->en_language_name[ $old_code ] ) ) {
|
245 |
-
unset( $config->en_language_name[ $old_code ] );
|
246 |
-
}
|
247 |
-
$config->en_language_name[ $this->language_code ] = $this->en_language_name;
|
248 |
-
update_option( $config->option_en_language_names, $config->en_language_name );
|
249 |
-
|
250 |
-
if ( $update_code && isset( $config->locale[ $old_code ] ) ) {
|
251 |
-
unset( $config->locale[ $old_code ] );
|
252 |
-
}
|
253 |
-
$config->locale[ $this->language_code ] = $this->locale;
|
254 |
-
update_option( $config->option_locale, $config->locale );
|
255 |
-
|
256 |
-
if ( $update_code ) {
|
257 |
-
$this->action = WPGlobus_Language_Edit_Request::ACTION_DONE;
|
258 |
-
}
|
259 |
-
}
|
260 |
-
|
261 |
-
/**
|
262 |
-
* Check form fields
|
263 |
-
*
|
264 |
-
* @param string $lang_code Language code.
|
265 |
-
* @param bool $check_code Use for language code existence check.
|
266 |
-
*
|
267 |
-
* @return bool True if no errors, false otherwise.
|
268 |
-
*/
|
269 |
-
protected function check_fields( $lang_code, $check_code = true ) {
|
270 |
-
$this->submit_messages['errors'] = array();
|
271 |
-
if ( $check_code && empty( $lang_code ) ) {
|
272 |
-
$this->submit_messages['errors'][] = __( 'Please enter a language code!', 'wpglobus' );
|
273 |
-
}
|
274 |
-
|
275 |
-
if ( $check_code && $this->language_exists( $lang_code ) ) {
|
276 |
-
$this->submit_messages['errors'][] = __( 'Language code already exists!', 'wpglobus' );
|
277 |
-
}
|
278 |
-
|
279 |
-
if ( ! $this->request->get_wpglobus_flags() ) {
|
280 |
-
$this->submit_messages['errors'][] = __( 'Please specify the language flag!', 'wpglobus' );
|
281 |
-
}
|
282 |
-
|
283 |
-
if ( ! $this->request->get_wpglobus_language_name() ) {
|
284 |
-
$this->submit_messages['errors'][] = __( 'Please enter the language name!', 'wpglobus' );
|
285 |
-
}
|
286 |
-
|
287 |
-
if ( ! $this->request->get_wpglobus_en_language_name() ) {
|
288 |
-
$this->submit_messages['errors'][] = __( 'Please enter the language name in English!', 'wpglobus' );
|
289 |
-
}
|
290 |
-
|
291 |
-
if ( ! $this->request->get_wpglobus_locale() ) {
|
292 |
-
$this->submit_messages['errors'][] = __( 'Please enter the locale!', 'wpglobus' );
|
293 |
-
}
|
294 |
-
|
295 |
-
$this->language_code = $lang_code;
|
296 |
-
$this->flag = $this->request->get_wpglobus_flags();
|
297 |
-
$this->language_name = $this->request->get_wpglobus_language_name();
|
298 |
-
$this->en_language_name = $this->request->get_wpglobus_en_language_name();
|
299 |
-
$this->locale = $this->request->get_wpglobus_locale();
|
300 |
-
|
301 |
-
if ( empty( $this->submit_messages['errors'] ) ) {
|
302 |
-
return true;
|
303 |
-
}
|
304 |
-
|
305 |
-
return false;
|
306 |
-
}
|
307 |
-
|
308 |
-
/**
|
309 |
-
* Check existing language code in global $WPGlobus_Config
|
310 |
-
*
|
311 |
-
* @param string $code Language code.
|
312 |
-
*
|
313 |
-
* @return bool true if language code exists
|
314 |
-
*/
|
315 |
-
protected function language_exists( $code ) {
|
316 |
-
|
317 |
-
if ( array_key_exists( $code, WPGlobus::Config()->language_name ) ) {
|
318 |
-
return true;
|
319 |
-
}
|
320 |
-
|
321 |
-
return false;
|
322 |
-
}
|
323 |
-
|
324 |
-
/**
|
325 |
-
* Get data for form fields
|
326 |
-
*/
|
327 |
-
protected function get_data() {
|
328 |
-
|
329 |
-
if ( WPGlobus_Language_Edit_Request::ACTION_EDIT === $this->action
|
330 |
-
|| WPGlobus_Language_Edit_Request::ACTION_DELETE === $this->action ) {
|
331 |
-
|
332 |
-
$config = WPGlobus::Config();
|
333 |
-
|
334 |
-
$this->language_name = $config->language_name[ $this->language_code ];
|
335 |
-
$this->en_language_name = $config->en_language_name[ $this->language_code ];
|
336 |
-
$this->locale = $config->locale[ $this->language_code ];
|
337 |
-
$this->flag = $config->flag[ $this->language_code ];
|
338 |
-
}
|
339 |
-
$this->get_flags();
|
340 |
-
}
|
341 |
-
|
342 |
-
/**
|
343 |
-
* Display language form
|
344 |
-
*/
|
345 |
-
protected function display_table() {
|
346 |
-
|
347 |
-
$disabled = '';
|
348 |
-
if ( WPGlobus_Language_Edit_Request::ACTION_EDIT === $this->action ) {
|
349 |
-
$header = __( 'Edit Language', 'wpglobus' );
|
350 |
-
} elseif ( WPGlobus_Language_Edit_Request::ACTION_DELETE === $this->action ) {
|
351 |
-
$header = __( 'Delete Language', 'wpglobus' );
|
352 |
-
$disabled = 'disabled';
|
353 |
-
} else {
|
354 |
-
$header = __( 'Add Language', 'wpglobus' );
|
355 |
-
}
|
356 |
-
?>
|
357 |
-
<div class="wrap">
|
358 |
-
<h1>WPGlobus: <?php echo esc_html( $header ); ?></h1>
|
359 |
-
<?php
|
360 |
-
if ( $this->submit ) {
|
361 |
-
if ( ! empty( $this->submit_messages['errors'] ) ) {
|
362 |
-
$mess = '';
|
363 |
-
foreach ( $this->submit_messages['errors'] as $message ) {
|
364 |
-
$mess .= $message . '<br />';
|
365 |
-
}
|
366 |
-
?>
|
367 |
-
<div class="error"><p><?php echo wp_kses( $mess, array( 'br' => array() ) ); ?></p></div>
|
368 |
-
<?php
|
369 |
-
} elseif ( ! empty( $this->submit_messages['success'] ) ) {
|
370 |
-
$mess = '';
|
371 |
-
foreach ( $this->submit_messages['success'] as $message ) {
|
372 |
-
$mess .= $message . '<br />';
|
373 |
-
}
|
374 |
-
?>
|
375 |
-
<div class="updated"><p><?php echo wp_kses( $mess, array( 'br' => array() ) ); ?></p></div>
|
376 |
-
<?php
|
377 |
-
}
|
378 |
-
}
|
379 |
-
?>
|
380 |
-
<form id="wpglobus_edit_form" method="post" action="">
|
381 |
-
<table class="form-table">
|
382 |
-
<tr>
|
383 |
-
<th scope="row"><label
|
384 |
-
for="wpglobus_language_code"><?php esc_html_e( 'Language Code', 'wpglobus' ); ?></label>
|
385 |
-
</th>
|
386 |
-
<td>
|
387 |
-
<input name="wpglobus_language_code" <?php echo esc_attr( $disabled ); ?> type="text"
|
388 |
-
id="wpglobus_language_code"
|
389 |
-
value="<?php echo esc_attr( $this->language_code ); ?>" class="regular-text"/>
|
390 |
-
|
391 |
-
<p class="description"><?php esc_html_e( '2-Letter ISO Language Code for the Language you want to insert. (Example: en)', 'wpglobus' ); ?></p>
|
392 |
-
</td>
|
393 |
-
</tr>
|
394 |
-
<tr>
|
395 |
-
<th scope="row"><label
|
396 |
-
for="wpglobus_flags"><?php esc_html_e( 'Language flag', 'wpglobus' ); ?></label>
|
397 |
-
</th>
|
398 |
-
<td>
|
399 |
-
<select id="wpglobus_flags" name="wpglobus_flags" style="width:300px;"
|
400 |
-
class="populate">
|
401 |
-
<?php
|
402 |
-
foreach ( $this->all_flags as $file_name ) :
|
403 |
-
?>
|
404 |
-
<option <?php selected( $this->flag === $file_name ); ?>
|
405 |
-
value="<?php echo esc_attr( $file_name ); ?>"><?php echo esc_html( $file_name ); ?></option>
|
406 |
-
<?php endforeach; ?>
|
407 |
-
</select>
|
408 |
-
</td>
|
409 |
-
</tr>
|
410 |
-
<tr>
|
411 |
-
<th scope="row"><label
|
412 |
-
for="wpglobus_language_name"><?php esc_html_e( 'Name', 'wpglobus' ); ?></label>
|
413 |
-
</th>
|
414 |
-
<td><input name="wpglobus_language_name" type="text" id="wpglobus_language_name"
|
415 |
-
value="<?php echo esc_attr( $this->language_name ); ?>" class="regular-text"/>
|
416 |
-
|
417 |
-
<p class="description"><?php esc_html_e( 'The name of the language in its native alphabet. (Examples: English, Русский)', 'wpglobus' ); ?></p>
|
418 |
-
</td>
|
419 |
-
</tr>
|
420 |
-
<tr>
|
421 |
-
<th scope="row"><label
|
422 |
-
for="wpglobus_en_language_name"><?php esc_html_e( 'Name in English', 'wpglobus' ); ?></label>
|
423 |
-
</th>
|
424 |
-
<td><input name="wpglobus_en_language_name" type="text" id="wpglobus_en_language_name"
|
425 |
-
value="<?php echo esc_attr( $this->en_language_name ); ?>" class="regular-text"/>
|
426 |
-
|
427 |
-
<p class="description"><?php esc_html_e( 'The name of the language in English', 'wpglobus' ); ?></p>
|
428 |
-
</td>
|
429 |
-
</tr>
|
430 |
-
<tr>
|
431 |
-
<th scope="row"><label
|
432 |
-
for="wpglobus_locale"><?php esc_html_e( 'Locale', 'wpglobus' ); ?></label></th>
|
433 |
-
<td><input name="wpglobus_locale" type="text" id="wpglobus_locale"
|
434 |
-
value="<?php echo esc_attr( $this->locale ); ?>"
|
435 |
-
class="regular-text"/>
|
436 |
-
|
437 |
-
<p class="description"><?php esc_html_e( 'PHP/WordPress Locale of the language. (Examples: en_US, ru_RU)', 'wpglobus' ); ?></p>
|
438 |
-
</td>
|
439 |
-
</tr>
|
440 |
-
</table>
|
441 |
-
<?php
|
442 |
-
|
443 |
-
if ( WPGlobus_Language_Edit_Request::ACTION_EDIT === $this->action
|
444 |
-
|| WPGlobus_Language_Edit_Request::ACTION_ADD === $this->action ) {
|
445 |
-
?>
|
446 |
-
<input class="button button-primary" type="submit" name="submit"
|
447 |
-
value="<?php esc_attr_e( 'Save Changes', 'wpglobus' ); ?>">
|
448 |
-
<?php
|
449 |
-
|
450 |
-
if ( WPGlobus_Language_Edit_Request::ACTION_EDIT === $this->action ) {
|
451 |
-
?>
|
452 |
-
|
453 |
-
<a class="button button-link-delete" style="margin-left: 1em" href="<?php echo esc_url( WPGlobus_Language_Edit_Request::url_language_delete( $this->language_code ) ); ?>">
|
454 |
-
<i class="dashicons dashicons-trash" style="margin-top: 4px;"></i>
|
455 |
-
<?php esc_html_e( 'Delete Language', 'wpglobus' ); ?>…</a>
|
456 |
-
<?php
|
457 |
-
}
|
458 |
-
} elseif ( WPGlobus_Language_Edit_Request::ACTION_DELETE === $this->action ) {
|
459 |
-
?>
|
460 |
-
<div class="notice-large wp-ui-notification"><?php esc_html_e( 'Are you sure you want to delete?', 'wpglobus' ); ?></div>
|
461 |
-
<p class="submit"><input class="button button-primary" type="submit" name="delete"
|
462 |
-
value="<?php esc_attr_e( 'Delete Language', 'wpglobus' ); ?>"></p>
|
463 |
-
<?php } ?>
|
464 |
-
|
465 |
-
</form>
|
466 |
-
|
467 |
-
<hr/>
|
468 |
-
<span class="dashicons dashicons-admin-site"></span>
|
469 |
-
<a href="<?php echo esc_url( WPGlobus_Admin_Page::url_settings() ); ?>">
|
470 |
-
<?php esc_html_e( 'Back to the WPGlobus Settings', 'wpglobus' ); ?>
|
471 |
-
</a>
|
472 |
-
</div>
|
473 |
-
<?php
|
474 |
-
}
|
475 |
-
|
476 |
-
/**
|
477 |
-
* Get flag files from directory
|
478 |
-
*/
|
479 |
-
protected function get_flags() {
|
480 |
-
|
481 |
-
$dir = new DirectoryIterator( WPGlobus::plugin_dir_path() . 'flags/' );
|
482 |
-
|
483 |
-
foreach ( $dir as $file ) {
|
484 |
-
/**
|
485 |
-
* File object
|
486 |
-
*
|
487 |
-
* @var DirectoryIterator $file
|
488 |
-
*/
|
489 |
-
if ( $file->isFile() ) {
|
490 |
-
$this->all_flags[] = $file->getFilename();
|
491 |
-
}
|
492 |
-
}
|
493 |
-
}
|
494 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/includes/admin/class-wpglobus-plugin-install.php
DELETED
@@ -1,367 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* File: class-wpglobus-plugin-install.php
|
4 |
-
*
|
5 |
-
* @since 1.5.9
|
6 |
-
* @package WPGlobus\Admin
|
7 |
-
*/
|
8 |
-
|
9 |
-
if ( ! class_exists( 'WPGlobus_Plugin_Install' ) ) :
|
10 |
-
|
11 |
-
/**
|
12 |
-
* Class WPGlobus_Plugin_Install
|
13 |
-
*/
|
14 |
-
class WPGlobus_Plugin_Install {
|
15 |
-
|
16 |
-
/**
|
17 |
-
* Fake version for paid plugins to prevent the "Update Now" button from appearing.
|
18 |
-
*
|
19 |
-
* @var string
|
20 |
-
*/
|
21 |
-
const FAKE_VERSION = '999';
|
22 |
-
|
23 |
-
/**
|
24 |
-
* Fake active installs for paid plugins.
|
25 |
-
*
|
26 |
-
* @var int
|
27 |
-
*/
|
28 |
-
const FAKE_ACTIVE_INSTALLS = 0;
|
29 |
-
|
30 |
-
/**
|
31 |
-
* Fake "Compatible with your version of WordPress" for paid plugins.
|
32 |
-
*
|
33 |
-
* @var string
|
34 |
-
*/
|
35 |
-
protected static $fake_compatible_with = '';
|
36 |
-
|
37 |
-
/**
|
38 |
-
* Array of plugin cards.
|
39 |
-
*
|
40 |
-
* @var array
|
41 |
-
*/
|
42 |
-
static protected $plugin_card = array();
|
43 |
-
|
44 |
-
/**
|
45 |
-
* Array of paid plugins data.
|
46 |
-
*
|
47 |
-
* @var array
|
48 |
-
*/
|
49 |
-
static protected $paid_plugins = array();
|
50 |
-
|
51 |
-
/**
|
52 |
-
* Array of free plugins data.
|
53 |
-
*
|
54 |
-
* @var array
|
55 |
-
*/
|
56 |
-
static protected $free_plugins = array();
|
57 |
-
|
58 |
-
/**
|
59 |
-
* Controller.
|
60 |
-
*/
|
61 |
-
public static function controller() {
|
62 |
-
|
63 |
-
// phpcs:ignore WordPress.CSRF.NonceVerification.NoNonceVerification
|
64 |
-
if ( empty( $_GET['s'] ) || 'wpglobus' !== strtolower( $_GET['s'] ) ) {
|
65 |
-
return;
|
66 |
-
}
|
67 |
-
|
68 |
-
self::$fake_compatible_with = $GLOBALS['wp_version'];
|
69 |
-
|
70 |
-
self::$plugin_card['free'] = array();
|
71 |
-
self::$plugin_card['paid'] = array();
|
72 |
-
|
73 |
-
self::setup_paid_plugins();
|
74 |
-
|
75 |
-
// Enqueue the CSS & JS scripts.
|
76 |
-
add_action( 'admin_enqueue_scripts', array( __CLASS__, 'enqueue_scripts' ) );
|
77 |
-
|
78 |
-
add_filter( 'plugins_api_result', array( __CLASS__, 'filter__plugins_api_result' ), 10, 3 );
|
79 |
-
}
|
80 |
-
|
81 |
-
/**
|
82 |
-
* List of the premium WPGlobus extensions.
|
83 |
-
* This file is created manually.
|
84 |
-
*/
|
85 |
-
protected static function setup_paid_plugins() {
|
86 |
-
|
87 |
-
self::$paid_plugins = array();
|
88 |
-
|
89 |
-
$data_file = WPGlobus::data_path() . '/paid_plugins.json';
|
90 |
-
|
91 |
-
if ( is_readable( $data_file ) ) {
|
92 |
-
$_json = file_get_contents( $data_file );
|
93 |
-
self::$paid_plugins = json_decode( $_json, true );
|
94 |
-
uasort( self::$paid_plugins, array( __CLASS__, 'sort_paid_plugins' ) );
|
95 |
-
}
|
96 |
-
}
|
97 |
-
|
98 |
-
/**
|
99 |
-
* Callback for sorting the paid_plugins array.
|
100 |
-
*
|
101 |
-
* @param array $a First.
|
102 |
-
* @param array $b Second.
|
103 |
-
*
|
104 |
-
* @return int
|
105 |
-
*/
|
106 |
-
public static function sort_paid_plugins( $a, $b ) {
|
107 |
-
return ( $a['order'] < $b['order'] ) ? - 1 : 1;
|
108 |
-
}
|
109 |
-
|
110 |
-
/**
|
111 |
-
* Filter api results
|
112 |
-
*
|
113 |
-
* @param stdClass|WP_Error $res Response object or WP_Error.
|
114 |
-
* @param string $action The type of information being requested from the Plugin Install API.
|
115 |
-
* @param stdClass $args Plugin API arguments.
|
116 |
-
*
|
117 |
-
* @return stdClass|WP_Error
|
118 |
-
*/
|
119 |
-
public static function filter__plugins_api_result(
|
120 |
-
$res,
|
121 |
-
// @formatter:off
|
122 |
-
/* @noinspection PhpUnusedParameterInspection */ $action,
|
123 |
-
/* @noinspection PhpUnusedParameterInspection */ $args
|
124 |
-
// @formatter:on
|
125 |
-
) {
|
126 |
-
|
127 |
-
if ( is_wp_error( $res ) ) {
|
128 |
-
return $res;
|
129 |
-
}
|
130 |
-
|
131 |
-
if ( empty( $res->plugins ) ) {
|
132 |
-
return $res;
|
133 |
-
}
|
134 |
-
|
135 |
-
foreach ( (array) $res->plugins as $key => $plugin ) {
|
136 |
-
if ( is_array( $plugin ) ) {
|
137 |
-
/** @since 2.1.10 */
|
138 |
-
$plugin = (object) $plugin;
|
139 |
-
}
|
140 |
-
if ( false === strpos( $plugin->slug, 'wpglobus' ) ) {
|
141 |
-
unset( $res->plugins[ $key ] );
|
142 |
-
} else {
|
143 |
-
|
144 |
-
if ( 'wpglobus-for-black-studio-tinymce-widget' === $plugin->slug ) {
|
145 |
-
|
146 |
-
/**
|
147 |
-
* Set correct slug for the
|
148 |
-
* `WPGlobus for Black Studio TinyMCE Widget` plugin.
|
149 |
-
*
|
150 |
-
* @since 1.6.3
|
151 |
-
*/
|
152 |
-
$plugin->slug = 'wpglobus-for-black-studio-widget';
|
153 |
-
|
154 |
-
self::$plugin_card['free'][] = $plugin->slug;
|
155 |
-
|
156 |
-
self::$free_plugins[ $plugin->slug ]['extra_data']['correctLink'] = 'wpglobus-for-black-studio-tinymce-widget';
|
157 |
-
|
158 |
-
} else {
|
159 |
-
self::$plugin_card['free'][] = $plugin->slug;
|
160 |
-
}
|
161 |
-
}
|
162 |
-
}
|
163 |
-
|
164 |
-
$url_wpglobus_site = WPGlobus_Utils::url_wpglobus_site();
|
165 |
-
|
166 |
-
$all_products = self::get_all_product_info();
|
167 |
-
|
168 |
-
foreach ( self::$paid_plugins as $plugin => $plugin_data ) {
|
169 |
-
|
170 |
-
$plugin_file = implode( '/', array( WP_PLUGIN_DIR, $plugin_data['slug'], $plugin_data['loader'] ) );
|
171 |
-
|
172 |
-
if ( is_readable( $plugin_file ) ) {
|
173 |
-
// Plugin is installed.
|
174 |
-
self::$paid_plugins[ $plugin ]['plugin_data'] = get_plugin_data( $plugin_file, false );
|
175 |
-
} else {
|
176 |
-
self::$paid_plugins[ $plugin ]['plugin_data'] = null;
|
177 |
-
|
178 |
-
$product_slug = ( isset( $plugin_data['product_slug'] ) ? $plugin_data['product_slug'] : $plugin );
|
179 |
-
|
180 |
-
if ( isset( $all_products[ $product_slug ] ) ) {
|
181 |
-
$plugin_info = $all_products[ $product_slug ];
|
182 |
-
|
183 |
-
/**
|
184 |
-
* Titles come as multilingual strings but only in 2 languages ['en','ru']
|
185 |
-
* because the WPGlobus website has only those.
|
186 |
-
* So we need to force `en` language code if the admin language
|
187 |
-
* is out of the list.
|
188 |
-
*/
|
189 |
-
$language = WPGlobus::Config()->language;
|
190 |
-
if ( ! in_array( $language, array( 'en', 'ru' ), true ) ) {
|
191 |
-
$language = 'en';
|
192 |
-
}
|
193 |
-
$_plugin_title = WPGlobus_Core::text_filter( $plugin_info['title'], $language );
|
194 |
-
|
195 |
-
self::$paid_plugins[ $plugin ]['plugin_data'] = array(
|
196 |
-
'Description' => '', // TODO.
|
197 |
-
'Name' => $_plugin_title,
|
198 |
-
'Title' => $_plugin_title,
|
199 |
-
'Version' => $plugin_info['_api_new_version'],
|
200 |
-
'PluginURI' => $url_wpglobus_site . 'product/' .
|
201 |
-
$product_slug . '/',
|
202 |
-
);
|
203 |
-
}
|
204 |
-
}
|
205 |
-
}
|
206 |
-
|
207 |
-
/**
|
208 |
-
* Prepend the premium add-ons to the list of plugins.
|
209 |
-
*/
|
210 |
-
foreach ( self::$paid_plugins as $slug => $paid_plugin ) {
|
211 |
-
|
212 |
-
$info = self::plugin_info_template();
|
213 |
-
|
214 |
-
$info->slug = $slug;
|
215 |
-
|
216 |
-
/**
|
217 |
-
* @since 2.6.4
|
218 |
-
*/
|
219 |
-
$internal_image = true;
|
220 |
-
foreach( array( 'http://', 'https://' ) as $_scheme ) {
|
221 |
-
if ( false !== strpos( $paid_plugin['image_file'], $_scheme ) ) {
|
222 |
-
$internal_image = false;
|
223 |
-
}
|
224 |
-
}
|
225 |
-
|
226 |
-
if ( $internal_image ) {
|
227 |
-
$info->icons['default'] = WPGlobus::internal_images_url() . '/' . $paid_plugin['image_file'];
|
228 |
-
} else {
|
229 |
-
$info->icons['default'] = $paid_plugin['image_file'];
|
230 |
-
}
|
231 |
-
$info->icons['1x'] = $info->icons['default'];
|
232 |
-
$info->icons['2x'] = $info->icons['default'];
|
233 |
-
|
234 |
-
if ( ! empty( $paid_plugin['plugin_data'] ) ) {
|
235 |
-
$info->name = $paid_plugin['plugin_data']['Name'];
|
236 |
-
$info->short_description = $paid_plugin['plugin_data']['Description'];
|
237 |
-
$info->homepage = $paid_plugin['plugin_data']['PluginURI'];
|
238 |
-
} else {
|
239 |
-
$info->name = $slug;
|
240 |
-
}
|
241 |
-
|
242 |
-
self::$plugin_card['paid'][] = $slug;
|
243 |
-
|
244 |
-
self::$paid_plugins[ $slug ]['card'] = $info;
|
245 |
-
|
246 |
-
self::$paid_plugins[ $slug ]['extra_data']['product_url'] =
|
247 |
-
self::$paid_plugins[ $slug ]['extra_data']['details_url'] =
|
248 |
-
$info->homepage;
|
249 |
-
|
250 |
-
/**
|
251 |
-
* @since 2.4.2
|
252 |
-
*/
|
253 |
-
if ( isset( $paid_plugin['available'] ) && ( empty( $paid_plugin['available'] ) || false === $paid_plugin['available'] ) ) {
|
254 |
-
// Don't add unavailable plugin in response.
|
255 |
-
} else {
|
256 |
-
array_unshift( $res->plugins, $info );
|
257 |
-
}
|
258 |
-
}
|
259 |
-
|
260 |
-
$res->info['results'] = count( $res->plugins );
|
261 |
-
|
262 |
-
return $res;
|
263 |
-
}
|
264 |
-
|
265 |
-
/**
|
266 |
-
* Get information about all premium plugins.
|
267 |
-
* This file is created automatically at build. Do not edit!
|
268 |
-
*
|
269 |
-
* @return array[]
|
270 |
-
*/
|
271 |
-
protected static function get_all_product_info() {
|
272 |
-
$all_product_info = array();
|
273 |
-
|
274 |
-
$data_file = WPGlobus::data_path() . '/wpglobus-product-info.json';
|
275 |
-
|
276 |
-
if ( is_readable( $data_file ) ) {
|
277 |
-
$all_product_info_json = file_get_contents( $data_file );
|
278 |
-
$all_product_info = json_decode( $all_product_info_json, true );
|
279 |
-
}
|
280 |
-
|
281 |
-
return $all_product_info;
|
282 |
-
}
|
283 |
-
|
284 |
-
/**
|
285 |
-
* Template for plugin info.
|
286 |
-
*
|
287 |
-
* @return stdClass
|
288 |
-
*/
|
289 |
-
protected static function plugin_info_template() {
|
290 |
-
$url_wpglobus_site = WPGlobus_Utils::url_wpglobus_site();
|
291 |
-
|
292 |
-
$template = new stdClass();
|
293 |
-
$template->name = '';
|
294 |
-
$template->short_description = '';
|
295 |
-
$template->author = '<a href="' . $url_wpglobus_site . '">WPGlobus</a>';
|
296 |
-
$template->author_profile = $url_wpglobus_site;
|
297 |
-
$template->homepage = $url_wpglobus_site;
|
298 |
-
$template->slug = '';
|
299 |
-
$template->rating = 100;
|
300 |
-
$template->num_ratings = 0;
|
301 |
-
$template->active_installs = self::FAKE_ACTIVE_INSTALLS;
|
302 |
-
$template->version = self::FAKE_VERSION;
|
303 |
-
$template->tested = self::$fake_compatible_with;
|
304 |
-
$template->icons['default'] = '';
|
305 |
-
$template->icons['2x'] = '';
|
306 |
-
$template->icons['1x'] = '';
|
307 |
-
$template->last_updated = date( 'c' );
|
308 |
-
|
309 |
-
return $template;
|
310 |
-
}
|
311 |
-
|
312 |
-
/**
|
313 |
-
* Enqueue admin JS scripts.
|
314 |
-
*
|
315 |
-
* @param string $hook_page The current admin page.
|
316 |
-
*/
|
317 |
-
public static function enqueue_scripts( $hook_page ) {
|
318 |
-
|
319 |
-
if ( 'plugin-install.php' === $hook_page ) {
|
320 |
-
|
321 |
-
$i18n = array();
|
322 |
-
$i18n['current_version'] = esc_html__( 'Current Version', 'wpglobus' );
|
323 |
-
$i18n['card_header'] = esc_html__( 'Premium add-on', 'wpglobus' );
|
324 |
-
$i18n['installed'] = esc_html__( 'Installed', 'wpglobus' );
|
325 |
-
|
326 |
-
/**
|
327 |
-
* Fix for ' !' in French translation.
|
328 |
-
*
|
329 |
-
* @since 2.5.20
|
330 |
-
*/
|
331 |
-
$i18n['get_it'] = html_entity_decode( __( 'Get it now!', 'wpglobus' ) );
|
332 |
-
|
333 |
-
/**
|
334 |
-
* Link to the installation instructions.
|
335 |
-
*
|
336 |
-
* @since 2.4.3
|
337 |
-
*/
|
338 |
-
// translators: placeholders are for the HTML tags.
|
339 |
-
$pre_addons_info = esc_html__( 'If you have already purchased a WPGlobus premium extension, please read %1$sthe installation instructions here%2$s', 'wpglobus' );
|
340 |
-
$i18n['pre_addons_info'] = sprintf( $pre_addons_info, '<a href="' . WPGlobus::URL_WPGLOBUS_SITE . 'extensions/how-to-install/" target="_blank" style="color:#fff;">', '</a>' );
|
341 |
-
|
342 |
-
wp_register_script(
|
343 |
-
'wpglobus-plugin-install',
|
344 |
-
WPGlobus::$PLUGIN_DIR_URL . '/includes/js/wpglobus-plugin-install' . WPGlobus::SCRIPT_SUFFIX() . '.js',
|
345 |
-
array( 'jquery' ),
|
346 |
-
WPGLOBUS_VERSION,
|
347 |
-
true
|
348 |
-
);
|
349 |
-
wp_enqueue_script( 'wpglobus-plugin-install' );
|
350 |
-
wp_localize_script(
|
351 |
-
'wpglobus-plugin-install',
|
352 |
-
'WPGlobusPluginInstall',
|
353 |
-
array(
|
354 |
-
'version' => WPGLOBUS_VERSION,
|
355 |
-
'hookPage' => $hook_page,
|
356 |
-
'pluginCard' => self::$plugin_card,
|
357 |
-
'pluginData' => array_merge( self::$paid_plugins, self::$free_plugins ),
|
358 |
-
'i18n' => $i18n,
|
359 |
-
)
|
360 |
-
);
|
361 |
-
}
|
362 |
-
}
|
363 |
-
}
|
364 |
-
|
365 |
-
endif;
|
366 |
-
|
367 |
-
# --- EOF
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/includes/admin/customize/class-wpglobus-customize-themes.php
DELETED
@@ -1,88 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* File: class-wpglobus-customize-themes.php
|
4 |
-
*
|
5 |
-
* WPGlobus Customize Themes.
|
6 |
-
*
|
7 |
-
* @package WPGlobus
|
8 |
-
* @since 1.9.12
|
9 |
-
*/
|
10 |
-
|
11 |
-
/**
|
12 |
-
* Class WPGlobus_Customize_Themes.
|
13 |
-
*/
|
14 |
-
if ( ! class_exists('WPGlobus_Customize_Themes') ) :
|
15 |
-
|
16 |
-
class WPGlobus_Customize_Themes {
|
17 |
-
|
18 |
-
/**
|
19 |
-
* Current theme.
|
20 |
-
*/
|
21 |
-
protected static $current_theme = null;
|
22 |
-
|
23 |
-
/**
|
24 |
-
* Names of disabled themes in lowercase format.
|
25 |
-
*
|
26 |
-
* @var string[]
|
27 |
-
*/
|
28 |
-
protected static $disabled_themes = array(
|
29 |
-
'customizr',
|
30 |
-
'customizr pro',
|
31 |
-
'experon',
|
32 |
-
'gwangi', // @since 2.3.12
|
33 |
-
'newyork city', // @since 2.5.21
|
34 |
-
);
|
35 |
-
|
36 |
-
/**
|
37 |
-
* Get disabled themes.
|
38 |
-
*
|
39 |
-
* @return string[]
|
40 |
-
*/
|
41 |
-
public static function disabled_themes() {
|
42 |
-
$disabled_themes = self::$disabled_themes;
|
43 |
-
return $disabled_themes;
|
44 |
-
}
|
45 |
-
|
46 |
-
/**
|
47 |
-
* Get current theme name.
|
48 |
-
*/
|
49 |
-
public static function current_theme() {
|
50 |
-
if ( is_null(self::$current_theme) ) {
|
51 |
-
self::$current_theme = wp_get_theme();
|
52 |
-
}
|
53 |
-
return self::get_theme( 'name' );
|
54 |
-
}
|
55 |
-
|
56 |
-
/**
|
57 |
-
* Get current theme or its property.
|
58 |
-
*
|
59 |
-
* @param string $param
|
60 |
-
*
|
61 |
-
* @return string|WP_Theme
|
62 |
-
*/
|
63 |
-
public static function get_theme( $param = '' ) {
|
64 |
-
if ( is_null(self::$current_theme) ) {
|
65 |
-
self::$current_theme = wp_get_theme();
|
66 |
-
}
|
67 |
-
if ( 'name' === $param ) {
|
68 |
-
return self::$current_theme->name;
|
69 |
-
}
|
70 |
-
|
71 |
-
return self::$current_theme;
|
72 |
-
|
73 |
-
}
|
74 |
-
|
75 |
-
/**
|
76 |
-
* Get current theme in lowercase.
|
77 |
-
*
|
78 |
-
* @return string
|
79 |
-
*/
|
80 |
-
public static function get_theme_name_lc() {
|
81 |
-
return strtolower( self::get_theme( 'name' ) );
|
82 |
-
}
|
83 |
-
|
84 |
-
}
|
85 |
-
|
86 |
-
endif;
|
87 |
-
|
88 |
-
# --- EOF
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/includes/admin/customize/class-wpglobus-customize140.php
DELETED
@@ -1,282 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Multilingual Customizer
|
4 |
-
* @package WPGlobus\Admin\Customizer
|
5 |
-
* @since 1.4.0
|
6 |
-
*/
|
7 |
-
|
8 |
-
if ( ! class_exists( 'WPGlobus_Customize' ) ) :
|
9 |
-
|
10 |
-
/**
|
11 |
-
* Class WPGlobus_Customize
|
12 |
-
*/
|
13 |
-
class WPGlobus_Customize {
|
14 |
-
|
15 |
-
public static function controller() {
|
16 |
-
/**
|
17 |
-
* @see \WP_Customize_Manager::wp_loaded
|
18 |
-
* It calls the `customize_register` action first,
|
19 |
-
* and then - the `customize_preview_init` action
|
20 |
-
*/
|
21 |
-
/*
|
22 |
-
add_action( 'customize_register', array(
|
23 |
-
'WPGlobus_Customize',
|
24 |
-
'action__customize_register'
|
25 |
-
) ); */
|
26 |
-
|
27 |
-
/**
|
28 |
-
* @since 1.5.0
|
29 |
-
*/
|
30 |
-
if ( WPGlobus_WP::is_pagenow( 'customize.php' ) ) {
|
31 |
-
require_once 'wpglobus-customize-filters.php';
|
32 |
-
}
|
33 |
-
|
34 |
-
add_action( 'customize_preview_init', array(
|
35 |
-
'WPGlobus_Customize',
|
36 |
-
'action__customize_preview_init'
|
37 |
-
) );
|
38 |
-
|
39 |
-
/**
|
40 |
-
* This is called by wp-admin/customize.php
|
41 |
-
*/
|
42 |
-
add_action( 'customize_controls_enqueue_scripts', array(
|
43 |
-
'WPGlobus_Customize',
|
44 |
-
'action__customize_controls_enqueue_scripts'
|
45 |
-
), 1000 );
|
46 |
-
|
47 |
-
if ( WPGlobus_WP::is_admin_doing_ajax() ) {
|
48 |
-
add_filter( 'clean_url', array(
|
49 |
-
'WPGlobus_Customize',
|
50 |
-
'filter__clean_url'
|
51 |
-
), 10, 2 );
|
52 |
-
}
|
53 |
-
|
54 |
-
}
|
55 |
-
|
56 |
-
/**
|
57 |
-
* Filter a string to check translations for URL.
|
58 |
-
* // We build multilingual URLs in customizer using the ':::' delimiter.
|
59 |
-
* We build multilingual URLs in customizer using the '|||' delimiter.
|
60 |
-
* See wpglobus-customize-control.js
|
61 |
-
*
|
62 |
-
* @note To work correctly, value of $url should begin with URL for default language.
|
63 |
-
* @see esc_url() - the 'clean_url' filter
|
64 |
-
* @since 1.3.0
|
65 |
-
*
|
66 |
-
* @param string $url The cleaned URL.
|
67 |
-
* @param string $original_url The URL prior to cleaning.
|
68 |
-
*
|
69 |
-
* @return string
|
70 |
-
*/
|
71 |
-
public static function filter__clean_url( $url, $original_url ) {
|
72 |
-
|
73 |
-
if ( false !== strpos( $original_url, '|||' ) ) {
|
74 |
-
$arr1 = array();
|
75 |
-
$arr = explode( '|||', $original_url );
|
76 |
-
foreach ( $arr as $k => $val ) {
|
77 |
-
// Note: 'null' is a string, not real `null`.
|
78 |
-
if ( 'null' !== $val ) {
|
79 |
-
$arr1[ WPGlobus::Config()->enabled_languages[ $k ] ] = $val;
|
80 |
-
}
|
81 |
-
}
|
82 |
-
return WPGlobus_Utils::build_multilingual_string( $arr1 );
|
83 |
-
}
|
84 |
-
|
85 |
-
return $url;
|
86 |
-
}
|
87 |
-
|
88 |
-
/**
|
89 |
-
* Add multilingual controls.
|
90 |
-
* The original controls will be hidden.
|
91 |
-
* @param WP_Customize_Manager $wp_customize
|
92 |
-
*/
|
93 |
-
public static function action__customize_register( WP_Customize_Manager $wp_customize ) {}
|
94 |
-
|
95 |
-
/**
|
96 |
-
* Load Customize Preview JS
|
97 |
-
* Used by hook: 'customize_preview_init'
|
98 |
-
* @see 'customize_preview_init'
|
99 |
-
*/
|
100 |
-
public static function action__customize_preview_init() {
|
101 |
-
wp_enqueue_script(
|
102 |
-
'wpglobus-customize-preview',
|
103 |
-
WPGlobus::$PLUGIN_DIR_URL . 'includes/js/wpglobus-customize-preview' .
|
104 |
-
WPGlobus::SCRIPT_SUFFIX() . '.js',
|
105 |
-
array( 'jquery', 'customize-preview' ),
|
106 |
-
WPGLOBUS_VERSION,
|
107 |
-
true
|
108 |
-
);
|
109 |
-
wp_localize_script(
|
110 |
-
'wpglobus-customize-preview',
|
111 |
-
'WPGlobusCustomize',
|
112 |
-
array(
|
113 |
-
'version' => WPGLOBUS_VERSION,
|
114 |
-
'blogname' => WPGlobus_Core::text_filter( get_option( 'blogname' ), WPGlobus::Config()->language ),
|
115 |
-
'blogdescription' => WPGlobus_Core::text_filter( get_option( 'blogdescription' ), WPGlobus::Config()->language )
|
116 |
-
)
|
117 |
-
);
|
118 |
-
}
|
119 |
-
|
120 |
-
/**
|
121 |
-
* Load Customize Control JS
|
122 |
-
*/
|
123 |
-
public static function action__customize_controls_enqueue_scripts() {
|
124 |
-
|
125 |
-
/**
|
126 |
-
* @see wp.customize.control elements
|
127 |
-
* for example wp.customize.control('blogname');
|
128 |
-
*/
|
129 |
-
$disabled_setting_mask = array();
|
130 |
-
|
131 |
-
/** navigation menu elements */
|
132 |
-
$disabled_setting_mask[] = 'nav_menu_item';
|
133 |
-
$disabled_setting_mask[] = 'nav_menu[';
|
134 |
-
$disabled_setting_mask[] = 'nav_menu_locations';
|
135 |
-
$disabled_setting_mask[] = 'new_menu_name';
|
136 |
-
|
137 |
-
/** widgets */
|
138 |
-
$disabled_setting_mask[] = 'widgets';
|
139 |
-
|
140 |
-
/** color elements */
|
141 |
-
$disabled_setting_mask[] = 'color';
|
142 |
-
|
143 |
-
/** yoast seo */
|
144 |
-
$disabled_setting_mask[] = 'wpseo';
|
145 |
-
|
146 |
-
/** css elements */
|
147 |
-
$disabled_setting_mask[] = 'css';
|
148 |
-
|
149 |
-
/** social networks elements */
|
150 |
-
$disabled_setting_mask[] = 'facebook';
|
151 |
-
$disabled_setting_mask[] = 'twitter';
|
152 |
-
$disabled_setting_mask[] = 'linkedin';
|
153 |
-
$disabled_setting_mask[] = 'behance';
|
154 |
-
$disabled_setting_mask[] = 'dribbble';
|
155 |
-
$disabled_setting_mask[] = 'instagram';
|
156 |
-
/** since 1.4.4 */
|
157 |
-
$disabled_setting_mask[] = 'tumblr';
|
158 |
-
$disabled_setting_mask[] = 'flickr';
|
159 |
-
$disabled_setting_mask[] = 'wordpress';
|
160 |
-
$disabled_setting_mask[] = 'youtube';
|
161 |
-
$disabled_setting_mask[] = 'pinterest';
|
162 |
-
$disabled_setting_mask[] = 'github';
|
163 |
-
$disabled_setting_mask[] = 'rss';
|
164 |
-
$disabled_setting_mask[] = 'google';
|
165 |
-
$disabled_setting_mask[] = 'email';
|
166 |
-
/** since 1.5.9 */
|
167 |
-
$disabled_setting_mask[] = 'dropbox';
|
168 |
-
$disabled_setting_mask[] = 'foursquare';
|
169 |
-
$disabled_setting_mask[] = 'vine';
|
170 |
-
$disabled_setting_mask[] = 'vimeo';
|
171 |
-
/** since 1.6.0 */
|
172 |
-
$disabled_setting_mask[] = 'yelp';
|
173 |
-
|
174 |
-
/**
|
175 |
-
* Filter to disable fields in customizer.
|
176 |
-
* @see wp.customize.control elements
|
177 |
-
* Returning array.
|
178 |
-
* @since 1.4.0
|
179 |
-
*
|
180 |
-
* @param array $disabled_setting_mask An array of disabled masks.
|
181 |
-
*/
|
182 |
-
$disabled_setting_mask = apply_filters( 'wpglobus_customize_disabled_setting_mask', $disabled_setting_mask );
|
183 |
-
|
184 |
-
$element_selector = array( 'input[type=text]', 'textarea' );
|
185 |
-
|
186 |
-
/**
|
187 |
-
* Filter for element selectors.
|
188 |
-
* Returning array.
|
189 |
-
* @since 1.4.0
|
190 |
-
*
|
191 |
-
* @param array $element_selector An array of selectors.
|
192 |
-
*/
|
193 |
-
$element_selector = apply_filters( 'wpglobus_customize_element_selector', $element_selector );
|
194 |
-
|
195 |
-
$set_link_by = array( 'link', 'url' );
|
196 |
-
|
197 |
-
/**
|
198 |
-
* Filter of masks to determine links.
|
199 |
-
* @see value data-customize-setting-link of element
|
200 |
-
* Returning array.
|
201 |
-
* @since 1.4.0
|
202 |
-
*
|
203 |
-
* @param array $set_link_by An array of masks.
|
204 |
-
*/
|
205 |
-
$set_link_by = apply_filters( 'wpglobus_customize_setlinkby', $set_link_by );
|
206 |
-
|
207 |
-
/**
|
208 |
-
* Filter of disabled sections.
|
209 |
-
*
|
210 |
-
* Returning array.
|
211 |
-
* @since 1.5.0
|
212 |
-
*
|
213 |
-
* @param array $disabled_sections An array of sections.
|
214 |
-
*/
|
215 |
-
$disabled_sections = array();
|
216 |
-
|
217 |
-
$disabled_sections = apply_filters( 'wpglobus_customize_disabled_sections', $disabled_sections );
|
218 |
-
|
219 |
-
/**
|
220 |
-
* Generate language select button for customizer
|
221 |
-
* @since 1.6.0
|
222 |
-
*
|
223 |
-
* @todo http://stackoverflow.com/questions/9607252/how-to-detect-when-an-element-over-another-element-in-javascript
|
224 |
-
*/
|
225 |
-
$attributes['href'] = '#';
|
226 |
-
$attributes['style'] = 'margin-left:48px;';
|
227 |
-
$attributes['class'] = 'customize-controls-close wpglobus-customize-selector';
|
228 |
-
|
229 |
-
/**
|
230 |
-
* Filter of attributes to generate language selector button.
|
231 |
-
* For example @see Divi theme http://www.elegantthemes.com/gallery/divi/ .
|
232 |
-
*
|
233 |
-
* Returning array.
|
234 |
-
* @since 1.6.0
|
235 |
-
*
|
236 |
-
* @param array $attributes An array of attributes.
|
237 |
-
* @param string Name of current theme.
|
238 |
-
*/
|
239 |
-
$attributes = apply_filters( 'wpglobus_customize_language_selector_attrs', $attributes, WPGlobus_Customize_Options::get_theme( 'name' ) );
|
240 |
-
|
241 |
-
$string = '';
|
242 |
-
|
243 |
-
foreach ( $attributes as $attribute => $value ) {
|
244 |
-
if ( null !== $value ){
|
245 |
-
$string .= esc_attr( $attribute ) . '="' . esc_attr( $value ) . '" ';
|
246 |
-
}
|
247 |
-
}
|
248 |
-
|
249 |
-
$selector_button = sprintf(
|
250 |
-
'<a %1$s>%2$s</a>',
|
251 |
-
trim( $string ),
|
252 |
-
'<span class="wpglobus-globe"></span>'
|
253 |
-
);
|
254 |
-
|
255 |
-
wp_enqueue_script(
|
256 |
-
'wpglobus-customize-control140',
|
257 |
-
WPGlobus::$PLUGIN_DIR_URL . 'includes/js/wpglobus-customize-control140' . WPGlobus::SCRIPT_SUFFIX() . '.js',
|
258 |
-
array( 'jquery' ),
|
259 |
-
WPGLOBUS_VERSION,
|
260 |
-
true
|
261 |
-
);
|
262 |
-
wp_localize_script(
|
263 |
-
'wpglobus-customize-control140',
|
264 |
-
'WPGlobusCustomize',
|
265 |
-
array(
|
266 |
-
'version' => WPGLOBUS_VERSION,
|
267 |
-
'selectorButton' => $selector_button,
|
268 |
-
'languageAdmin' => WPGlobus::Config()->language,
|
269 |
-
'disabledSettingMask' => $disabled_setting_mask,
|
270 |
-
'elementSelector' => $element_selector,
|
271 |
-
'setLinkBy' => $set_link_by,
|
272 |
-
'disabledSections' => $disabled_sections,
|
273 |
-
'controlClass' => 'wpglobus-customize-control',
|
274 |
-
)
|
275 |
-
);
|
276 |
-
|
277 |
-
}
|
278 |
-
|
279 |
-
} // class
|
280 |
-
|
281 |
-
endif;
|
282 |
-
# --- EOF
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/includes/admin/customize/class-wpglobus-customize170.php
DELETED
@@ -1,300 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Multilingual Customizer
|
4 |
-
* @package WPGlobus\Admin\Customizer
|
5 |
-
* @since 1.7.0
|
6 |
-
*/
|
7 |
-
|
8 |
-
if ( ! class_exists( 'WPGlobus_Customize' ) ) :
|
9 |
-
|
10 |
-
/**
|
11 |
-
* Class WPGlobus_Customize
|
12 |
-
*/
|
13 |
-
class WPGlobus_Customize {
|
14 |
-
|
15 |
-
public static function controller() {
|
16 |
-
/**
|
17 |
-
* @see \WP_Customize_Manager::wp_loaded
|
18 |
-
* It calls the `customize_register` action first,
|
19 |
-
* and then - the `customize_preview_init` action
|
20 |
-
*/
|
21 |
-
/*
|
22 |
-
add_action( 'customize_register', array(
|
23 |
-
'WPGlobus_Customize',
|
24 |
-
'action__customize_register'
|
25 |
-
) ); */
|
26 |
-
|
27 |
-
/**
|
28 |
-
* @since 1.5.0
|
29 |
-
*/
|
30 |
-
if ( WPGlobus_WP::is_pagenow( 'customize.php' ) ) {
|
31 |
-
require_once 'wpglobus-customize-filters.php';
|
32 |
-
}
|
33 |
-
|
34 |
-
add_action( 'customize_preview_init', array(
|
35 |
-
'WPGlobus_Customize',
|
36 |
-
'action__customize_preview_init'
|
37 |
-
) );
|
38 |
-
|
39 |
-
/**
|
40 |
-
* This is called by wp-admin/customize.php
|
41 |
-
*/
|
42 |
-
add_action( 'customize_controls_enqueue_scripts', array(
|
43 |
-
'WPGlobus_Customize',
|
44 |
-
'action__customize_controls_enqueue_scripts'
|
45 |
-
), 1000 );
|
46 |
-
|
47 |
-
if ( WPGlobus_WP::is_admin_doing_ajax() ) {
|
48 |
-
add_filter( 'clean_url', array(
|
49 |
-
'WPGlobus_Customize',
|
50 |
-
'filter__clean_url'
|
51 |
-
), 10, 2 );
|
52 |
-
}
|
53 |
-
|
54 |
-
}
|
55 |
-
|
56 |
-
/**
|
57 |
-
* Filter a string to check translations for URL.
|
58 |
-
* // We build multilingual URLs in customizer using the ':::' delimiter.
|
59 |
-
* We build multilingual URLs in customizer using the '|||' delimiter.
|
60 |
-
* See wpglobus-customize-control.js
|
61 |
-
*
|
62 |
-
* @note To work correctly, value of $url should begin with URL for default language.
|
63 |
-
* @see esc_url() - the 'clean_url' filter
|
64 |
-
* @since 1.3.0
|
65 |
-
*
|
66 |
-
* @param string $url The cleaned URL.
|
67 |
-
* @param string $original_url The URL prior to cleaning.
|
68 |
-
*
|
69 |
-
* @return string
|
70 |
-
*/
|
71 |
-
public static function filter__clean_url( $url, $original_url ) {
|
72 |
-
|
73 |
-
if ( false !== strpos( $original_url, '|||' ) ) {
|
74 |
-
$arr1 = array();
|
75 |
-
$arr = explode( '|||', $original_url );
|
76 |
-
foreach ( $arr as $k => $val ) {
|
77 |
-
// Note: 'null' is a string, not real `null`.
|
78 |
-
if ( 'null' !== $val ) {
|
79 |
-
$arr1[ WPGlobus::Config()->enabled_languages[ $k ] ] = $val;
|
80 |
-
}
|
81 |
-
}
|
82 |
-
return WPGlobus_Utils::build_multilingual_string( $arr1 );
|
83 |
-
}
|
84 |
-
|
85 |
-
return $url;
|
86 |
-
}
|
87 |
-
|
88 |
-
/**
|
89 |
-
* Add multilingual controls.
|
90 |
-
* The original controls will be hidden.
|
91 |
-
* @param WP_Customize_Manager $wp_customize
|
92 |
-
*/
|
93 |
-
public static function action__customize_register( WP_Customize_Manager $wp_customize ) {}
|
94 |
-
|
95 |
-
/**
|
96 |
-
* Load Customize Preview JS
|
97 |
-
* Used by hook: 'customize_preview_init'
|
98 |
-
* @see 'customize_preview_init'
|
99 |
-
*/
|
100 |
-
public static function action__customize_preview_init() {
|
101 |
-
wp_enqueue_script(
|
102 |
-
'wpglobus-customize-preview',
|
103 |
-
WPGlobus::$PLUGIN_DIR_URL . 'includes/js/wpglobus-customize-preview' .
|
104 |
-
WPGlobus::SCRIPT_SUFFIX() . '.js',
|
105 |
-
array( 'jquery', 'customize-preview' ),
|
106 |
-
WPGLOBUS_VERSION,
|
107 |
-
true
|
108 |
-
);
|
109 |
-
wp_localize_script(
|
110 |
-
'wpglobus-customize-preview',
|
111 |
-
'WPGlobusCustomize',
|
112 |
-
array(
|
113 |
-
'version' => WPGLOBUS_VERSION,
|
114 |
-
'blogname' => WPGlobus_Core::text_filter( get_option( 'blogname' ), WPGlobus::Config()->language ),
|
115 |
-
'blogdescription' => WPGlobus_Core::text_filter( get_option( 'blogdescription' ), WPGlobus::Config()->language )
|
116 |
-
)
|
117 |
-
);
|
118 |
-
}
|
119 |
-
|
120 |
-
/**
|
121 |
-
* Load Customize Control JS
|
122 |
-
*/
|
123 |
-
public static function action__customize_controls_enqueue_scripts() {
|
124 |
-
|
125 |
-
/**
|
126 |
-
* @see wp.customize.control elements
|
127 |
-
* for example wp.customize.control('blogname');
|
128 |
-
*/
|
129 |
-
$disabled_setting_mask = array();
|
130 |
-
|
131 |
-
/** navigation menu elements */
|
132 |
-
$disabled_setting_mask[] = 'nav_menu_item';
|
133 |
-
$disabled_setting_mask[] = 'nav_menu[';
|
134 |
-
$disabled_setting_mask[] = 'nav_menu_locations';
|
135 |
-
$disabled_setting_mask[] = 'new_menu_name';
|
136 |
-
|
137 |
-
/** widgets */
|
138 |
-
$disabled_setting_mask[] = 'widgets';
|
139 |
-
|
140 |
-
/** color elements */
|
141 |
-
$disabled_setting_mask[] = 'color';
|
142 |
-
|
143 |
-
/** yoast seo */
|
144 |
-
$disabled_setting_mask[] = 'wpseo';
|
145 |
-
|
146 |
-
/** css elements */
|
147 |
-
$disabled_setting_mask[] = 'css';
|
148 |
-
|
149 |
-
/** social networks elements */
|
150 |
-
$disabled_setting_mask[] = 'facebook';
|
151 |
-
$disabled_setting_mask[] = 'twitter';
|
152 |
-
$disabled_setting_mask[] = 'linkedin';
|
153 |
-
$disabled_setting_mask[] = 'behance';
|
154 |
-
$disabled_setting_mask[] = 'dribbble';
|
155 |
-
$disabled_setting_mask[] = 'instagram';
|
156 |
-
/** since 1.4.4 */
|
157 |
-
$disabled_setting_mask[] = 'tumblr';
|
158 |
-
$disabled_setting_mask[] = 'flickr';
|
159 |
-
$disabled_setting_mask[] = 'wordpress';
|
160 |
-
$disabled_setting_mask[] = 'youtube';
|
161 |
-
$disabled_setting_mask[] = 'pinterest';
|
162 |
-
$disabled_setting_mask[] = 'github';
|
163 |
-
$disabled_setting_mask[] = 'rss';
|
164 |
-
$disabled_setting_mask[] = 'google';
|
165 |
-
$disabled_setting_mask[] = 'email';
|
166 |
-
/** since 1.5.9 */
|
167 |
-
$disabled_setting_mask[] = 'dropbox';
|
168 |
-
$disabled_setting_mask[] = 'foursquare';
|
169 |
-
$disabled_setting_mask[] = 'vine';
|
170 |
-
$disabled_setting_mask[] = 'vimeo';
|
171 |
-
/** since 1.6.0 */
|
172 |
-
$disabled_setting_mask[] = 'yelp';
|
173 |
-
|
174 |
-
/**
|
175 |
-
* Exclude fields from Static Front Page section.
|
176 |
-
* It may be added to customizer in many themes.
|
177 |
-
*
|
178 |
-
* @since 1.7.6
|
179 |
-
*/
|
180 |
-
$disabled_setting_mask[] = 'page_on_front';
|
181 |
-
$disabled_setting_mask[] = 'page_for_posts';
|
182 |
-
|
183 |
-
/**
|
184 |
-
* Filter to disable fields in customizer.
|
185 |
-
* @see wp.customize.control elements
|
186 |
-
* Returning array.
|
187 |
-
* @since 1.4.0
|
188 |
-
*
|
189 |
-
* @param array $disabled_setting_mask An array of disabled masks.
|
190 |
-
*/
|
191 |
-
$disabled_setting_mask = apply_filters( 'wpglobus_customize_disabled_setting_mask', $disabled_setting_mask );
|
192 |
-
|
193 |
-
$element_selector = array( 'input[type=text]', 'textarea' );
|
194 |
-
|
195 |
-
/**
|
196 |
-
* Filter for element selectors.
|
197 |
-
* Returning array.
|
198 |
-
* @since 1.4.0
|
199 |
-
*
|
200 |
-
* @param array $element_selector An array of selectors.
|
201 |
-
*/
|
202 |
-
$element_selector = apply_filters( 'wpglobus_customize_element_selector', $element_selector );
|
203 |
-
|
204 |
-
$set_link_by = array( 'link', 'url' );
|
205 |
-
|
206 |
-
/**
|
207 |
-
* Filter of masks to determine links.
|
208 |
-
* @see value data-customize-setting-link of element
|
209 |
-
* Returning array.
|
210 |
-
* @since 1.4.0
|
211 |
-
*
|
212 |
-
* @param array $set_link_by An array of masks.
|
213 |
-
*/
|
214 |
-
$set_link_by = apply_filters( 'wpglobus_customize_setlinkby', $set_link_by );
|
215 |
-
|
216 |
-
/**
|
217 |
-
* Filter of disabled sections.
|
218 |
-
*
|
219 |
-
* Returning array.
|
220 |
-
* @since 1.5.0
|
221 |
-
*
|
222 |
-
* @param array $disabled_sections An array of sections.
|
223 |
-
*/
|
224 |
-
$disabled_sections = array();
|
225 |
-
|
226 |
-
$disabled_sections = apply_filters( 'wpglobus_customize_disabled_sections', $disabled_sections );
|
227 |
-
|
228 |
-
/**
|
229 |
-
* Generate language select button for customizer
|
230 |
-
* @since 1.6.0
|
231 |
-
*
|
232 |
-
* @todo http://stackoverflow.com/questions/9607252/how-to-detect-when-an-element-over-another-element-in-javascript
|
233 |
-
*/
|
234 |
-
$attributes['href'] = '#';
|
235 |
-
$attributes['style'] = 'margin-left:48px;';
|
236 |
-
$attributes['class'] = 'customize-controls-close wpglobus-customize-selector';
|
237 |
-
|
238 |
-
/**
|
239 |
-
* Filter of attributes to generate language selector button.
|
240 |
-
* For example @see Divi theme http://www.elegantthemes.com/gallery/divi/ .
|
241 |
-
*
|
242 |
-
* Returning array.
|
243 |
-
* @since 1.6.0
|
244 |
-
*
|
245 |
-
* @param array $attributes An array of attributes.
|
246 |
-
* @param string Name of current theme.
|
247 |
-
*/
|
248 |
-
$attributes = apply_filters( 'wpglobus_customize_language_selector_attrs', $attributes, WPGlobus_Customize_Options::get_theme( 'name' ) );
|
249 |
-
|
250 |
-
$string = '';
|
251 |
-
|
252 |
-
foreach ( $attributes as $attribute => $value ) {
|
253 |
-
if ( null !== $value ){
|
254 |
-
$string .= esc_attr( $attribute ) . '="' . esc_attr( $value ) . '" ';
|
255 |
-
}
|
256 |
-
}
|
257 |
-
|
258 |
-
$selector_button = sprintf(
|
259 |
-
'<a %1$s>%2$s</a>',
|
260 |
-
trim( $string ),
|
261 |
-
'<span class="wpglobus-globe"></span>'
|
262 |
-
);
|
263 |
-
|
264 |
-
/**
|
265 |
-
* Since 1.7.9
|
266 |
-
*/
|
267 |
-
$changeset_uuid = null;
|
268 |
-
if ( ! empty( $_GET['changeset_uuid'] ) ) { // WPCS: input var ok, sanitization ok.
|
269 |
-
$changeset_uuid = sanitize_text_field( wp_unslash( $_GET['changeset_uuid'] ) ); // WPCS: input var ok.
|
270 |
-
}
|
271 |
-
|
272 |
-
wp_enqueue_script(
|
273 |
-
'wpglobus-customize-control170',
|
274 |
-
WPGlobus::$PLUGIN_DIR_URL . 'includes/js/wpglobus-customize-control170' . WPGlobus::SCRIPT_SUFFIX() . '.js',
|
275 |
-
array( 'jquery' ),
|
276 |
-
WPGLOBUS_VERSION,
|
277 |
-
true
|
278 |
-
);
|
279 |
-
wp_localize_script(
|
280 |
-
'wpglobus-customize-control170',
|
281 |
-
'WPGlobusCustomize',
|
282 |
-
array(
|
283 |
-
'version' => WPGLOBUS_VERSION,
|
284 |
-
'selectorButton' => $selector_button,
|
285 |
-
'languageAdmin' => WPGlobus::Config()->language,
|
286 |
-
'disabledSettingMask' => $disabled_setting_mask,
|
287 |
-
'elementSelector' => $element_selector,
|
288 |
-
'setLinkBy' => $set_link_by,
|
289 |
-
'disabledSections' => $disabled_sections,
|
290 |
-
'controlClass' => 'wpglobus-customize-control',
|
291 |
-
'changeset_uuid' => $changeset_uuid
|
292 |
-
)
|
293 |
-
);
|
294 |
-
|
295 |
-
}
|
296 |
-
|
297 |
-
} // class
|
298 |
-
|
299 |
-
endif;
|
300 |
-
# --- EOF
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/includes/admin/customize/class-wpglobus-customize190.php
DELETED
@@ -1,555 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Multilingual Customizer.
|
4 |
-
*
|
5 |
-
* @since 1.9.0
|
6 |
-
*
|
7 |
-
* @package WPGlobus\Admin\Customizer
|
8 |
-
*/
|
9 |
-
|
10 |
-
if ( ! class_exists( 'WPGlobus_Customize' ) ) :
|
11 |
-
|
12 |
-
/**
|
13 |
-
* Class WPGlobus_Customize
|
14 |
-
*/
|
15 |
-
class WPGlobus_Customize {
|
16 |
-
|
17 |
-
/**
|
18 |
-
* Controller.
|
19 |
-
*/
|
20 |
-
public static function controller() {
|
21 |
-
|
22 |
-
add_action( 'admin_init', array( __CLASS__, 'on__admin_init' ), 1 );
|
23 |
-
|
24 |
-
/**
|
25 |
-
* It calls the `customize_register` action first,
|
26 |
-
* and then - the `customize_preview_init` action.
|
27 |
-
*
|
28 |
-
* @see \WP_Customize_Manager::wp_loaded
|
29 |
-
*
|
30 |
-
* add_action( 'customize_register', array(
|
31 |
-
* 'WPGlobus_Customize',
|
32 |
-
* 'action__customize_register'
|
33 |
-
* ) );
|
34 |
-
*/
|
35 |
-
|
36 |
-
/**
|
37 |
-
* Customizer filters.
|
38 |
-
*
|
39 |
-
* @since 1.5.0
|
40 |
-
*/
|
41 |
-
if ( WPGlobus_WP::is_pagenow( 'customize.php' ) ) {
|
42 |
-
require_once 'wpglobus-customize-filters.php';
|
43 |
-
}
|
44 |
-
|
45 |
-
add_action(
|
46 |
-
'customize_preview_init',
|
47 |
-
array( 'WPGlobus_Customize', 'action__customize_preview_init' )
|
48 |
-
);
|
49 |
-
|
50 |
-
/**
|
51 |
-
* This is called by wp-admin/customize.php
|
52 |
-
*/
|
53 |
-
add_action(
|
54 |
-
'customize_controls_enqueue_scripts',
|
55 |
-
array( 'WPGlobus_Customize', 'action__customize_controls_enqueue_scripts' ),
|
56 |
-
1000
|
57 |
-
);
|
58 |
-
|
59 |
-
if ( WPGlobus_WP::is_admin_doing_ajax() ) {
|
60 |
-
add_filter(
|
61 |
-
'clean_url',
|
62 |
-
array( 'WPGlobus_Customize', 'filter__clean_url' ),
|
63 |
-
10,
|
64 |
-
2
|
65 |
-
);
|
66 |
-
}
|
67 |
-
|
68 |
-
/**
|
69 |
-
* Filter customize_changeset_save_data.
|
70 |
-
*
|
71 |
-
* @see wp-includes\class-wp-customize-manager.php
|
72 |
-
* @since 1.9.3
|
73 |
-
*/
|
74 |
-
add_filter(
|
75 |
-
'customize_changeset_save_data',
|
76 |
-
array( __CLASS__, 'filter__customize_changeset_save_data' ),
|
77 |
-
1,
|
78 |
-
2
|
79 |
-
);
|
80 |
-
|
81 |
-
}
|
82 |
-
|
83 |
-
/**
|
84 |
-
* Action on admin init.
|
85 |
-
*
|
86 |
-
* @since 1.9.3
|
87 |
-
*/
|
88 |
-
public static function on__admin_init() {
|
89 |
-
|
90 |
-
$excluded_mods = array(
|
91 |
-
'0',
|
92 |
-
'nav_menu_locations',
|
93 |
-
'sidebars_widgets',
|
94 |
-
'custom_css_post_id',
|
95 |
-
'wpglobus_blogname',
|
96 |
-
'wpglobus_blogdescription',
|
97 |
-
);
|
98 |
-
|
99 |
-
$mods = get_theme_mods();
|
100 |
-
|
101 |
-
$filtered_mods = array();
|
102 |
-
|
103 |
-
if ( $mods ) {
|
104 |
-
foreach ( $mods as $mod_key => $mod_value ) {
|
105 |
-
|
106 |
-
if ( in_array( $mod_key, $excluded_mods, true ) ) {
|
107 |
-
continue;
|
108 |
-
}
|
109 |
-
|
110 |
-
if ( ! is_string( $mod_value ) ) {
|
111 |
-
continue;
|
112 |
-
}
|
113 |
-
|
114 |
-
$filtered_mods[ $mod_key ] = $mod_value;
|
115 |
-
|
116 |
-
}
|
117 |
-
}
|
118 |
-
|
119 |
-
/**
|
120 |
-
* Filters the theme mods before save.
|
121 |
-
*
|
122 |
-
* @since 1.9.3
|
123 |
-
*
|
124 |
-
* @param array $filtered_mods Filtered theme modifications.
|
125 |
-
* @param array|void $mods Theme modifications.
|
126 |
-
*/
|
127 |
-
$filtered_mods = apply_filters( 'wpglobus_customize_filtered_mods', $filtered_mods, $mods );
|
128 |
-
|
129 |
-
foreach ( $filtered_mods as $mod_key => $mod_value ) {
|
130 |
-
|
131 |
-
/**
|
132 |
-
* Filter {@see filter "pre_set_theme_mod_{$name}" in \wp-includes\theme.php}.
|
133 |
-
*/
|
134 |
-
add_filter(
|
135 |
-
"pre_set_theme_mod_{$mod_key}",
|
136 |
-
array( __CLASS__, 'filter__pre_set_theme_mod' ),
|
137 |
-
1,
|
138 |
-
2
|
139 |
-
);
|
140 |
-
|
141 |
-
}
|
142 |
-
}
|
143 |
-
|
144 |
-
/**
|
145 |
-
* Filter a theme mod.
|
146 |
-
*
|
147 |
-
* @since 1.9.3
|
148 |
-
*
|
149 |
-
* @param string $value The value.
|
150 |
-
* @param string $old_value Unused.
|
151 |
-
*
|
152 |
-
* @return bool|string
|
153 |
-
*/
|
154 |
-
public static function filter__pre_set_theme_mod(
|
155 |
-
$value,
|
156 |
-
/**
|
157 |
-
* Unused.
|
158 |
-
*
|
159 |
-
* @noinspection PhpUnusedParameterInspection
|
160 |
-
*/
|
161 |
-
$old_value
|
162 |
-
) {
|
163 |
-
|
164 |
-
if ( ! is_string( $value ) ) {
|
165 |
-
return $value;
|
166 |
-
}
|
167 |
-
|
168 |
-
$new_value = self::_build_multilingual_string( $value );
|
169 |
-
|
170 |
-
if ( $new_value ) {
|
171 |
-
return $new_value;
|
172 |
-
}
|
173 |
-
|
174 |
-
return $value;
|
175 |
-
|
176 |
-
}
|
177 |
-
|
178 |
-
/**
|
179 |
-
* Save/update a changeset.
|
180 |
-
*
|
181 |
-
* @since 1.9.3
|
182 |
-
*
|
183 |
-
* @param array $data The data.
|
184 |
-
* @param string $filter_context Unused.
|
185 |
-
*
|
186 |
-
* @return mixed
|
187 |
-
*/
|
188 |
-
public static function filter__customize_changeset_save_data(
|
189 |
-
$data,
|
190 |
-
/**
|
191 |
-
* Unused.
|
192 |
-
*
|
193 |
-
* @noinspection PhpUnusedParameterInspection
|
194 |
-
*/
|
195 |
-
$filter_context
|
196 |
-
) {
|
197 |
-
|
198 |
-
foreach ( $data as $option => $value ) {
|
199 |
-
|
200 |
-
$new_value = self::_build_multilingual_string( $value['value'] );
|
201 |
-
|
202 |
-
if ( $new_value ) {
|
203 |
-
$data[ $option ]['value'] = $new_value;
|
204 |
-
}
|
205 |
-
}
|
206 |
-
|
207 |
-
return $data;
|
208 |
-
|
209 |
-
}
|
210 |
-
|
211 |
-
/**
|
212 |
-
* Build standard WPGlobus multilingual string.
|
213 |
-
*
|
214 |
-
* @since 1.9.3
|
215 |
-
*
|
216 |
-
* @param string $value The value.
|
217 |
-
*
|
218 |
-
* @return bool|string
|
219 |
-
*/
|
220 |
-
public static function _build_multilingual_string( $value ) { // phpcs:ignore PSR2.Methods.MethodDeclaration.Underscore
|
221 |
-
|
222 |
-
/**
|
223 |
-
* Ignore if not a string.
|
224 |
-
*
|
225 |
-
* @since 1.9.6
|
226 |
-
*/
|
227 |
-
if ( ! is_string( $value ) ) {
|
228 |
-
return $value;
|
229 |
-
}
|
230 |
-
|
231 |
-
// $new_value = '';
|
232 |
-
|
233 |
-
if ( false === strpos( $value, '|||' ) ) {
|
234 |
-
$new_value = false;
|
235 |
-
} else {
|
236 |
-
|
237 |
-
$arr1 = array();
|
238 |
-
$arr = explode( '|||', $value );
|
239 |
-
foreach ( $arr as $k => $val ) {
|
240 |
-
// Note: 'null' is a string, not real `null`.
|
241 |
-
if ( 'null' !== $val ) {
|
242 |
-
$arr1[ WPGlobus::Config()->enabled_languages[ $k ] ] = $val;
|
243 |
-
}
|
244 |
-
}
|
245 |
-
|
246 |
-
$new_value = WPGlobus_Utils::build_multilingual_string( $arr1 );
|
247 |
-
|
248 |
-
}
|
249 |
-
|
250 |
-
return $new_value;
|
251 |
-
|
252 |
-
}
|
253 |
-
|
254 |
-
/**
|
255 |
-
* Filter a string to check translations for URL.
|
256 |
-
* // We build multilingual URLs in customizer using the ':::' delimiter.
|
257 |
-
* We build multilingual URLs in customizer using the '|||' delimiter.
|
258 |
-
* See wpglobus-customize-control.js
|
259 |
-
*
|
260 |
-
* @note To work correctly, value of $url should begin with URL for default language.
|
261 |
-
* @see esc_url() - the 'clean_url' filter
|
262 |
-
* @since 1.3.0
|
263 |
-
*
|
264 |
-
* @param string $url The cleaned URL.
|
265 |
-
* @param string $original_url The URL prior to cleaning.
|
266 |
-
*
|
267 |
-
* @return string
|
268 |
-
*/
|
269 |
-
public static function filter__clean_url( $url, $original_url ) {
|
270 |
-
|
271 |
-
if ( false !== strpos( $original_url, '|||' ) ) {
|
272 |
-
$arr1 = array();
|
273 |
-
$arr = explode( '|||', $original_url );
|
274 |
-
foreach ( $arr as $k => $val ) {
|
275 |
-
// Note: 'null' is a string, not real `null`.
|
276 |
-
if ( 'null' !== $val ) {
|
277 |
-
$arr1[ WPGlobus::Config()->enabled_languages[ $k ] ] = $val;
|
278 |
-
}
|
279 |
-
}
|
280 |
-
|
281 |
-
return WPGlobus_Utils::build_multilingual_string( $arr1 );
|
282 |
-
}
|
283 |
-
|
284 |
-
return $url;
|
285 |
-
}
|
286 |
-
|
287 |
-
/**
|
288 |
-
* Add multilingual controls.
|
289 |
-
* The original controls will be hidden.
|
290 |
-
*
|
291 |
-
* @param WP_Customize_Manager $wp_customize Customize Manager.
|
292 |
-
*/
|
293 |
-
public static function action__customize_register( WP_Customize_Manager $wp_customize ) {
|
294 |
-
}
|
295 |
-
|
296 |
-
/**
|
297 |
-
* Load Customize Preview JS
|
298 |
-
* Used by hook: 'customize_preview_init'
|
299 |
-
*
|
300 |
-
* @see 'customize_preview_init'
|
301 |
-
*/
|
302 |
-
public static function action__customize_preview_init() {
|
303 |
-
wp_enqueue_script(
|
304 |
-
'wpglobus-customize-preview',
|
305 |
-
WPGlobus::plugin_dir_url() . 'includes/js/wpglobus-customize-preview' .
|
306 |
-
WPGlobus::SCRIPT_SUFFIX() . '.js',
|
307 |
-
array( 'jquery', 'customize-preview' ),
|
308 |
-
WPGLOBUS_VERSION,
|
309 |
-
true
|
310 |
-
);
|
311 |
-
wp_localize_script(
|
312 |
-
'wpglobus-customize-preview',
|
313 |
-
'WPGlobusCustomize',
|
314 |
-
array(
|
315 |
-
'version' => WPGLOBUS_VERSION,
|
316 |
-
'blogname' => WPGlobus_Core::text_filter( get_option( 'blogname' ), WPGlobus::Config()->language ),
|
317 |
-
'blogdescription' => WPGlobus_Core::text_filter( get_option( 'blogdescription' ), WPGlobus::Config()->language ),
|
318 |
-
)
|
319 |
-
);
|
320 |
-
}
|
321 |
-
|
322 |
-
/**
|
323 |
-
* Load Customize Control JS
|
324 |
-
*/
|
325 |
-
public static function action__customize_controls_enqueue_scripts() {
|
326 |
-
|
327 |
-
global $wp_version;
|
328 |
-
|
329 |
-
/**
|
330 |
-
* See wp.customize.control elements
|
331 |
-
* for example wp.customize.control('blogname');
|
332 |
-
*/
|
333 |
-
$disabled_setting_mask = array();
|
334 |
-
|
335 |
-
// navigation menu elements.
|
336 |
-
$disabled_setting_mask[] = 'nav_menu_item';
|
337 |
-
$disabled_setting_mask[] = 'nav_menu[';
|
338 |
-
$disabled_setting_mask[] = 'nav_menu_locations';
|
339 |
-
$disabled_setting_mask[] = 'new_menu_name';
|
340 |
-
|
341 |
-
// widgets.
|
342 |
-
$disabled_setting_mask[] = 'widgets';
|
343 |
-
|
344 |
-
// color elements.
|
345 |
-
$disabled_setting_mask[] = 'color';
|
346 |
-
|
347 |
-
// yoast seo.
|
348 |
-
$disabled_setting_mask[] = 'wpseo';
|
349 |
-
|
350 |
-
// css elements.
|
351 |
-
$disabled_setting_mask[] = 'css';
|
352 |
-
|
353 |
-
// social networks elements.
|
354 |
-
$disabled_setting_mask[] = 'facebook';
|
355 |
-
$disabled_setting_mask[] = 'twitter';
|
356 |
-
$disabled_setting_mask[] = 'linkedin';
|
357 |
-
$disabled_setting_mask[] = 'behance';
|
358 |
-
$disabled_setting_mask[] = 'dribbble';
|
359 |
-
$disabled_setting_mask[] = 'instagram';
|
360 |
-
/**
|
361 |
-
* Tumblr.
|
362 |
-
*
|
363 |
-
* @since 1.4.4
|
364 |
-
*/
|
365 |
-
$disabled_setting_mask[] = 'tumblr';
|
366 |
-
$disabled_setting_mask[] = 'flickr';
|
367 |
-
$disabled_setting_mask[] = 'wordpress'; // phpcs:ignore WordPress.WP.CapitalPDangit.Misspelled
|
368 |
-
$disabled_setting_mask[] = 'youtube';
|
369 |
-
$disabled_setting_mask[] = 'pinterest';
|
370 |
-
$disabled_setting_mask[] = 'github';
|
371 |
-
$disabled_setting_mask[] = 'rss';
|
372 |
-
$disabled_setting_mask[] = 'google';
|
373 |
-
$disabled_setting_mask[] = 'email';
|
374 |
-
/**
|
375 |
-
* Dropbox.
|
376 |
-
*
|
377 |
-
* @since 1.5.9
|
378 |
-
*/
|
379 |
-
$disabled_setting_mask[] = 'dropbox';
|
380 |
-
$disabled_setting_mask[] = 'foursquare';
|
381 |
-
$disabled_setting_mask[] = 'vine';
|
382 |
-
$disabled_setting_mask[] = 'vimeo';
|
383 |
-
/**
|
384 |
-
* Yelp.
|
385 |
-
*
|
386 |
-
* @since 1.6.0
|
387 |
-
*/
|
388 |
-
$disabled_setting_mask[] = 'yelp';
|
389 |
-
|
390 |
-
/**
|
391 |
-
* Exclude fields from Static Front Page section.
|
392 |
-
* It may be added to customizer in many themes.
|
393 |
-
*
|
394 |
-
* @since 1.7.6
|
395 |
-
*/
|
396 |
-
$disabled_setting_mask[] = 'page_on_front';
|
397 |
-
$disabled_setting_mask[] = 'page_for_posts';
|
398 |
-
|
399 |
-
/**
|
400 |
-
* Filter to disable fields in customizer.
|
401 |
-
* See wp.customize.control elements
|
402 |
-
* Returning array.
|
403 |
-
*
|
404 |
-
* @since 1.4.0
|
405 |
-
*
|
406 |
-
* @param array $disabled_setting_mask An array of disabled masks.
|
407 |
-
*/
|
408 |
-
$disabled_setting_mask = apply_filters( 'wpglobus_customize_disabled_setting_mask', $disabled_setting_mask );
|
409 |
-
|
410 |
-
$element_selector = array( 'input[type=text]', 'textarea' );
|
411 |
-
|
412 |
-
/**
|
413 |
-
* Filter for element selectors.
|
414 |
-
* Returning array.
|
415 |
-
*
|
416 |
-
* @since 1.4.0
|
417 |
-
*
|
418 |
-
* @param array $element_selector An array of selectors.
|
419 |
-
*/
|
420 |
-
$element_selector = apply_filters( 'wpglobus_customize_element_selector', $element_selector );
|
421 |
-
|
422 |
-
$set_link_by = array( 'link', 'url' );
|
423 |
-
|
424 |
-
/**
|
425 |
-
* Filter of masks to determine links.
|
426 |
-
* See value data-customize-setting-link of element
|
427 |
-
* Returning array.
|
428 |
-
*
|
429 |
-
* @since 1.4.0
|
430 |
-
*
|
431 |
-
* @param array $set_link_by An array of masks.
|
432 |
-
*/
|
433 |
-
$set_link_by = apply_filters( 'wpglobus_customize_setlinkby', $set_link_by );
|
434 |
-
|
435 |
-
/**
|
436 |
-
* Filter of disabled sections.
|
437 |
-
*
|
438 |
-
* Returning array.
|
439 |
-
*
|
440 |
-
* @since 1.5.0
|
441 |
-
*
|
442 |
-
* @param array $disabled_sections An array of sections.
|
443 |
-
*/
|
444 |
-
$disabled_sections = array();
|
445 |
-
|
446 |
-
$disabled_sections = apply_filters( 'wpglobus_customize_disabled_sections', $disabled_sections );
|
447 |
-
|
448 |
-
/**
|
449 |
-
* Generate language select button for customizer
|
450 |
-
*
|
451 |
-
* @since 1.6.0
|
452 |
-
*
|
453 |
-
* @todo http://stackoverflow.com/questions/9607252/how-to-detect-when-an-element-over-another-element-in-javascript
|
454 |
-
*/
|
455 |
-
$attributes['href'] = '#';
|
456 |
-
$attributes['style'] = 'margin-left:48px;';
|
457 |
-
$attributes['class'] = 'customize-controls-close wpglobus-customize-selector';
|
458 |
-
|
459 |
-
/**
|
460 |
-
* Filter of attributes to generate language selector button.
|
461 |
-
* For example @see Divi theme http://www.elegantthemes.com/gallery/divi/ .
|
462 |
-
*
|
463 |
-
* Returning array.
|
464 |
-
*
|
465 |
-
* @since 1.6.0
|
466 |
-
*
|
467 |
-
* @param array $attributes An array of attributes.
|
468 |
-
* @param string Name of current theme.
|
469 |
-
*/
|
470 |
-
$attributes = apply_filters( 'wpglobus_customize_language_selector_attrs', $attributes, WPGlobus_Customize_Options::get_theme( 'name' ) );
|
471 |
-
|
472 |
-
$string = '';
|
473 |
-
|
474 |
-
foreach ( $attributes as $attribute => $value ) {
|
475 |
-
if ( null !== $value ) {
|
476 |
-
$string .= esc_attr( $attribute ) . '="' . esc_attr( $value ) . '" ';
|
477 |
-
}
|
478 |
-
}
|
479 |
-
|
480 |
-
$selector_button = sprintf(
|
481 |
-
'<a %1$s data-language="' . WPGlobus::Config()->default_language . '">%2$s</a>',
|
482 |
-
trim( $string ),
|
483 |
-
'<span class="wpglobus-globe"></span>'
|
484 |
-
);
|
485 |
-
|
486 |
-
/**
|
487 |
-
* Since 1.7.9
|
488 |
-
*/
|
489 |
-
$changeset_uuid = null;
|
490 |
-
if ( ! empty( $_GET['changeset_uuid'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
|
491 |
-
$changeset_uuid = sanitize_text_field( wp_unslash( $_GET['changeset_uuid'] ) ); // phpcs:ignore WordPress.Security.NonceVerification.Recommended
|
492 |
-
}
|
493 |
-
|
494 |
-
/**
|
495 |
-
* Since 1.9.0
|
496 |
-
*/
|
497 |
-
$selector_type = 'dropdown';
|
498 |
-
$selector_types = array( 'dropdown', 'switch' );
|
499 |
-
|
500 |
-
/**
|
501 |
-
* Filter selector type.
|
502 |
-
*
|
503 |
-
* @since 1.9.0
|
504 |
-
*
|
505 |
-
* @param string $selector_type Name of the current selector type.
|
506 |
-
* @param array $selector_types An array of existing selector types.
|
507 |
-
*
|
508 |
-
* @return string
|
509 |
-
*/
|
510 |
-
$selector_type = apply_filters( 'wpglobus_customize_language_selector_type', $selector_type, $selector_types );
|
511 |
-
|
512 |
-
if ( ! in_array( $selector_type, $selector_types, true ) ) {
|
513 |
-
$selector_type = 'dropdown';
|
514 |
-
}
|
515 |
-
|
516 |
-
/**
|
517 |
-
* Adjust for WP 5.2+.
|
518 |
-
*
|
519 |
-
* @since 2.2.0
|
520 |
-
*/
|
521 |
-
$selector_html = '<span style="margin-left:5px;" class="wpglobus-icon-globe"></span><span class="current-language" style="font-weight:bold;">{{language}}</span>';
|
522 |
-
if ( version_compare( $wp_version, '5.1.999', '>' ) ) {
|
523 |
-
$selector_html = '<span style="position:fixed;top:-7px;">' . $selector_html . '</span>';
|
524 |
-
}
|
525 |
-
|
526 |
-
wp_enqueue_script(
|
527 |
-
'wpglobus-customize-control190',
|
528 |
-
WPGlobus::plugin_dir_url() . 'includes/js/wpglobus-customize-control190' . WPGlobus::SCRIPT_SUFFIX() . '.js',
|
529 |
-
array( 'jquery' ),
|
530 |
-
WPGLOBUS_VERSION,
|
531 |
-
true
|
532 |
-
);
|
533 |
-
wp_localize_script(
|
534 |
-
'wpglobus-customize-control190',
|
535 |
-
'WPGlobusCustomize',
|
536 |
-
array(
|
537 |
-
'version' => WPGLOBUS_VERSION,
|
538 |
-
'selectorType' => $selector_type,
|
539 |
-
'selectorButton' => $selector_button,
|
540 |
-
'languageAdmin' => WPGlobus::Config()->language,
|
541 |
-
'disabledSettingMask' => $disabled_setting_mask,
|
542 |
-
'elementSelector' => $element_selector,
|
543 |
-
'setLinkBy' => $set_link_by,
|
544 |
-
'disabledSections' => $disabled_sections,
|
545 |
-
'controlClass' => 'wpglobus-customize-control',
|
546 |
-
'changeset_uuid' => $changeset_uuid,
|
547 |
-
'selector_html' => $selector_html,
|
548 |
-
)
|
549 |
-
);
|
550 |
-
|
551 |
-
}
|
552 |
-
|
553 |
-
} // class
|
554 |
-
|
555 |
-
endif;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/includes/admin/customize/wpglobus-customize-filters.php
DELETED
@@ -1,87 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Filters for customizer
|
4 |
-
*
|
5 |
-
* All add_filter and add_action calls should be placed here
|
6 |
-
*
|
7 |
-
* @package WPGlobus\Admin\Customizer
|
8 |
-
*/
|
9 |
-
add_filter( 'wpglobus_customize_disabled_sections', array( 'WPGlobus_Customize_Filters', 'disable_sections' ) );
|
10 |
-
|
11 |
-
if ( ! class_exists( 'WPGlobus_Customize_Filters' ) ) :
|
12 |
-
|
13 |
-
/**
|
14 |
-
* Class WPGlobus_Customize_Filters
|
15 |
-
*/
|
16 |
-
class WPGlobus_Customize_Filters {
|
17 |
-
|
18 |
-
/**
|
19 |
-
* Disable sections in customizer.
|
20 |
-
*
|
21 |
-
* @param array $disabled_sections
|
22 |
-
*
|
23 |
-
* @return array
|
24 |
-
*/
|
25 |
-
public static function disable_sections( $disabled_sections ) {
|
26 |
-
|
27 |
-
if ( class_exists( 'Easy_Google_Fonts' ) ) {
|
28 |
-
/**
|
29 |
-
* @see https://wordpress.org/plugins/easy-google-fonts/
|
30 |
-
*/
|
31 |
-
$disabled_sections[] = 'tt_font_typography';
|
32 |
-
}
|
33 |
-
|
34 |
-
/**
|
35 |
-
* @since 2.2.30
|
36 |
-
*/
|
37 |
-
if ( defined( 'GFP_VERSION' ) // premium
|
38 |
-
||
|
39 |
-
defined( 'OGF_VERSION' ) // free
|
40 |
-
) {
|
41 |
-
/**
|
42 |
-
* @see premium https://fontsplugin.com/
|
43 |
-
* @see free https://wordpress.org/plugins/olympus-google-fonts/
|
44 |
-
*/
|
45 |
-
$disabled_sections[] = 'ogf_custom';
|
46 |
-
$disabled_sections[] = 'ogf_advanced__css';
|
47 |
-
}
|
48 |
-
|
49 |
-
/**
|
50 |
-
* @since 2.2.28
|
51 |
-
*/
|
52 |
-
if ( class_exists( 'WPGlobus_Customize_Themes' ) ) {
|
53 |
-
|
54 |
-
/**
|
55 |
-
* @see W.I.P. `Prevent using element with no id attribute` in includes\js\wpglobus-customize-control190.js
|
56 |
-
* to getting sections for disabling.
|
57 |
-
*/
|
58 |
-
$theme_name = WPGlobus_Customize_Themes::get_theme_name_lc();
|
59 |
-
|
60 |
-
if ( 'startkit' == $theme_name ) {
|
61 |
-
/**
|
62 |
-
* @see https://wordpress.org/themes/startkit/
|
63 |
-
*/
|
64 |
-
$disabled_sections[] = 'slider_setting';
|
65 |
-
$disabled_sections[] = 'service_setting';
|
66 |
-
$disabled_sections[] = 'testimonial_setting';
|
67 |
-
$disabled_sections[] = 'footer_icon';
|
68 |
-
$disabled_sections[] = 'Body_typography';
|
69 |
-
$disabled_sections[] = 'paragraph_typography';
|
70 |
-
$disabled_sections[] = 'H1_typography';
|
71 |
-
$disabled_sections[] = 'H2_typography';
|
72 |
-
$disabled_sections[] = 'H3_typography';
|
73 |
-
$disabled_sections[] = 'H4_typography';
|
74 |
-
$disabled_sections[] = 'H5_typography';
|
75 |
-
$disabled_sections[] = 'H6_typography';
|
76 |
-
$disabled_sections[] = 'menu_typography';
|
77 |
-
$disabled_sections[] = 'section_typography';
|
78 |
-
}
|
79 |
-
}
|
80 |
-
|
81 |
-
return $disabled_sections;
|
82 |
-
|
83 |
-
}
|
84 |
-
|
85 |
-
}
|
86 |
-
|
87 |
-
endif;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/includes/admin/customize/wpglobus-customize.php
DELETED
@@ -1,22 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* File: wpglobus-customize.php
|
4 |
-
*
|
5 |
-
* @package WPGlobus\Admin\Customizer
|
6 |
-
*/
|
7 |
-
|
8 |
-
global $wp_version;
|
9 |
-
|
10 |
-
if ( ! defined('WPGLOBUS_CUSTOMIZE') || WPGLOBUS_CUSTOMIZE ) {
|
11 |
-
|
12 |
-
if ( version_compare( $wp_version, '4.9-Beta1', '>=' ) ) {
|
13 |
-
require_once 'class-wpglobus-customize190.php';
|
14 |
-
} else if( version_compare( $wp_version, '4.6', '>=' ) ) {
|
15 |
-
require_once 'class-wpglobus-customize170.php';
|
16 |
-
} else {
|
17 |
-
require_once 'class-wpglobus-customize140.php';
|
18 |
-
}
|
19 |
-
WPGlobus_Customize::controller();
|
20 |
-
}
|
21 |
-
|
22 |
-
# --- EOF
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/includes/admin/debug/class-wpglobus-admin-debug.php
DELETED
@@ -1,366 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* WPGlobus/Admin/Debug.
|
4 |
-
*
|
5 |
-
* @package WPGlobus\Admin
|
6 |
-
*/
|
7 |
-
|
8 |
-
if ( ! class_exists( 'WPGlobus_Admin_Debug' ) ) :
|
9 |
-
|
10 |
-
/**
|
11 |
-
* Class WPGlobus_Admin_Debug.
|
12 |
-
*
|
13 |
-
* @since 1.8.1
|
14 |
-
*/
|
15 |
-
class WPGlobus_Admin_Debug {
|
16 |
-
|
17 |
-
/**
|
18 |
-
* Instance.
|
19 |
-
*
|
20 |
-
* @var WPGlobus_Admin_Debug
|
21 |
-
*/
|
22 |
-
protected static $instance;
|
23 |
-
|
24 |
-
/**
|
25 |
-
* Debug mode.
|
26 |
-
* @since 2.2.35
|
27 |
-
*/
|
28 |
-
protected static $mode = 'godmode';
|
29 |
-
|
30 |
-
/**
|
31 |
-
* Key.
|
32 |
-
* @since 2.2.35
|
33 |
-
*/
|
34 |
-
protected static $key = '';
|
35 |
-
|
36 |
-
/**
|
37 |
-
* Get instance.
|
38 |
-
*/
|
39 |
-
public static function get_instance() {
|
40 |
-
if ( null === self::$instance ) {
|
41 |
-
self::$instance = new self();
|
42 |
-
}
|
43 |
-
|
44 |
-
return self::$instance;
|
45 |
-
}
|
46 |
-
|
47 |
-
/**
|
48 |
-
* Constructor.
|
49 |
-
*/
|
50 |
-
public function __construct() {
|
51 |
-
|
52 |
-
if ( 'meta' == $_GET['wpglobus-debug'] ) { // WPCS: input var ok, sanitization ok.
|
53 |
-
self::$mode = 'meta';
|
54 |
-
} else if ( 'wpglobus_options' == $_GET['wpglobus-debug'] || 'wpglobus-options' == $_GET['wpglobus-debug'] ) { // WPCS: input var ok, sanitization ok.
|
55 |
-
self::$mode = 'wpglobus_options';
|
56 |
-
} else if ( 'yoast' == $_GET['wpglobus-debug'] ) { // WPCS: input var ok, sanitization ok.
|
57 |
-
self::$mode = 'yoast';
|
58 |
-
}
|
59 |
-
|
60 |
-
if ( 'godmode' !== self::$mode ) {
|
61 |
-
if ( ! empty( $_GET['key'] ) ) { // WPCS: input var ok, sanitization ok. )
|
62 |
-
self::$key = sanitize_text_field($_GET['key']);
|
63 |
-
}
|
64 |
-
}
|
65 |
-
|
66 |
-
/**
|
67 |
-
* Action.
|
68 |
-
*
|
69 |
-
* @scope admin
|
70 |
-
* @since 1.8.1
|
71 |
-
*/
|
72 |
-
add_action( 'admin_print_scripts', array( $this, 'on__admin_scripts' ), 99 );
|
73 |
-
|
74 |
-
/**
|
75 |
-
* Action.
|
76 |
-
*
|
77 |
-
* @scope admin
|
78 |
-
* @since 1.8.1
|
79 |
-
*/
|
80 |
-
add_action( 'admin_print_styles', array( $this, 'on__admin_styles' ), 99 );
|
81 |
-
|
82 |
-
/**
|
83 |
-
* Action.
|
84 |
-
*
|
85 |
-
* @scope admin
|
86 |
-
* @since 1.8.1
|
87 |
-
*/
|
88 |
-
add_action( 'admin_footer', array( $this, 'on__admin_footer' ), 9999 );
|
89 |
-
|
90 |
-
}
|
91 |
-
|
92 |
-
/**
|
93 |
-
* @since 2.2.35
|
94 |
-
*/
|
95 |
-
public function is_enabled_section($section) {
|
96 |
-
if ( 'godmode' == self::$mode ) {
|
97 |
-
return true;
|
98 |
-
}
|
99 |
-
if ( $section == self::$mode ) {
|
100 |
-
return true;
|
101 |
-
}
|
102 |
-
return false;
|
103 |
-
}
|
104 |
-
|
105 |
-
/**
|
106 |
-
* Enqueue admin styles.
|
107 |
-
*
|
108 |
-
* @scope admin
|
109 |
-
* @since 1.8.1
|
110 |
-
*/
|
111 |
-
public function on__admin_styles() {
|
112 |
-
|
113 |
-
wp_register_style(
|
114 |
-
'wpglobus-admin-debug',
|
115 |
-
WPGlobus::plugin_dir_url() . 'includes/css/wpglobus-admin-debug.css',
|
116 |
-
array(),
|
117 |
-
WPGLOBUS_VERSION
|
118 |
-
);
|
119 |
-
wp_enqueue_style( 'wpglobus-admin-debug' );
|
120 |
-
|
121 |
-
}
|
122 |
-
|
123 |
-
/**
|
124 |
-
* Enqueue admin scripts.
|
125 |
-
*
|
126 |
-
* @scope admin
|
127 |
-
* @since 1.8.1
|
128 |
-
*/
|
129 |
-
public function on__admin_scripts() {
|
130 |
-
|
131 |
-
wp_register_script(
|
132 |
-
'wpglobus-admin-debug',
|
133 |
-
WPGlobus::plugin_dir_url() . 'includes/js/wpglobus-admin-debug' . WPGlobus::SCRIPT_SUFFIX() . '.js',
|
134 |
-
array( 'jquery' ),
|
135 |
-
WPGLOBUS_VERSION,
|
136 |
-
true
|
137 |
-
);
|
138 |
-
wp_enqueue_script( 'wpglobus-admin-debug' );
|
139 |
-
wp_localize_script(
|
140 |
-
'wpglobus-admin-debug',
|
141 |
-
'WPGlobusAdminDebug',
|
142 |
-
array(
|
143 |
-
'version' => WPGLOBUS_VERSION,
|
144 |
-
'data' => '',
|
145 |
-
)
|
146 |
-
);
|
147 |
-
|
148 |
-
}
|
149 |
-
|
150 |
-
/**
|
151 |
-
* Output table.
|
152 |
-
*
|
153 |
-
* @scope admin
|
154 |
-
* @since 1.8.1
|
155 |
-
*/
|
156 |
-
public function on__admin_footer() {
|
157 |
-
|
158 |
-
global $wpdb, $post, $pagenow;
|
159 |
-
|
160 |
-
if ( 'post.php' == $pagenow ) {
|
161 |
-
if ( is_object( $post ) ) {
|
162 |
-
/**
|
163 |
-
* post.php page.
|
164 |
-
*/
|
165 |
-
if ( empty( $post->ID ) || 0 === (int) $post->ID ) {
|
166 |
-
return;
|
167 |
-
}
|
168 |
-
|
169 |
-
/**
|
170 |
-
* Get metadata.
|
171 |
-
*
|
172 |
-
* @var array $metas
|
173 |
-
*/
|
174 |
-
$meta_query = $wpdb->prepare( "SELECT meta_key, meta_value FROM $wpdb->postmeta WHERE post_id = %d", $post->ID );
|
175 |
-
$_id = $post->ID;
|
176 |
-
$meta_query_caption = "SELECT meta_key, meta_value FROM $wpdb->postmeta WHERE post_id = $_id";
|
177 |
-
$metas = $wpdb->get_results( $meta_query, ARRAY_A );
|
178 |
-
}
|
179 |
-
} else if ( 'term.php' == $pagenow ) {
|
180 |
-
|
181 |
-
if ( empty( $_GET['tag_ID'] ) ) {
|
182 |
-
return;
|
183 |
-
}
|
184 |
-
|
185 |
-
$_id = sanitize_text_field( $_GET['tag_ID'] );
|
186 |
-
|
187 |
-
/**
|
188 |
-
* Get metadata.
|
189 |
-
*
|
190 |
-
* @var array $metas
|
191 |
-
*/
|
192 |
-
$meta_query = $wpdb->prepare( "SELECT meta_key, meta_value FROM $wpdb->termmeta WHERE term_id = %d", $_id );
|
193 |
-
$meta_query_caption = "SELECT meta_key, meta_value FROM $wpdb->termmeta WHERE term_id = $_id";
|
194 |
-
$metas = $wpdb->get_results( $meta_query, ARRAY_A );
|
195 |
-
} else {
|
196 |
-
return;
|
197 |
-
}
|
198 |
-
|
199 |
-
?>
|
200 |
-
<div id="wpglobus-admin-debug-box" class="" style="display:none;">
|
201 |
-
<h4>WPGlobus debug box</h4>
|
202 |
-
<?php
|
203 |
-
if ( $this->is_enabled_section('yoast') ) :
|
204 |
-
/**
|
205 |
-
* Output yoast options.
|
206 |
-
*/
|
207 |
-
if ( empty( self::$key ) ) {
|
208 |
-
$query = $wpdb->prepare( "SELECT * FROM $wpdb->options WHERE option_name LIKE '%s' OR option_name LIKE '%s'", '%wpseo%', '%yoast%' );
|
209 |
-
$query_caption = "SELECT * FROM $wpdb->options WHERE option_name LIKE '%wpseo%' OR option_name LIKE '%yoast%'";
|
210 |
-
} else {
|
211 |
-
$query = $wpdb->prepare( "SELECT * FROM $wpdb->options WHERE option_name = %s", self::$key );
|
212 |
-
$_key = self::$key;
|
213 |
-
$query_caption = "SELECT * FROM $wpdb->options WHERE option_name = $_key";
|
214 |
-
}
|
215 |
-
$results = $wpdb->get_results( $query );
|
216 |
-
?>
|
217 |
-
<table class="table1" cellspacing="0">
|
218 |
-
<caption><strong><?php echo '"' . $query_caption . '"'; ?></strong></caption>
|
219 |
-
<thead>
|
220 |
-
<tr>
|
221 |
-
<th><strong>№</strong></th>
|
222 |
-
<th><strong>option name</strong></th>
|
223 |
-
<th><strong>value</strong></th>
|
224 |
-
</tr>
|
225 |
-
</thead>
|
226 |
-
<tbody>
|
227 |
-
<?php
|
228 |
-
$order = 1;
|
229 |
-
|
230 |
-
foreach ( $results as $key=>$value ) {
|
231 |
-
$code = false;
|
232 |
-
//if ( is_array( $meta ) ) {
|
233 |
-
//$results[$key]['meta_key'] = htmlspecialchars( $meta['meta_value'] );
|
234 |
-
//}
|
235 |
-
$args = $_GET;
|
236 |
-
if ( empty( self::$key ) ) {
|
237 |
-
$args['wpglobus-debug'] = 'yoast';
|
238 |
-
$args = array_merge( $args, array('key'=>$value->option_name) );
|
239 |
-
$_url = admin_url( add_query_arg( $args, $pagenow ) );
|
240 |
-
} else {
|
241 |
-
$_url = admin_url( add_query_arg( $args, $pagenow ) );
|
242 |
-
}
|
243 |
-
?>
|
244 |
-
<tr>
|
245 |
-
<td><?php echo esc_html( $order ); ?></td>
|
246 |
-
<td><?php echo sprintf( '<a href="%s">%s</a>', $_url, esc_html( $value->option_name ) ); ?></td>
|
247 |
-
<?php if ( $code ) { ?>
|
248 |
-
<td>
|
249 |
-
<pre><?php echo esc_html( print_r( $value->option_value, true ) ); ?></pre>
|
250 |
-
</td>
|
251 |
-
<?php } else { ?>
|
252 |
-
<td><?php echo esc_html( print_r( $value->option_value, true ) ); ?></td>
|
253 |
-
<?php } ?>
|
254 |
-
</tr>
|
255 |
-
<?php $order ++; ?>
|
256 |
-
<?php } ?>
|
257 |
-
</tbody>
|
258 |
-
</table>
|
259 |
-
<?php
|
260 |
-
endif;
|
261 |
-
|
262 |
-
if ( $this->is_enabled_section('meta') ) :
|
263 |
-
/**
|
264 |
-
* Output metadata.
|
265 |
-
*/
|
266 |
-
?>
|
267 |
-
<table class="table2" cellspacing="0">
|
268 |
-
<caption><strong><?php echo '"' . $meta_query_caption . '"'; ?></strong></caption>
|
269 |
-
<thead>
|
270 |
-
<tr>
|
271 |
-
<th><strong>№</strong></th>
|
272 |
-
<th><strong>meta</strong></th>
|
273 |
-
<th><strong>value</strong></th>
|
274 |
-
</tr>
|
275 |
-
</thead>
|
276 |
-
<tbody>
|
277 |
-
<?php
|
278 |
-
if ( empty($metas) ) { ?>
|
279 |
-
<tr>
|
280 |
-
<td></td>
|
281 |
-
<td>No data</td>
|
282 |
-
<td>No data</td>
|
283 |
-
</tr> <?php
|
284 |
-
} else {
|
285 |
-
$order = 1;
|
286 |
-
foreach ( $metas as $key=>$meta ) {
|
287 |
-
$code = false;
|
288 |
-
if ( is_array( $meta ) ) {
|
289 |
-
$metas[$key]['meta_key'] = htmlspecialchars( $meta['meta_value'] );
|
290 |
-
}
|
291 |
-
?>
|
292 |
-
<tr>
|
293 |
-
<td><?php echo esc_html( $order ); ?></td>
|
294 |
-
<td><?php echo esc_html( print_r( $meta[ 'meta_key' ], true ) ); ?></td>
|
295 |
-
<?php if ( $code ) { ?>
|
296 |
-
<td>
|
297 |
-
<pre><?php echo esc_html( print_r( $meta[ 'meta_value' ], true ) ); ?></pre>
|
298 |
-
</td>
|
299 |
-
<?php } else { ?>
|
300 |
-
<td><?php echo esc_html( print_r( $meta[ 'meta_value' ], true ) ); ?></td>
|
301 |
-
<?php } ?>
|
302 |
-
</tr>
|
303 |
-
<?php $order ++;
|
304 |
-
}
|
305 |
-
} ?>
|
306 |
-
</tbody>
|
307 |
-
</table>
|
308 |
-
<?php
|
309 |
-
endif;
|
310 |
-
|
311 |
-
if ( $this->is_enabled_section('wpglobus_options') ) :
|
312 |
-
/**
|
313 |
-
* Output WPGlobus options.
|
314 |
-
*/
|
315 |
-
$query = "SELECT * FROM $wpdb->options WHERE option_name LIKE '%wpglobus%'";
|
316 |
-
$results = $wpdb->get_results( $query );
|
317 |
-
?>
|
318 |
-
<table class="table3" cellspacing="0">
|
319 |
-
<caption><strong><?php echo '"SELECT * FROM $wpdb->options WHERE option_name LIKE \'%wpglobus%\'"'; ?></strong></caption>
|
320 |
-
<caption><?php echo 'Option count: ' . count( $results ); ?></caption>
|
321 |
-
<thead>
|
322 |
-
<tr>
|
323 |
-
<th><strong>Option ID</strong></th>
|
324 |
-
<th><strong>Option Name</strong></th>
|
325 |
-
<th><strong>Option Value</strong></th>
|
326 |
-
</tr>
|
327 |
-
</thead>
|
328 |
-
<tbody>
|
329 |
-
<?php
|
330 |
-
|
331 |
-
$order = 1;
|
332 |
-
|
333 |
-
foreach ( $results as $option_key => $option ) {
|
334 |
-
$code = false;
|
335 |
-
if ( is_array( $option->option_value ) ) {
|
336 |
-
foreach ( $option->option_value as $key => $value ) {
|
337 |
-
$option->option_value[ $key ] = htmlspecialchars( $value );
|
338 |
-
}
|
339 |
-
} elseif ( is_string( $option->option_value ) ) {
|
340 |
-
$option->option_value = htmlspecialchars( $option->option_value );
|
341 |
-
}
|
342 |
-
?>
|
343 |
-
<tr>
|
344 |
-
<td><?php echo esc_html( $option->option_id ); ?></td>
|
345 |
-
<td><?php echo esc_html( print_r( $option->option_name, true ) ); ?></td>
|
346 |
-
<?php if ( $code ) { ?>
|
347 |
-
<td>
|
348 |
-
<pre><?php echo esc_html( print_r( $option->option_value, true ) ); ?></pre>
|
349 |
-
</td>
|
350 |
-
<?php } else { ?>
|
351 |
-
<td><?php echo esc_html( print_r( $option->option_value, true ) ); ?></td>
|
352 |
-
<?php } ?>
|
353 |
-
</tr>
|
354 |
-
<?php $order ++; ?>
|
355 |
-
<?php } ?>
|
356 |
-
</tbody>
|
357 |
-
</table><?php
|
358 |
-
endif; ?>
|
359 |
-
</div>
|
360 |
-
|
361 |
-
<?php
|
362 |
-
}
|
363 |
-
|
364 |
-
}
|
365 |
-
|
366 |
-
endif;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/includes/admin/helpdesk/class-wpglobus-admin-helpdesk.php
DELETED
@@ -1,292 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* File: class-wpglobus-admin-helpdesk.php
|
4 |
-
*
|
5 |
-
* @package WPGlobus\Admin\HelpDesk
|
6 |
-
*/
|
7 |
-
|
8 |
-
|
9 |
-
/**
|
10 |
-
* Class WPGlobus_Admin_HelpDesk.
|
11 |
-
* The Contact Support form.
|
12 |
-
*/
|
13 |
-
class WPGlobus_Admin_HelpDesk {
|
14 |
-
|
15 |
-
/**
|
16 |
-
* Nonce.
|
17 |
-
*
|
18 |
-
* @var string
|
19 |
-
*/
|
20 |
-
const NONCE_ACTION = 'wpglobus-helpdesk';
|
21 |
-
|
22 |
-
/**
|
23 |
-
* Email address of the Support.
|
24 |
-
*
|
25 |
-
* @var string
|
26 |
-
*/
|
27 |
-
const EMAIL_SUPPORT = 'support@wpglobus.com';
|
28 |
-
|
29 |
-
/**
|
30 |
-
* Admin page title.
|
31 |
-
*
|
32 |
-
* @var string
|
33 |
-
*/
|
34 |
-
public static $page_title;
|
35 |
-
/**
|
36 |
-
* Admin menu title.
|
37 |
-
*
|
38 |
-
* @var string
|
39 |
-
*/
|
40 |
-
protected static $menu_title;
|
41 |
-
|
42 |
-
/**
|
43 |
-
* @var string
|
44 |
-
*/
|
45 |
-
protected static $name;
|
46 |
-
|
47 |
-
/**
|
48 |
-
* @return string
|
49 |
-
*/
|
50 |
-
public static function getName() {
|
51 |
-
return self::$name;
|
52 |
-
}
|
53 |
-
|
54 |
-
/**
|
55 |
-
* @var string
|
56 |
-
*/
|
57 |
-
protected static $email;
|
58 |
-
|
59 |
-
/**
|
60 |
-
* @return string
|
61 |
-
*/
|
62 |
-
public static function getEmail() {
|
63 |
-
return self::$email;
|
64 |
-
}
|
65 |
-
|
66 |
-
/**
|
67 |
-
* @var string
|
68 |
-
*/
|
69 |
-
protected static $submission_status = 'success';
|
70 |
-
|
71 |
-
/**
|
72 |
-
* @return string
|
73 |
-
*/
|
74 |
-
public static function getSubmissionStatus() {
|
75 |
-
return self::$submission_status;
|
76 |
-
}
|
77 |
-
|
78 |
-
/**
|
79 |
-
* @var string
|
80 |
-
*/
|
81 |
-
protected static $submission_message = '';
|
82 |
-
|
83 |
-
/**
|
84 |
-
* @return string
|
85 |
-
*/
|
86 |
-
public static function getSubmissionMessage() {
|
87 |
-
return self::$submission_message;
|
88 |
-
}
|
89 |
-
|
90 |
-
/**
|
91 |
-
* Static "constructor".
|
92 |
-
*/
|
93 |
-
public static function construct() {
|
94 |
-
self::set_vars();
|
95 |
-
self::set_hooks();
|
96 |
-
}
|
97 |
-
|
98 |
-
/**
|
99 |
-
* Set class variables.
|
100 |
-
*/
|
101 |
-
public static function set_vars() {
|
102 |
-
self::$page_title = __( 'WPGlobus Help Desk', 'wpglobus' );
|
103 |
-
self::$menu_title = __( 'Help Desk', 'wpglobus' );
|
104 |
-
}
|
105 |
-
|
106 |
-
/**
|
107 |
-
* Setup actions and filters.
|
108 |
-
*/
|
109 |
-
protected static function set_hooks() {
|
110 |
-
add_action( 'admin_menu', array( __CLASS__, 'add_menu' ), PHP_INT_MAX );
|
111 |
-
}
|
112 |
-
|
113 |
-
/**
|
114 |
-
* Add admin menu item.
|
115 |
-
*/
|
116 |
-
public static function add_menu() {
|
117 |
-
add_submenu_page(
|
118 |
-
WPGlobus::OPTIONS_PAGE_SLUG,
|
119 |
-
self::$page_title,
|
120 |
-
'<span class="' . esc_attr( WPGlobus_Admin_Page::nav_tab_icon( 'Helpdesk' ) ) . '"></span> '
|
121 |
-
. self::$menu_title,
|
122 |
-
'administrator',
|
123 |
-
WPGlobus::PAGE_WPGLOBUS_HELPDESK,
|
124 |
-
array( __CLASS__, 'helpdesk_page' )
|
125 |
-
);
|
126 |
-
}
|
127 |
-
|
128 |
-
/**
|
129 |
-
* The admin page.
|
130 |
-
*/
|
131 |
-
public static function helpdesk_page() {
|
132 |
-
/** @noinspection PhpUnusedLocalVariableInspection */
|
133 |
-
$data = self::get_data();
|
134 |
-
|
135 |
-
self::handle_submit();
|
136 |
-
|
137 |
-
/*
|
138 |
-
* Prepare data for the view.
|
139 |
-
*/
|
140 |
-
|
141 |
-
$active_plugins = explode( ', ', $data['active_plugins'] );
|
142 |
-
unset( $data['active_plugins'] );
|
143 |
-
|
144 |
-
$tech_info = '';
|
145 |
-
foreach ( $data as $key => $value ) {
|
146 |
-
$tech_info .= $key . ' = ' . $value . "\n";
|
147 |
-
}
|
148 |
-
|
149 |
-
// Split one-cell formatted list of plugins into the separate rows.
|
150 |
-
foreach ( $active_plugins as $active_plugin ) {
|
151 |
-
list( $name, $version ) = explode( ':', $active_plugin );
|
152 |
-
|
153 |
-
$tech_info .= $name . ' = ' . $version . "\n";
|
154 |
-
}
|
155 |
-
|
156 |
-
/** @noinspection PhpUnusedLocalVariableInspection */
|
157 |
-
$subject = empty( $_POST['subject'] ) ? '' : sanitize_text_field( $_POST['subject'] ); // phpcs:ignore WordPress.CSRF.NonceVerification
|
158 |
-
if ( empty($subject) ) {
|
159 |
-
$subject = empty( $_GET['subject'] ) ? '' : sanitize_text_field( $_GET['subject'] ); // phpcs:ignore WordPress.CSRF.NonceVerification
|
160 |
-
}
|
161 |
-
|
162 |
-
|
163 |
-
/** @noinspection PhpUnusedLocalVariableInspection */
|
164 |
-
$details = empty( $_POST['details'] ) ? '' : sanitize_textarea_field( $_POST['details'] ); // phpcs:ignore WordPress.CSRF.NonceVerification
|
165 |
-
|
166 |
-
// Render view.
|
167 |
-
include dirname( __FILE__ ) . '/wpglobus-admin-helpdesk-page.php';
|
168 |
-
|
169 |
-
}
|
170 |
-
|
171 |
-
/**
|
172 |
-
* Handle the form submit.
|
173 |
-
*/
|
174 |
-
protected static function handle_submit() {
|
175 |
-
if ( ! empty( $_POST ) ) {
|
176 |
-
check_admin_referer( self::NONCE_ACTION );
|
177 |
-
|
178 |
-
if (
|
179 |
-
empty( $_POST['name'] )
|
180 |
-
|| empty( $_POST['email'] )
|
181 |
-
|| empty( $_POST['subject'] )
|
182 |
-
|| empty( $_POST['details'] )
|
183 |
-
) {
|
184 |
-
self::$submission_status = 'error';
|
185 |
-
self::$submission_message = __( 'Email not sent. Please fill in the entire form.', 'wpglobus' );
|
186 |
-
|
187 |
-
return;
|
188 |
-
}
|
189 |
-
|
190 |
-
self::$name = sanitize_text_field( $_POST['name'] );
|
191 |
-
self::$email = sanitize_email( $_POST['email'] );
|
192 |
-
|
193 |
-
if ( ! self::$name || ! self::$email ) {
|
194 |
-
self::$submission_status = 'error';
|
195 |
-
self::$submission_message = __( 'Email not sent. Please verify that your name and email are entered correctly.', 'wpglobus' );
|
196 |
-
|
197 |
-
return;
|
198 |
-
}
|
199 |
-
|
200 |
-
$message = sanitize_textarea_field( $_POST['details'] );
|
201 |
-
if ( ! empty( $_POST['info'] ) ) {
|
202 |
-
$message .= "\n-----\n" . sanitize_textarea_field( $_POST['info'] );
|
203 |
-
}
|
204 |
-
|
205 |
-
$headers = array(
|
206 |
-
'from: ' . self::$name . ' <' . self::$email . '>',
|
207 |
-
'reply-to: ' . self::$email,
|
208 |
-
'cc: ' . self::$email,
|
209 |
-
);
|
210 |
-
|
211 |
-
add_action( 'wp_mail_failed', array( __CLASS__, 'action__wp_mail_failed' ) );
|
212 |
-
|
213 |
-
if ( wp_mail( self::EMAIL_SUPPORT, $_POST['subject'], $message, $headers ) ) :
|
214 |
-
|
215 |
-
self::$submission_status = 'success';
|
216 |
-
self::$submission_message = __( 'Email sent.', 'wpglobus' );
|
217 |
-
|
218 |
-
endif;
|
219 |
-
|
220 |
-
remove_action( 'wp_mail_failed', array( __CLASS__, 'action__wp_mail_failed' ) );
|
221 |
-
|
222 |
-
}
|
223 |
-
}
|
224 |
-
|
225 |
-
/**
|
226 |
-
* Collect technical data.
|
227 |
-
*
|
228 |
-
* @return array
|
229 |
-
*/
|
230 |
-
protected static function get_data() {
|
231 |
-
$user = wp_get_current_user();
|
232 |
-
self::$name = WPGlobus_Filters::filter__text( $user->display_name );
|
233 |
-
self::$email = $user->user_email;
|
234 |
-
|
235 |
-
$theme = wp_get_theme();
|
236 |
-
|
237 |
-
/**
|
238 |
-
* @see php_uname can be disabled in php.ini for security reasons
|
239 |
-
* disable_functions=php_uname
|
240 |
-
* @since 1.7.13
|
241 |
-
*/
|
242 |
-
$OS = 'Unknown';
|
243 |
-
if ( function_exists( 'php_uname' ) ) {
|
244 |
-
$OS = implode( ' ', array(
|
245 |
-
php_uname( 's' ),
|
246 |
-
php_uname( 'r' ),
|
247 |
-
php_uname( 'v' ),
|
248 |
-
) );
|
249 |
-
}
|
250 |
-
|
251 |
-
$data = array(
|
252 |
-
'home_url' => home_url(),
|
253 |
-
'site_url' => site_url(),
|
254 |
-
'REMOTE_ADDR' => sanitize_text_field( wp_unslash( $_SERVER['REMOTE_ADDR'] ) ),
|
255 |
-
// WPCS: input var ok, sanitization ok.
|
256 |
-
'SERVER_PORT' => sanitize_text_field( wp_unslash( $_SERVER['SERVER_PORT'] ) ),
|
257 |
-
// WPCS: input var ok, sanitization ok.
|
258 |
-
'OS' => $OS,
|
259 |
-
'PHP_SAPI' => PHP_SAPI,
|
260 |
-
'PHP_VERSION' => PHP_VERSION,
|
261 |
-
'loaded_extensions' => implode( ', ', get_loaded_extensions() ),
|
262 |
-
'wp_version' => $GLOBALS['wp_version'],
|
263 |
-
'is_multisite' => is_multisite() ? 'Y' : 'N',
|
264 |
-
'theme' => $theme->display( 'Name' ) . ' ' . $theme->display( 'ThemeURI' ) . ' by ' . $theme->get( 'Author' ) . ' ' . $theme->get( 'AuthorURI' ) . ( is_child_theme() ? '; child of ' . $theme->display( 'Template' ) : '' ),
|
265 |
-
'enabled_languages' => implode( ', ', WPGlobus::Config()->enabled_languages ),
|
266 |
-
);
|
267 |
-
|
268 |
-
// The list of plugins is formatted here for display on the admin page,
|
269 |
-
// to fit into one table cell.
|
270 |
-
$active_plugins = array();
|
271 |
-
foreach ( wp_get_active_and_valid_plugins() as $plugin ) {
|
272 |
-
$plugin_data = get_plugin_data( $plugin );
|
273 |
-
$plugin_file = str_replace( trailingslashit( WP_PLUGIN_DIR ), '', dirname( $plugin ) );
|
274 |
-
|
275 |
-
$active_plugins[] = $plugin_file . ':' . $plugin_data['Version'];
|
276 |
-
}
|
277 |
-
$data['active_plugins'] = implode( ', ', $active_plugins );
|
278 |
-
|
279 |
-
return $data;
|
280 |
-
|
281 |
-
}
|
282 |
-
|
283 |
-
/**
|
284 |
-
* Print admin notice if sending failed.
|
285 |
-
*
|
286 |
-
* @param WP_Error $error
|
287 |
-
*/
|
288 |
-
public static function action__wp_mail_failed( WP_Error $error ) {
|
289 |
-
self::$submission_status = 'error';
|
290 |
-
self::$submission_message = $error->get_error_message();
|
291 |
-
}
|
292 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/includes/admin/helpdesk/wpglobus-admin-helpdesk-page.php
DELETED
@@ -1,165 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* File: view-page.php
|
4 |
-
*
|
5 |
-
* @package WPGlobus\Admin\HelpDesk
|
6 |
-
* @global string[] $data
|
7 |
-
*/
|
8 |
-
|
9 |
-
// Exit if accessed directly
|
10 |
-
if ( ! defined( 'ABSPATH' ) ) {
|
11 |
-
exit;
|
12 |
-
}
|
13 |
-
|
14 |
-
WPGlobus_Admin_Page::print_header();
|
15 |
-
|
16 |
-
/**
|
17 |
-
* Vars defined in @see \WPGlobus_Admin_HelpDesk::helpdesk_page
|
18 |
-
*
|
19 |
-
* @var string $subject
|
20 |
-
* @var string $tech_info
|
21 |
-
*/
|
22 |
-
?>
|
23 |
-
|
24 |
-
<h2 class="nav-tab-wrapper wp-clearfix">
|
25 |
-
<a href="#" class="nav-tab nav-tab-active">
|
26 |
-
<?php WPGlobus_Admin_Page::nav_tab_icon_e( 'Helpdesk' ); ?>
|
27 |
-
<?php echo esc_html( WPGlobus_Admin_HelpDesk::$page_title ); ?>
|
28 |
-
</a>
|
29 |
-
<a href="<?php echo esc_url( WPGlobus_Admin_Page::url_settings() ); ?>"
|
30 |
-
class="nav-tab">
|
31 |
-
<?php WPGlobus_Admin_Page::nav_tab_icon_e( 'Settings' ); ?>
|
32 |
-
<?php esc_html_e( 'Settings' ); ?>
|
33 |
-
</a>
|
34 |
-
<a href="<?php echo esc_url( WPGlobus_Admin_Page::url_addons() ); ?>"
|
35 |
-
class="nav-tab">
|
36 |
-
<?php WPGlobus_Admin_Page::nav_tab_icon_e( 'Add-ons' ); ?>
|
37 |
-
<?php esc_html_e( 'Add-ons', 'wpglobus' ); ?>
|
38 |
-
</a>
|
39 |
-
<a href="<?php echo esc_url( WPGlobus_Utils::url_wpglobus_site() . 'quick-start/' ); ?>"
|
40 |
-
target="_blank"
|
41 |
-
class="nav-tab">
|
42 |
-
<?php WPGlobus_Admin_Page::nav_tab_icon_e( 'Guide' ); ?>
|
43 |
-
<?php esc_html_e( 'Guide', 'wpglobus' ); ?>
|
44 |
-
</a>
|
45 |
-
<a href="<?php echo esc_url( WPGlobus_Utils::url_wpglobus_site() . 'faq/' ); ?>"
|
46 |
-
target="_blank"
|
47 |
-
class="nav-tab">
|
48 |
-
<?php WPGlobus_Admin_Page::nav_tab_icon_e( 'FAQ' ); ?>
|
49 |
-
<?php esc_html_e( 'FAQ', 'wpglobus' ); ?>
|
50 |
-
</a>
|
51 |
-
<a href="<?php echo esc_url( WPGlobus_Utils::url_wpglobus_site() ); ?>"
|
52 |
-
target="_blank"
|
53 |
-
class="nav-tab">
|
54 |
-
<?php WPGlobus_Admin_Page::nav_tab_icon_e( 'globe' ); ?>
|
55 |
-
<?php echo esc_html( 'WPGlobus.com' ); ?>
|
56 |
-
</a>
|
57 |
-
</h2>
|
58 |
-
|
59 |
-
<?php if ( WPGlobus_Admin_HelpDesk::getSubmissionMessage() ) : ?>
|
60 |
-
<div class="notice notice-<?php echo esc_attr( WPGlobus_Admin_HelpDesk::getSubmissionStatus() ); ?>">
|
61 |
-
<p>
|
62 |
-
<?php echo esc_html( WPGlobus_Admin_HelpDesk::getSubmissionMessage() ); ?>
|
63 |
-
</p>
|
64 |
-
</div>
|
65 |
-
<?php endif; ?>
|
66 |
-
|
67 |
-
<p><em>
|
68 |
-
<?php esc_html_e( 'Thank you for using WPGlobus!', 'wpglobus' ); ?>
|
69 |
-
<?php esc_html_e( 'Our Support Team is here to answer your questions or concerns.', 'wpglobus' ); ?>
|
70 |
-
</em></p>
|
71 |
-
<h4><?php esc_html_e( 'To help us serve you better:', 'wpglobus' ); ?></h4>
|
72 |
-
<ol>
|
73 |
-
<li><?php esc_html_e( 'Please check if the problem persists if you switch to a standard WordPress theme.', 'wpglobus' ); ?></li>
|
74 |
-
<li><?php esc_html_e( 'Try deactivating other plugins to see if any of them conflicts with WPGlobus.', 'wpglobus' ); ?></li>
|
75 |
-
</ol>
|
76 |
-
|
77 |
-
<h4><?php esc_html_e( 'Please fill in and submit the contact form:', 'wpglobus' ); ?></h4>
|
78 |
-
|
79 |
-
<form action="<?php echo esc_url( WPGlobus_Admin_Page::url_helpdesk() ); ?>" method="post" id="wpglobus-form-helpdesk">
|
80 |
-
|
81 |
-
<table class="form-table">
|
82 |
-
<tbody>
|
83 |
-
<tr class="form-field">
|
84 |
-
<th><label for="name"><?php esc_html_e( 'Name' ); ?>:</label></th>
|
85 |
-
<td><input required="required" type="text" name="name" id="name"
|
86 |
-
value="<?php echo esc_attr( WPGlobus_Admin_HelpDesk::getName() ); ?>" data-lpignore="true"/>
|
87 |
-
</td>
|
88 |
-
</tr>
|
89 |
-
<tr class="form-field">
|
90 |
-
<th><label for="email"><?php esc_html_e( 'Email' ); ?>:</label></th>
|
91 |
-
<td>
|
92 |
-
<input required="required" type="email" name="email" id="email"
|
93 |
-
value="<?php echo esc_attr( WPGlobus_Admin_HelpDesk::getEmail() ); ?>"
|
94 |
-
data-lpignore="true"/>
|
95 |
-
<p class="description">
|
96 |
-
<strong>
|
97 |
-
<?php esc_html_e( 'Please make sure the email address is correct.', 'wpglobus' ); ?>
|
98 |
-
</strong>
|
99 |
-
</p>
|
100 |
-
</td>
|
101 |
-
</tr>
|
102 |
-
<tr class="form-field">
|
103 |
-
<th><label for="subject"><?php esc_html_e( 'Subject', 'wpglobus' ); ?>:</label></th>
|
104 |
-
<td>
|
105 |
-
<input required="required" type="text" name="subject" id="subject"
|
106 |
-
value="<?php echo esc_attr( $subject ); ?>" data-lpignore="true"/>
|
107 |
-
<p class="description">
|
108 |
-
<?php esc_html_e( 'Short description of the problem', 'wpglobus' ); ?>
|
109 |
-
</p>
|
110 |
-
</td>
|
111 |
-
</tr>
|
112 |
-
<tr class="form-field">
|
113 |
-
<th><label for="details"><?php esc_html_e( 'Detailed description', 'wpglobus' ); ?>:</label></th>
|
114 |
-
<td>
|
115 |
-
<textarea required="required" name="details" id="details"
|
116 |
-
rows="10"><?php echo esc_attr( $details ); ?></textarea>
|
117 |
-
</td>
|
118 |
-
</tr>
|
119 |
-
<tr class="form-field">
|
120 |
-
<th><label for="info"><?php esc_html_e( 'Technical Information', 'wpglobus' ); ?>:</label></th>
|
121 |
-
<td>
|
122 |
-
<textarea name="info" id="info" rows="10"
|
123 |
-
style="font-family: monospace; font-size: 10px; background-color: #eee; white-space: nowrap; overflow: hidden"
|
124 |
-
data-gramm_editor="false"
|
125 |
-
spellcheck="false"><?php echo esc_html( $tech_info ); ?></textarea>
|
126 |
-
<p class="description">
|
127 |
-
<?php esc_html_e( 'This information helps us to find the problem source', 'wpglobus' ); ?>
|
128 |
-
</p>
|
129 |
-
</td>
|
130 |
-
</tr>
|
131 |
-
</tbody>
|
132 |
-
</table>
|
133 |
-
|
134 |
-
<?php wp_nonce_field( WPGlobus_Admin_HelpDesk::NONCE_ACTION ); ?>
|
135 |
-
|
136 |
-
<button class="button-primary" type="submit" name="send_email" id="send_email">
|
137 |
-
<?php WPGlobus_Admin_Page::nav_tab_icon_e( 'Helpdesk' ); ?>
|
138 |
-
<?php esc_html_e( 'Submit' ); ?>
|
139 |
-
</button>
|
140 |
-
<script>
|
141 |
-
jQuery(function ($) {
|
142 |
-
$("#wpglobus-form-helpdesk").on("submit", function (e) {
|
143 |
-
$("#send_email").prop("disabled", true);
|
144 |
-
});
|
145 |
-
function adjustHeight(el, minHeight) {
|
146 |
-
var outerHeight = parseInt(window.getComputedStyle(el).height, 10);
|
147 |
-
var diff = outerHeight - el.clientHeight;
|
148 |
-
el.style.height = 0;
|
149 |
-
el.style.height = Math.max(minHeight, el.scrollHeight + diff) + 'px';
|
150 |
-
}
|
151 |
-
var textArea = [].slice.call(document.querySelectorAll('textarea#info'));
|
152 |
-
if ( textArea.length == 1 ) {
|
153 |
-
adjustHeight(textArea[0], textArea[0].scrollHeight);
|
154 |
-
}
|
155 |
-
|
156 |
-
});
|
157 |
-
</script>
|
158 |
-
|
159 |
-
</form>
|
160 |
-
<p>
|
161 |
-
*) <?php printf( esc_html__( 'Alternatively, please email %s. Do not forget to copy and paste the technical information to your email message.', 'wpglobus' ), '<a href="mailto:' . esc_attr( WPGlobus_Admin_HelpDesk::EMAIL_SUPPORT ) . '">' . esc_html( WPGlobus_Admin_HelpDesk::EMAIL_SUPPORT ) . '</a>' ); ?></p>
|
162 |
-
|
163 |
-
<?php
|
164 |
-
|
165 |
-
WPGlobus_Admin_Page::print_footer();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/includes/admin/media/class-wpglobus-media.php
DELETED
@@ -1,413 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* @package WPGlobus
|
4 |
-
*/
|
5 |
-
|
6 |
-
/**
|
7 |
-
* Class WPGlobus_Media.
|
8 |
-
*
|
9 |
-
* @since 1.7.3
|
10 |
-
* @since 2.2.22
|
11 |
-
*/
|
12 |
-
if ( ! class_exists( 'WPGlobus_Media' ) ) :
|
13 |
-
|
14 |
-
class WPGlobus_Media {
|
15 |
-
|
16 |
-
/**
|
17 |
-
* Instance.
|
18 |
-
*/
|
19 |
-
protected static $instance;
|
20 |
-
|
21 |
-
/**
|
22 |
-
* Post types to work on media page.
|
23 |
-
*/
|
24 |
-
protected $enabled_post_types = array();
|
25 |
-
|
26 |
-
/**
|
27 |
-
* Get instance.
|
28 |
-
*/
|
29 |
-
public static function get_instance($http_post_action = false, $http_post_actions = array()){
|
30 |
-
if( null == self::$instance ){
|
31 |
-
self::$instance = new self($http_post_action, $http_post_actions);
|
32 |
-
}
|
33 |
-
return self::$instance;
|
34 |
-
}
|
35 |
-
|
36 |
-
/**
|
37 |
-
* Constructor.
|
38 |
-
*/
|
39 |
-
public function __construct($http_post_action, $http_post_actions) {
|
40 |
-
|
41 |
-
/**
|
42 |
-
* @scope admin
|
43 |
-
* @since 1.7.3
|
44 |
-
*/
|
45 |
-
add_action( 'admin_print_scripts', array(
|
46 |
-
$this,
|
47 |
-
'post_php__admin_scripts'
|
48 |
-
), 5 );
|
49 |
-
|
50 |
-
if ( in_array($http_post_action, $http_post_actions) ) {
|
51 |
-
|
52 |
-
if ( 'send-attachment-to-editor' == $http_post_action ) {
|
53 |
-
|
54 |
-
/**
|
55 |
-
* @scope admin
|
56 |
-
* @see filter 'media_send_to_editor' in wp-admin\includes\media.php
|
57 |
-
* @since 1.7.3
|
58 |
-
*/
|
59 |
-
add_filter( 'media_send_to_editor', array(
|
60 |
-
$this,
|
61 |
-
'filter__media_send_to_editor'
|
62 |
-
), 5, 3 );
|
63 |
-
|
64 |
-
} else if ( 'query-attachments' == $http_post_action ) {
|
65 |
-
|
66 |
-
/**
|
67 |
-
* @scope admin
|
68 |
-
* @see filter 'wp_prepare_attachment_for_js' in wp-includes\media.php
|
69 |
-
* @since 2.2.22
|
70 |
-
*/
|
71 |
-
add_filter( 'wp_prepare_attachment_for_js', array(
|
72 |
-
$this,
|
73 |
-
'filter__prepare_attachment_for_js'
|
74 |
-
), 5, 3 );
|
75 |
-
|
76 |
-
}
|
77 |
-
|
78 |
-
return;
|
79 |
-
}
|
80 |
-
|
81 |
-
$this->enabled_post_types[] = 'attachment';
|
82 |
-
|
83 |
-
/**
|
84 |
-
* @scope admin
|
85 |
-
* @since 1.7.3
|
86 |
-
*/
|
87 |
-
add_action( 'edit_form_after_editor', array(
|
88 |
-
$this,
|
89 |
-
'language_tabs'
|
90 |
-
) );
|
91 |
-
|
92 |
-
/**
|
93 |
-
* @scope admin
|
94 |
-
* @since 1.7.3
|
95 |
-
*/
|
96 |
-
add_action( 'admin_print_scripts', array(
|
97 |
-
$this,
|
98 |
-
'media__admin_scripts'
|
99 |
-
) );
|
100 |
-
|
101 |
-
/**
|
102 |
-
* @scope admin
|
103 |
-
* @since 1.7.3
|
104 |
-
*/
|
105 |
-
add_action( 'admin_print_styles', array(
|
106 |
-
$this,
|
107 |
-
'action__admin_styles'
|
108 |
-
) );
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
}
|
113 |
-
|
114 |
-
/**
|
115 |
-
* Filters the HTML markup for a media item sent to the editor.
|
116 |
-
*
|
117 |
-
* @scope admin
|
118 |
-
* @since 1.7.3
|
119 |
-
*
|
120 |
-
* @param string $html HTML markup.
|
121 |
-
* @param int $id Unused.
|
122 |
-
* @param array $attachment Array of attachment metadata.
|
123 |
-
*
|
124 |
-
* @return boolean
|
125 |
-
*/
|
126 |
-
public function filter__media_send_to_editor( $html, $id, $attachment ) {
|
127 |
-
|
128 |
-
$fields = array(
|
129 |
-
'post_content',
|
130 |
-
'post_excerpt',
|
131 |
-
'image_alt',
|
132 |
-
);
|
133 |
-
|
134 |
-
$current_language = WPGlobus::Config()->default_language;
|
135 |
-
if ( ! empty( $_POST['wpglobusLanguageTab'] ) ) { // WPCS: input var ok, sanitization ok.
|
136 |
-
/**
|
137 |
-
* See wpglobus-media.js
|
138 |
-
*/
|
139 |
-
$current_language = sanitize_text_field( wp_unslash( $_POST['wpglobusLanguageTab'] ) ); // WPCS: input var ok, sanitization ok.
|
140 |
-
|
141 |
-
if ( ! in_array( $current_language, WPGlobus::Config()->enabled_languages, true ) ) {
|
142 |
-
return $html;
|
143 |
-
}
|
144 |
-
}
|
145 |
-
|
146 |
-
foreach ( $fields as $field ) {
|
147 |
-
if ( ! empty( $attachment[ $field ] ) && WPGlobus_Core::has_translations( $attachment[ $field ] ) ) {
|
148 |
-
$html = str_replace( $attachment[ $field ], WPGlobus_Core::text_filter( $attachment[ $field ], $current_language ), $html );
|
149 |
-
}
|
150 |
-
}
|
151 |
-
|
152 |
-
return $html;
|
153 |
-
}
|
154 |
-
|
155 |
-
/**
|
156 |
-
* Check for enabled post types.
|
157 |
-
*
|
158 |
-
* @scope admin
|
159 |
-
* @since 1.7.3
|
160 |
-
* @access public
|
161 |
-
*
|
162 |
-
* @return boolean
|
163 |
-
*/
|
164 |
-
public function is_enabled() {
|
165 |
-
|
166 |
-
global $post;
|
167 |
-
|
168 |
-
if ( empty( $post ) ) {
|
169 |
-
return false;
|
170 |
-
}
|
171 |
-
|
172 |
-
if ( in_array( $post->post_type, $this->enabled_post_types ) ) {
|
173 |
-
return true;
|
174 |
-
}
|
175 |
-
|
176 |
-
return false;
|
177 |
-
|
178 |
-
}
|
179 |
-
|
180 |
-
/**
|
181 |
-
* Enqueue admin scripts on post.php page.
|
182 |
-
*
|
183 |
-
* @scope admin
|
184 |
-
* @since 1.7.3
|
185 |
-
* @access public
|
186 |
-
*
|
187 |
-
* @return void
|
188 |
-
*/
|
189 |
-
public function post_php__admin_scripts() {
|
190 |
-
|
191 |
-
global $post;
|
192 |
-
|
193 |
-
if ( empty( $post ) ) {
|
194 |
-
return;
|
195 |
-
}
|
196 |
-
|
197 |
-
if ( in_array( $post->post_type, array( 'attachment' ) ) ) {
|
198 |
-
/**
|
199 |
-
* Don't load on edit media page.
|
200 |
-
*/
|
201 |
-
return;
|
202 |
-
}
|
203 |
-
|
204 |
-
wp_register_script(
|
205 |
-
'wpglobus-media-post-php',
|
206 |
-
WPGlobus::$PLUGIN_DIR_URL . 'includes/js/wpglobus-media-post-php' . WPGlobus::SCRIPT_SUFFIX() . '.js',
|
207 |
-
array(),
|
208 |
-
WPGLOBUS_VERSION,
|
209 |
-
true
|
210 |
-
);
|
211 |
-
wp_enqueue_script( 'wpglobus-media-post-php' );
|
212 |
-
wp_localize_script(
|
213 |
-
'wpglobus-media-post-php',
|
214 |
-
'WPGlobusMediaInPost',
|
215 |
-
array(
|
216 |
-
'version' => WPGLOBUS_VERSION,
|
217 |
-
'builderID' => WPGlobus::Config()->builder->get_id(),
|
218 |
-
)
|
219 |
-
);
|
220 |
-
|
221 |
-
}
|
222 |
-
|
223 |
-
/**
|
224 |
-
* Enqueue admin scripts.
|
225 |
-
*
|
226 |
-
* @scope admin
|
227 |
-
* @since 1.7.3
|
228 |
-
* @access public
|
229 |
-
*
|
230 |
-
* @return void
|
231 |
-
*/
|
232 |
-
public function media__admin_scripts() {
|
233 |
-
|
234 |
-
if ( ! $this->is_enabled() ) {
|
235 |
-
return;
|
236 |
-
}
|
237 |
-
|
238 |
-
/**
|
239 |
-
* WordPress 4.7+ needs a new version of our admin JS.
|
240 |
-
* @since 1.7.0
|
241 |
-
*/
|
242 |
-
$version = '';
|
243 |
-
if ( version_compare( $GLOBALS['wp_version'], '4.6.999', '>' ) ) {
|
244 |
-
$version = '-47';
|
245 |
-
}
|
246 |
-
|
247 |
-
wp_register_script(
|
248 |
-
'wpglobus-admin',
|
249 |
-
WPGlobus::$PLUGIN_DIR_URL . "includes/js/wpglobus-admin$version" . WPGlobus::SCRIPT_SUFFIX() . ".js",
|
250 |
-
array( 'jquery', 'jquery-ui-dialog', 'jquery-ui-tabs' ),
|
251 |
-
WPGLOBUS_VERSION,
|
252 |
-
true
|
253 |
-
);
|
254 |
-
wp_enqueue_script( 'wpglobus-admin' );
|
255 |
-
wp_localize_script(
|
256 |
-
'wpglobus-admin',
|
257 |
-
'WPGlobusAdmin',
|
258 |
-
array(
|
259 |
-
'version' => WPGLOBUS_VERSION,
|
260 |
-
'i18n' => array(),
|
261 |
-
'data' => array(
|
262 |
-
'default_language' => WPGlobus::Config()->default_language
|
263 |
-
)
|
264 |
-
)
|
265 |
-
);
|
266 |
-
|
267 |
-
wp_localize_script(
|
268 |
-
'wpglobus-admin',
|
269 |
-
'WPGlobusCoreData',
|
270 |
-
array(
|
271 |
-
'multisite' => 'false',
|
272 |
-
'default_language' => WPGlobus::Config()->default_language,
|
273 |
-
'enabled_languages' => WPGlobus::Config()->enabled_languages,
|
274 |
-
'locale_tag_start' => WPGlobus::LOCALE_TAG_START,
|
275 |
-
'locale_tag_end' => WPGlobus::LOCALE_TAG_END
|
276 |
-
)
|
277 |
-
);
|
278 |
-
|
279 |
-
wp_register_script(
|
280 |
-
'wpglobus-media',
|
281 |
-
WPGlobus::$PLUGIN_DIR_URL . "includes/js/wpglobus-media" . WPGlobus::SCRIPT_SUFFIX() . ".js",
|
282 |
-
array( 'jquery', 'wpglobus-admin' ),
|
283 |
-
WPGLOBUS_VERSION,
|
284 |
-
true
|
285 |
-
);
|
286 |
-
wp_enqueue_script( 'wpglobus-media' );
|
287 |
-
wp_localize_script(
|
288 |
-
'wpglobus-media',
|
289 |
-
'WPGlobusMedia',
|
290 |
-
array(
|
291 |
-
'version' => WPGLOBUS_VERSION,
|
292 |
-
'language' => WPGlobus::Config()->default_language,
|
293 |
-
'defaultLanguage' => WPGlobus::Config()->default_language,
|
294 |
-
'enabledLanguages' => WPGlobus::Config()->enabled_languages,
|
295 |
-
'attachment' => array(
|
296 |
-
'caption' => 'attachment_caption',
|
297 |
-
'alt' => 'attachment_alt',
|
298 |
-
'description' => 'attachment_content',
|
299 |
-
'title' => 'title'
|
300 |
-
)
|
301 |
-
)
|
302 |
-
);
|
303 |
-
}
|
304 |
-
|
305 |
-
/**
|
306 |
-
* Enqueue admin styles.
|
307 |
-
*
|
308 |
-
* @scope admin
|
309 |
-
* @since 1.7.3
|
310 |
-
* @access public
|
311 |
-
*
|
312 |
-
* @return void
|
313 |
-
*/
|
314 |
-
public function action__admin_styles() {
|
315 |
-
|
316 |
-
if ( ! $this->is_enabled() ) {
|
317 |
-
return;
|
318 |
-
}
|
319 |
-
|
320 |
-
wp_register_style(
|
321 |
-
'wpglobus-admin-tabs',
|
322 |
-
WPGlobus::$PLUGIN_DIR_URL . 'includes/css/wpglobus-admin-tabs.css',
|
323 |
-
array(),
|
324 |
-
WPGLOBUS_VERSION,
|
325 |
-
'all'
|
326 |
-
);
|
327 |
-
wp_enqueue_style( 'wpglobus-admin-tabs' );
|
328 |
-
|
329 |
-
}
|
330 |
-
|
331 |
-
/**
|
332 |
-
* Add language tabs on media page.
|
333 |
-
*
|
334 |
-
* @scope admin
|
335 |
-
* @since 1.7.3
|
336 |
-
* @access public
|
337 |
-
*
|
338 |
-
* @return void
|
339 |
-
*/
|
340 |
-
public function language_tabs() {
|
341 |
-
|
342 |
-
if ( ! $this->is_enabled() ) {
|
343 |
-
return;
|
344 |
-
}
|
345 |
-
|
346 |
-
?>
|
347 |
-
<div id="wpglobus-media-body-tabs" style="margin-top:20px;" class="wpglobus-post-body-tabs">
|
348 |
-
<ul class="wpglobus-post-body-tabs-list"> <?php
|
349 |
-
$order = 0;
|
350 |
-
foreach ( WPGlobus::Config()->open_languages as $language ) {
|
351 |
-
$tab_suffix = $language == WPGlobus::Config()->default_language ? 'default' : $language; ?>
|
352 |
-
<li id="link-tab-<?php echo esc_attr( $tab_suffix ); ?>" data-language="<?php echo esc_attr( $language ); ?>"
|
353 |
-
data-order="<?php echo esc_attr( $order ); ?>"
|
354 |
-
class="wpglobus-post-tab">
|
355 |
-
<a href="#tab-<?php echo esc_attr( $tab_suffix ); ?>"><?php echo esc_html( WPGlobus::Config()->en_language_name[ $language ] ); ?></a>
|
356 |
-
</li> <?php
|
357 |
-
$order ++;
|
358 |
-
} ?>
|
359 |
-
</ul> <?php
|
360 |
-
foreach ( WPGlobus::Config()->open_languages as $language ) {
|
361 |
-
$tab_suffix = $language == WPGlobus::Config()->default_language ? 'default' : $language; ?>
|
362 |
-
<div id="tab-<?php echo esc_attr( $tab_suffix ); ?>" style="display:none;"></div> <?php
|
363 |
-
} ?>
|
364 |
-
</div>
|
365 |
-
<?php
|
366 |
-
}
|
367 |
-
|
368 |
-
/**
|
369 |
-
* Filters the attachment data prepared for JavaScript.
|
370 |
-
*
|
371 |
-
* @since 2.2.22
|
372 |
-
*
|
373 |
-
* @param array $response Array of prepared attachment data.
|
374 |
-
* @param WP_Post $attachment Attachment object.
|
375 |
-
* @param array|false $meta Array of attachment meta data, or false if there is none.
|
376 |
-
*/
|
377 |
-
public function filter__prepare_attachment_for_js( $response, $attachment, $meta ) {
|
378 |
-
|
379 |
-
if ( empty( $_POST['wpglobusPrepareAttachments'] ) ) { // WPCS: input var ok, sanitization ok.
|
380 |
-
return $response;
|
381 |
-
}
|
382 |
-
|
383 |
-
$fields = array(
|
384 |
-
'alt',
|
385 |
-
'description',
|
386 |
-
'caption',
|
387 |
-
// @todo may be `uploadedToTitle` field
|
388 |
-
);
|
389 |
-
|
390 |
-
$current_language = WPGlobus::Config()->default_language;
|
391 |
-
if ( ! empty( $_POST['wpglobusLanguageTab'] ) ) { // WPCS: input var ok, sanitization ok.
|
392 |
-
/**
|
393 |
-
* See includes\js\wpglobus-media.js
|
394 |
-
*/
|
395 |
-
$current_language = sanitize_text_field( wp_unslash( $_POST['wpglobusLanguageTab'] ) ); // WPCS: input var ok, sanitization ok.
|
396 |
-
|
397 |
-
if ( ! in_array( $current_language, WPGlobus::Config()->enabled_languages, true ) ) {
|
398 |
-
return $response;
|
399 |
-
}
|
400 |
-
}
|
401 |
-
|
402 |
-
foreach ( $fields as $field ) {
|
403 |
-
if ( ! empty( $response[ $field ] ) && WPGlobus_Core::has_translations( $response[ $field ] ) ) {
|
404 |
-
$response[ $field ] = WPGlobus_Core::text_filter( $response[ $field ], $current_language );
|
405 |
-
}
|
406 |
-
}
|
407 |
-
|
408 |
-
return $response;
|
409 |
-
}
|
410 |
-
|
411 |
-
}
|
412 |
-
|
413 |
-
endif;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/includes/admin/media/wpglobus-media.php
DELETED
@@ -1,38 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* 1. Add multilingual Caption, Alternative Text, Description and post Title to media files.
|
4 |
-
* 2. Handling the inserting media in post.
|
5 |
-
*
|
6 |
-
* @since 2.2.22
|
7 |
-
* @package WPGlobus
|
8 |
-
*/
|
9 |
-
if ( version_compare( $GLOBALS['wp_version'], '4.6.999', '>' ) ) :
|
10 |
-
|
11 |
-
$http_post_action = false;
|
12 |
-
|
13 |
-
if ( WPGlobus_WP::is_doing_ajax() ) {
|
14 |
-
if ( WPGlobus_WP::is_http_post_action('send-attachment-to-editor') ) {
|
15 |
-
$http_post_action = 'send-attachment-to-editor';
|
16 |
-
} else if ( WPGlobus_WP::is_http_post_action('query-attachments') ) {
|
17 |
-
/**
|
18 |
-
* Action for gutenberg.
|
19 |
-
*/
|
20 |
-
$http_post_action = 'query-attachments';
|
21 |
-
}
|
22 |
-
}
|
23 |
-
|
24 |
-
/**
|
25 |
-
* Array of actions to handle the inserting media on post.php page.
|
26 |
-
*/
|
27 |
-
$http_post_actions = array(
|
28 |
-
'send-attachment-to-editor', // standard and builder mode (except gutenberg).
|
29 |
-
'query-attachments' // gutenberg.
|
30 |
-
);
|
31 |
-
|
32 |
-
if ( WPGlobus_WP::is_pagenow( 'post.php' ) || $http_post_action ) {
|
33 |
-
if ( ! class_exists('WPGlobus_Media') ) {
|
34 |
-
require_once 'class-wpglobus-media.php';
|
35 |
-
}
|
36 |
-
WPGlobus_Media::get_instance($http_post_action, $http_post_actions);
|
37 |
-
}
|
38 |
-
endif;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/includes/admin/meta/class-wpglobus-meta.php
DELETED
@@ -1,545 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Class WPGlobus_Meta
|
4 |
-
*
|
5 |
-
* @since 1.9.17
|
6 |
-
* @since 1.9.25 Added build_multilingual_string function.
|
7 |
-
*
|
8 |
-
* @package WPGlobus\Admin\Meta
|
9 |
-
* @author Alex Gor(alexgff)
|
10 |
-
*/
|
11 |
-
|
12 |
-
if ( ! class_exists( 'WPGlobus_Meta' ) ) :
|
13 |
-
|
14 |
-
/**
|
15 |
-
* Class WPGlobus_Meta.
|
16 |
-
*/
|
17 |
-
class WPGlobus_Meta {
|
18 |
-
|
19 |
-
/**
|
20 |
-
* Instance of this class.
|
21 |
-
*
|
22 |
-
* @var WPGlobus_Meta
|
23 |
-
*/
|
24 |
-
protected static $instance;
|
25 |
-
|
26 |
-
/**
|
27 |
-
* Meta fields.
|
28 |
-
*
|
29 |
-
* @var string[]
|
30 |
-
*/
|
31 |
-
public static $meta_fields = array();
|
32 |
-
|
33 |
-
/**
|
34 |
-
* Builder.
|
35 |
-
*
|
36 |
-
* @var WPGlobus_Config_Builder
|
37 |
-
*/
|
38 |
-
protected static $builder = null;
|
39 |
-
|
40 |
-
/**
|
41 |
-
* Constructor.
|
42 |
-
*
|
43 |
-
* @param string[] $meta_fields
|
44 |
-
* @param WPGlobus_Config_Builder $builder
|
45 |
-
*/
|
46 |
-
protected function __construct( $meta_fields, $builder ) {
|
47 |
-
|
48 |
-
self::$meta_fields = $meta_fields;
|
49 |
-
self::$builder = $builder;
|
50 |
-
|
51 |
-
if ( is_admin() ) {
|
52 |
-
add_filter( 'get_post_metadata', array( __CLASS__, 'filter__post_metadata' ), 5, 4 );
|
53 |
-
|
54 |
-
/**
|
55 |
-
* @see update_metadata() in wp-includes\meta.php
|
56 |
-
*/
|
57 |
-
add_filter( 'update_post_metadata', array( __CLASS__, 'filter__update_post_metadata' ), 5, 5 );
|
58 |
-
|
59 |
-
add_filter( 'delete_post_metadata', array( __CLASS__, 'filter__delete_metadata' ), 5, 5 );
|
60 |
-
}
|
61 |
-
|
62 |
-
}
|
63 |
-
|
64 |
-
/**
|
65 |
-
* Get instance of this class.
|
66 |
-
*
|
67 |
-
* @param string[] $meta_fields
|
68 |
-
* @param WPGlobus_Config_Builder $builder
|
69 |
-
*
|
70 |
-
* @return WPGlobus_Meta
|
71 |
-
*/
|
72 |
-
public static function get_instance( $meta_fields, $builder ) {
|
73 |
-
if ( ! ( self::$instance instanceof WPGlobus_Meta ) ) {
|
74 |
-
self::$instance = new self( $meta_fields, $builder );
|
75 |
-
}
|
76 |
-
|
77 |
-
return self::$instance;
|
78 |
-
}
|
79 |
-
|
80 |
-
/**
|
81 |
-
* public static function get_post_meta( $post_id = false ) {
|
82 |
-
* $meta_cache = wp_cache_get($post_id, 'post_meta');
|
83 |
-
* }
|
84 |
-
* // */
|
85 |
-
|
86 |
-
/**
|
87 |
-
* Update post meta data.
|
88 |
-
*
|
89 |
-
* @see wp-includes\meta.php "update_{$meta_type}_metadata".
|
90 |
-
*
|
91 |
-
* @param null|bool $check Whether to allow updating metadata for the given type.
|
92 |
-
* @param int $object_id Object ID.
|
93 |
-
* @param string $meta_key Meta key.
|
94 |
-
* @param mixed $meta_value Meta value. Must be serializable if non-scalar.
|
95 |
-
* @param mixed $prev_value Optional. If specified, only update existing
|
96 |
-
* metadata entries with the specified value.
|
97 |
-
* Otherwise, update all entries.
|
98 |
-
*
|
99 |
-
* @return bool
|
100 |
-
*/
|
101 |
-
public static function filter__update_post_metadata( $check, $object_id, $meta_key, $meta_value, $prev_value ) {
|
102 |
-
|
103 |
-
if ( empty( self::$meta_fields ) ) {
|
104 |
-
return $check;
|
105 |
-
}
|
106 |
-
|
107 |
-
if ( ! self::meta_key_exists( $meta_key ) ) {
|
108 |
-
return $check;
|
109 |
-
}
|
110 |
-
|
111 |
-
if ( empty( self::$builder->get_language() ) ) {
|
112 |
-
/**
|
113 |
-
* Prevent update post meta when $builder is not set.
|
114 |
-
* For example, Elementor saves meta `_elementor_data` for Template (post type `elementor_library`).
|
115 |
-
* And we have meta `_elementor_data` in `$meta_fields` array @see wpglobus\configs\elementor.json
|
116 |
-
* @since 2.2.33
|
117 |
-
*/
|
118 |
-
return $check;
|
119 |
-
}
|
120 |
-
|
121 |
-
$meta_type = 'post';
|
122 |
-
|
123 |
-
/** @global wpdb $wpdb */
|
124 |
-
global $wpdb;
|
125 |
-
|
126 |
-
$table = _get_meta_table( $meta_type );
|
127 |
-
if ( ! $table ) {
|
128 |
-
return false;
|
129 |
-
}
|
130 |
-
|
131 |
-
$column = $meta_type . '_id';
|
132 |
-
$id_column = 'meta_id';
|
133 |
-
|
134 |
-
$raw_meta_key = $meta_key;
|
135 |
-
|
136 |
-
/**
|
137 |
-
* Compare existing value to new value if no prev value given and the key exists only once.
|
138 |
-
* @since 2.5.16 Fixed PHP Warning: count(): Parameter must be an array or an object that implements Countable.
|
139 |
-
*/
|
140 |
-
if ( empty( $prev_value ) ) {
|
141 |
-
$old_value = get_metadata_raw( $meta_type, $object_id, $meta_key );
|
142 |
-
if ( is_countable( $old_value ) && count( $old_value ) === 1 ) {
|
143 |
-
if ( $old_value[0] === $meta_value ) {
|
144 |
-
return false;
|
145 |
-
}
|
146 |
-
}
|
147 |
-
}
|
148 |
-
|
149 |
-
$_meta_value = $meta_value;
|
150 |
-
/**
|
151 |
-
* @since 2.1.7
|
152 |
-
*/
|
153 |
-
$meta_value = maybe_serialize( $meta_value );
|
154 |
-
|
155 |
-
/**
|
156 |
-
* Don't auto-modify this SQL query.
|
157 |
-
*/
|
158 |
-
// phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared
|
159 |
-
$meta_ids = $wpdb->get_col( $wpdb->prepare( "SELECT $id_column FROM $table WHERE meta_key = %s AND $column = %d", $meta_key, $object_id ) );
|
160 |
-
|
161 |
-
/*
|
162 |
-
// Incorrect query.
|
163 |
-
$meta_ids = $wpdb->get_col( $wpdb->prepare(
|
164 |
-
'SELECT %s FROM %s WHERE meta_key = %s AND %s = %d',
|
165 |
-
$id_column,
|
166 |
-
$table,
|
167 |
-
$meta_key,
|
168 |
-
$column,
|
169 |
-
$object_id
|
170 |
-
) );
|
171 |
-
// */
|
172 |
-
|
173 |
-
if ( empty( $meta_ids ) ) {
|
174 |
-
|
175 |
-
$_passed_value = $_meta_value;
|
176 |
-
|
177 |
-
if ( ! empty( $_passed_value ) && WPGlobus::Config()->default_language !== self::$builder->get_language() ) {
|
178 |
-
// phpcs:ignore Generic.CodeAnalysis.EmptyStatement
|
179 |
-
if ( WPGlobus_Core::has_translations( $_passed_value ) ) {
|
180 |
-
/**
|
181 |
-
* We get multilingual $meta_value. Let save it as is.
|
182 |
-
*
|
183 |
-
* @since 1.9.25 do nothing.
|
184 |
-
*/
|
185 |
-
} else {
|
186 |
-
$_passed_value = self::build_multilingual_string( array( self::$builder->get_language() => $_passed_value ) );
|
187 |
-
}
|
188 |
-
}
|
189 |
-
|
190 |
-
return add_metadata( $meta_type, $object_id, $raw_meta_key, $_passed_value );
|
191 |
-
}
|
192 |
-
|
193 |
-
/**
|
194 |
-
* WPGlobus Core.
|
195 |
-
* We get $meta_value in language that can be retrieved with self::$builder->get_language().
|
196 |
-
*/
|
197 |
-
$meta_cache = wp_cache_get( $object_id, $meta_type . '_meta' );
|
198 |
-
|
199 |
-
/**
|
200 |
-
* May be we need to update meta cache.
|
201 |
-
*
|
202 |
-
* @see 'filter__post_metadata' function.
|
203 |
-
*/
|
204 |
-
|
205 |
-
// if ( !$meta_cache ) {
|
206 |
-
// $meta_cache = update_meta_cache( $meta_type, array( $object_id ) );
|
207 |
-
// $meta_cache = $meta_cache[$object_id];
|
208 |
-
// }
|
209 |
-
|
210 |
-
if ( isset( $meta_cache[ $meta_key ] ) ) {
|
211 |
-
|
212 |
-
//if ( WPGlobus_Core::has_translations( $passed_value ) ) {
|
213 |
-
// phpcs:ignore Generic.CodeAnalysis.EmptyStatement
|
214 |
-
if ( WPGlobus_Core::has_translations( $meta_value ) ) {
|
215 |
-
/**
|
216 |
-
* We get multilingual $meta_value. Let save it as is.
|
217 |
-
*/
|
218 |
-
// @since 1.9.25 do nothing.
|
219 |
-
} else {
|
220 |
-
|
221 |
-
foreach ( $meta_cache[ $meta_key ] as $_key => $_ml_value ) {
|
222 |
-
|
223 |
-
$_new_ml_array = array();
|
224 |
-
|
225 |
-
if ( WPGlobus_Core::has_translations( $_ml_value ) ) {
|
226 |
-
|
227 |
-
foreach ( WPGlobus::Config()->enabled_languages as $language ) :
|
228 |
-
|
229 |
-
if ( $language === self::$builder->get_language() ) {
|
230 |
-
|
231 |
-
if ( ! empty( $meta_value ) ) {
|
232 |
-
$_new_ml_array[ $language ] = $meta_value;
|
233 |
-
}
|
234 |
-
} else {
|
235 |
-
|
236 |
-
$_value = WPGlobus_Core::text_filter( $_ml_value, $language, WPGlobus::RETURN_EMPTY );
|
237 |
-
|
238 |
-
if ( '' !== $_value ) {
|
239 |
-
$_new_ml_array[ $language ] = $_value;
|
240 |
-
}
|
241 |
-
}
|
242 |
-
|
243 |
-
endforeach;
|
244 |
-
|
245 |
-
$_new_value = self::build_multilingual_string( $_new_ml_array );
|
246 |
-
|
247 |
-
} else {
|
248 |
-
|
249 |
-
if ( WPGlobus::Config()->default_language === self::$builder->get_language() ) {
|
250 |
-
$_new_ml_array[ WPGlobus::Config()->default_language ] = $meta_value;
|
251 |
-
} else {
|
252 |
-
$_new_ml_array[ WPGlobus::Config()->default_language ] = $_ml_value;
|
253 |
-
if ( ! empty( $meta_value ) ) {
|
254 |
-
$_new_ml_array[ self::$builder->get_language() ] = $meta_value;
|
255 |
-
}
|
256 |
-
}
|
257 |
-
|
258 |
-
$_new_value = self::build_multilingual_string( $_new_ml_array );
|
259 |
-
|
260 |
-
}
|
261 |
-
|
262 |
-
if ( ! empty( $_new_value ) ) {
|
263 |
-
//$meta_value = maybe_unserialize( $_new_value );
|
264 |
-
$meta_value = $_new_value;
|
265 |
-
}
|
266 |
-
}
|
267 |
-
}
|
268 |
-
}
|
269 |
-
|
270 |
-
$data = compact( 'meta_value' );
|
271 |
-
$where = array(
|
272 |
-
$column => $object_id,
|
273 |
-
'meta_key' => $meta_key,
|
274 |
-
);
|
275 |
-
|
276 |
-
$result = $wpdb->update( $table, $data, $where );
|
277 |
-
|
278 |
-
if ( ! $result ) {
|
279 |
-
return false;
|
280 |
-
}
|
281 |
-
|
282 |
-
wp_cache_delete( $object_id, $meta_type . '_meta' );
|
283 |
-
|
284 |
-
return true;
|
285 |
-
}
|
286 |
-
|
287 |
-
/**
|
288 |
-
* Delete metadata for the specified object.
|
289 |
-
*
|
290 |
-
* in our case we should prevent deleting multilingual string when $meta_value is empty.
|
291 |
-
*
|
292 |
-
* @see wp-includes\meta.php "delete_{$meta_type}_metadata".
|
293 |
-
*
|
294 |
-
* @param null|bool $check Whether to allow metadata deletion of the given type.
|
295 |
-
* @param int $object_id Object ID.
|
296 |
-
* @param string $meta_key Meta key.
|
297 |
-
* @param mixed $meta_value Meta value. Must be serializable if non-scalar.
|
298 |
-
* @param bool $delete_all Whether to delete the matching metadata entries
|
299 |
-
* for all objects, ignoring the specified $object_id.
|
300 |
-
* Default false.
|
301 |
-
*
|
302 |
-
* @return bool|null
|
303 |
-
*/
|
304 |
-
public static function filter__delete_metadata(
|
305 |
-
$check, $object_id, $meta_key, $meta_value,
|
306 |
-
/** @noinspection PhpUnusedParameterInspection */
|
307 |
-
$delete_all = false
|
308 |
-
) {
|
309 |
-
|
310 |
-
if ( empty( self::$meta_fields ) ) {
|
311 |
-
return $check;
|
312 |
-
}
|
313 |
-
|
314 |
-
if ( ! self::meta_key_exists( $meta_key ) ) {
|
315 |
-
return $check;
|
316 |
-
}
|
317 |
-
|
318 |
-
$result = true;
|
319 |
-
|
320 |
-
if ( empty( $meta_value ) && WPGlobus::Config()->default_language === self::$builder->get_language() ) {
|
321 |
-
|
322 |
-
/**
|
323 |
-
* @todo check for extra languages.
|
324 |
-
*/
|
325 |
-
|
326 |
-
/** @global wpdb $wpdb */
|
327 |
-
global $wpdb;
|
328 |
-
|
329 |
-
$_meta_value =
|
330 |
-
$wpdb->get_col(
|
331 |
-
$wpdb->prepare(
|
332 |
-
"SELECT meta_value FROM $wpdb->postmeta WHERE post_id = %d AND meta_key = %s",
|
333 |
-
$object_id,
|
334 |
-
$meta_key
|
335 |
-
)
|
336 |
-
);
|
337 |
-
|
338 |
-
if ( ! isset( $_meta_value ) || empty( $_meta_value[0] ) ) {
|
339 |
-
$result = null;
|
340 |
-
} else {
|
341 |
-
if ( WPGlobus_Core::has_translations( $_meta_value[0] ) ) {
|
342 |
-
$result = true;
|
343 |
-
} else {
|
344 |
-
$result = null;
|
345 |
-
}
|
346 |
-
}
|
347 |
-
}
|
348 |
-
|
349 |
-
return $result;
|
350 |
-
|
351 |
-
}
|
352 |
-
|
353 |
-
/**
|
354 |
-
* Get post meta.
|
355 |
-
*
|
356 |
-
* @see \get_metadata()
|
357 |
-
*
|
358 |
-
* @param null|array|string $check The value get_metadata() should return - a single metadata value,
|
359 |
-
* or an array of values.
|
360 |
-
* @param int $object_id Object ID.
|
361 |
-
* @param string $meta_key Meta key.
|
362 |
-
* @param bool $single Whether to return only the first value of the specified $meta_key.
|
363 |
-
*
|
364 |
-
* @return array|null|string
|
365 |
-
*/
|
366 |
-
public static function filter__post_metadata( $check, $object_id, $meta_key, $single ) {
|
367 |
-
|
368 |
-
if ( empty( self::$meta_fields ) ) {
|
369 |
-
return $check;
|
370 |
-
}
|
371 |
-
|
372 |
-
if ( empty( $meta_key ) ) {
|
373 |
-
$_cache_meta_key = '__WPGLOBUS_META_KEY_EMPTY__';
|
374 |
-
} else {
|
375 |
-
|
376 |
-
if ( ! self::meta_key_exists( $meta_key ) ) {
|
377 |
-
return $check;
|
378 |
-
}
|
379 |
-
$_cache_meta_key = $meta_key;
|
380 |
-
}
|
381 |
-
|
382 |
-
$return_value = 'as_array';
|
383 |
-
if ( $single ) {
|
384 |
-
$return_value = 'as_single';
|
385 |
-
}
|
386 |
-
|
387 |
-
/**
|
388 |
-
* Disable/enable to filter meta field.
|
389 |
-
*
|
390 |
-
* @since 1.9.25
|
391 |
-
*
|
392 |
-
* @param string $meta_key Meta key.
|
393 |
-
*
|
394 |
-
* @return string|boolean String if to filter meta field or false if not.
|
395 |
-
*/
|
396 |
-
if ( ! empty( $meta_key ) && is_string( $meta_key ) ) {
|
397 |
-
// phpcs:ignore WordPress.NamingConventions
|
398 |
-
$meta_key = apply_filters( 'wpglobus/meta/key', $meta_key );
|
399 |
-
if ( false === $meta_key ) {
|
400 |
-
return $check;
|
401 |
-
}
|
402 |
-
}
|
403 |
-
|
404 |
-
/**
|
405 |
-
* May be called many times on one page. Let's cache.
|
406 |
-
*/
|
407 |
-
static $_cache;
|
408 |
-
//if ( isset( $_cache[ $_cache_meta_key ][ $object_id ][ $return_value ] ) ) {
|
409 |
-
// @since 2.4
|
410 |
-
//return $_cache[ $_cache_meta_key ][ $object_id ][ $return_value ];
|
411 |
-
//}
|
412 |
-
|
413 |
-
$meta_type = 'post';
|
414 |
-
|
415 |
-
$meta_cache = wp_cache_get( $object_id, $meta_type . '_meta' );
|
416 |
-
|
417 |
-
if ( ! $meta_cache ) {
|
418 |
-
$meta_cache = update_meta_cache( $meta_type, array( $object_id ) );
|
419 |
-
$meta_cache = $meta_cache[ $object_id ];
|
420 |
-
}
|
421 |
-
|
422 |
-
if ( ! $meta_key ) {
|
423 |
-
|
424 |
-
/**
|
425 |
-
* @todo add doc.
|
426 |
-
*/
|
427 |
-
if ( ! empty( $meta_cache ) ) {
|
428 |
-
|
429 |
-
foreach ( $meta_cache as $_meta_key => $_values ) {
|
430 |
-
if ( self::meta_key_exists( $_meta_key ) ) {
|
431 |
-
foreach ( $_values as $__key => $__value ) {
|
432 |
-
$meta_cache[ $_meta_key ][ $__key ] = WPGlobus_Core::text_filter( $__value, self::$builder->get_language(), WPGlobus::RETURN_EMPTY );
|
433 |
-
}
|
434 |
-
}
|
435 |
-
}
|
436 |
-
}
|
437 |
-
|
438 |
-
$_cache[ $_cache_meta_key ][ $object_id ][ $return_value ] = $meta_cache;
|
439 |
-
|
440 |
-
return $meta_cache;
|
441 |
-
|
442 |
-
} else {
|
443 |
-
|
444 |
-
if ( isset( $meta_cache[ $meta_key ] ) ) {
|
445 |
-
|
446 |
-
if ( $single ) {
|
447 |
-
|
448 |
-
$_value = WPGlobus_Core::text_filter( $meta_cache[ $meta_key ][0], self::$builder->get_language(), WPGlobus::RETURN_EMPTY );
|
449 |
-
|
450 |
-
if ( ! empty( $_value ) ) {
|
451 |
-
$_value = maybe_unserialize( $_value );
|
452 |
-
}
|
453 |
-
|
454 |
-
if ( is_array( $_value ) ) {
|
455 |
-
// !!!!!!
|
456 |
-
$_value = array( $_value );
|
457 |
-
} else {
|
458 |
-
$_cache[ $_cache_meta_key ][ $object_id ][ $return_value ] = $_value;
|
459 |
-
}
|
460 |
-
|
461 |
-
return $_value;
|
462 |
-
|
463 |
-
} else {
|
464 |
-
|
465 |
-
foreach ( $meta_cache[ $meta_key ] as $_key => $_value ) {
|
466 |
-
|
467 |
-
if ( WPGlobus_Core::has_translations( $_value ) ) {
|
468 |
-
$_value = WPGlobus_Core::text_filter( $_value, self::$builder->get_language(), WPGlobus::RETURN_EMPTY );
|
469 |
-
} elseif ( self::$builder->get_language() !== WPGlobus::Config()->default_language ) {
|
470 |
-
$_value = '';
|
471 |
-
}
|
472 |
-
|
473 |
-
if ( ! empty( $_value ) ) {
|
474 |
-
$meta_cache[ $meta_key ][ $_key ] = maybe_unserialize( $_value );
|
475 |
-
} else {
|
476 |
-
$meta_cache[ $meta_key ][ $_key ] = '';
|
477 |
-
}
|
478 |
-
}
|
479 |
-
|
480 |
-
$_cache[ $_cache_meta_key ][ $object_id ][ $return_value ] = $meta_cache[ $meta_key ];
|
481 |
-
|
482 |
-
return $meta_cache[ $meta_key ];
|
483 |
-
|
484 |
-
}
|
485 |
-
}
|
486 |
-
|
487 |
-
if ( $single ) {
|
488 |
-
return '';
|
489 |
-
} else {
|
490 |
-
return array();
|
491 |
-
}
|
492 |
-
}
|
493 |
-
|
494 |
-
// We should not be here. Keeping as a precaution for potential code changes.
|
495 |
-
|
496 |
-
/** @noinspection PhpUnreachableStatementInspection */
|
497 |
-
return $check;
|
498 |
-
|
499 |
-
}
|
500 |
-
|
501 |
-
/**
|
502 |
-
* Check for meta key existence.
|
503 |
-
*
|
504 |
-
* @param string $meta_key
|
505 |
-
*
|
506 |
-
* @return bool
|
507 |
-
*/
|
508 |
-
protected static function meta_key_exists( $meta_key ) {
|
509 |
-
if ( in_array( $meta_key, self::$meta_fields, true ) ) {
|
510 |
-
return true;
|
511 |
-
}
|
512 |
-
|
513 |
-
return false;
|
514 |
-
}
|
515 |
-
|
516 |
-
/**
|
517 |
-
* Build multilingual string.
|
518 |
-
*
|
519 |
-
* @since 1.9.25
|
520 |
-
* @todo First idea is: This function needs for Page Builder by SiteOrigin because it should serialize array before creating multilingual string.
|
521 |
-
*
|
522 |
-
* @param string[] $ml_array
|
523 |
-
*
|
524 |
-
* @return string
|
525 |
-
*/
|
526 |
-
protected static function build_multilingual_string( $ml_array ) {
|
527 |
-
|
528 |
-
/**
|
529 |
-
* @todo W.I.P with Page Builder by SiteOrigin.
|
530 |
-
*/
|
531 |
-
/**
|
532 |
-
* foreach( $ml_array as $language=>$value ) {
|
533 |
-
* if ( is_array($value) ) {
|
534 |
-
* $ml_array[$language] = maybe_serialize($value);
|
535 |
-
* }
|
536 |
-
* }
|
537 |
-
* // */
|
538 |
-
|
539 |
-
$_str = WPGlobus_Utils::build_multilingual_string( $ml_array );
|
540 |
-
|
541 |
-
return $_str;
|
542 |
-
}
|
543 |
-
}
|
544 |
-
|
545 |
-
endif;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/includes/admin/recommendations/class-wpglobus-admin-recommendations.php
DELETED
@@ -1,309 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* File: class-wpglobus-admin-recommendations.php
|
4 |
-
*
|
5 |
-
* WPGlobus Recommendations.
|
6 |
-
*
|
7 |
-
* @since 1.8.7
|
8 |
-
* @package WPGlobus\Admin
|
9 |
-
*/
|
10 |
-
|
11 |
-
/**
|
12 |
-
* Class Admin Recommendations.
|
13 |
-
*/
|
14 |
-
class WPGlobus_Admin_Recommendations {
|
15 |
-
|
16 |
-
/**
|
17 |
-
* True if need to run JS.
|
18 |
-
*
|
19 |
-
* @var bool
|
20 |
-
*/
|
21 |
-
protected static $run_js = false;
|
22 |
-
|
23 |
-
/**
|
24 |
-
* Setup actions and filters.
|
25 |
-
*/
|
26 |
-
public static function setup_hooks() {
|
27 |
-
/**
|
28 |
-
* Recommendations on WC Settings page.
|
29 |
-
*
|
30 |
-
* @since 2.5.21 Disabled. Needs refactoring.
|
31 |
-
* <code>
|
32 |
-
* add_filter( 'woocommerce_general_settings', array( __CLASS__, 'for_woocommerce' ) );
|
33 |
-
* </code>
|
34 |
-
*/
|
35 |
-
|
36 |
-
add_filter( 'wpglobus_edit_slug_box', array( __CLASS__, 'wpg_plus_slug' ) );
|
37 |
-
add_action( 'admin_footer', array( __CLASS__, 'on__admin_footer' ), 1000 );
|
38 |
-
add_action( 'wpglobus_gutenberg_metabox', array( __CLASS__, 'on__gutenberg_metabox' ) );
|
39 |
-
add_filter(
|
40 |
-
'plugin_action_links_' . dirname( dirname( dirname( dirname( plugin_basename( __FILE__ ) ) ) ) ) . '/wpglobus.php',
|
41 |
-
array(
|
42 |
-
__CLASS__,
|
43 |
-
'filter__plugin_action_links',
|
44 |
-
)
|
45 |
-
);
|
46 |
-
|
47 |
-
/**
|
48 |
-
* @since 2.5.20
|
49 |
-
*/
|
50 |
-
add_action( 'admin_notices', array( __CLASS__, 'on__admin_notices' ) );
|
51 |
-
|
52 |
-
}
|
53 |
-
|
54 |
-
/**
|
55 |
-
* Add a link to the Recommendations tab.
|
56 |
-
*
|
57 |
-
* @since 2.2.20
|
58 |
-
*
|
59 |
-
* @param array $links array of links for the plugins, adapted when the current plugin is found.
|
60 |
-
*
|
61 |
-
* @return array
|
62 |
-
*/
|
63 |
-
public static function filter__plugin_action_links( $links ) {
|
64 |
-
|
65 |
-
$_url = add_query_arg( array( 'page' => WPGlobus::OPTIONS_PAGE_SLUG, 'tab' => 'recommendations' ), admin_url( 'admin.php' ) );
|
66 |
-
|
67 |
-
$recommend_link = '<a style="font-weight: bold;" href="' . $_url . '">' . esc_html__( 'Go Premium' ) . '</a>';
|
68 |
-
array_unshift( $links, $recommend_link );
|
69 |
-
|
70 |
-
return $links;
|
71 |
-
}
|
72 |
-
|
73 |
-
/**
|
74 |
-
* Recommendations for WooCommerce.
|
75 |
-
*
|
76 |
-
* @param array $settings Passed by WooCommerce.
|
77 |
-
*
|
78 |
-
* @return array
|
79 |
-
*
|
80 |
-
* @internal
|
81 |
-
*/
|
82 |
-
public static function for_woocommerce( $settings ) {
|
83 |
-
// Ugly set of "IFs" to display heading only if needed, and only once.
|
84 |
-
$need_to_show_wc_heading = false;
|
85 |
-
$need_to_recommend_wpg_wc = false;
|
86 |
-
$need_to_recommend_wpg_mc = false;
|
87 |
-
|
88 |
-
if ( ! is_plugin_active( 'woocommerce-wpglobus/woocommerce-wpglobus.php' ) ) {
|
89 |
-
$need_to_show_wc_heading = true;
|
90 |
-
$need_to_recommend_wpg_wc = true;
|
91 |
-
}
|
92 |
-
|
93 |
-
if ( ! is_plugin_active( 'woocommerce-multicurrency/woocommerce-multicurrency.php' ) ) {
|
94 |
-
$need_to_show_wc_heading = true;
|
95 |
-
$need_to_recommend_wpg_mc = true;
|
96 |
-
}
|
97 |
-
|
98 |
-
if ( $need_to_show_wc_heading ) {
|
99 |
-
$id = 'wpglobus-recommend-wc-heading';
|
100 |
-
$title = '';
|
101 |
-
$desc =
|
102 |
-
'<h2><span class="wp-ui-notification" style="padding:10px 20px;">' .
|
103 |
-
'<span class="dashicons dashicons-admin-site"></span> ' .
|
104 |
-
esc_html__( 'WPGlobus Recommends:', 'wpglobus' ) .
|
105 |
-
'</span></h2>';
|
106 |
-
|
107 |
-
self::add_wc_section( $settings, $id, $title, $desc );
|
108 |
-
}
|
109 |
-
|
110 |
-
if ( $need_to_recommend_wpg_wc ) {
|
111 |
-
$url = WPGlobus_Utils::url_wpglobus_site() . 'product/woocommerce-wpglobus/';
|
112 |
-
$id = 'wpglobus-recommend-wpg-wc';
|
113 |
-
$title = '• ' . esc_html__( 'WPGlobus for WooCommerce', 'wpglobus' );
|
114 |
-
$desc =
|
115 |
-
'<p class="wp-ui-text-notification">' .
|
116 |
-
'<strong>' .
|
117 |
-
esc_html__( 'Translate product titles and descriptions, product categories, tags and attributes.', 'wpglobus' ) .
|
118 |
-
'</strong>' .
|
119 |
-
'</p>' .
|
120 |
-
'<p>' .
|
121 |
-
'<strong>' .
|
122 |
-
esc_html__( 'Get it now:', 'wpglobus' ) . ' ' .
|
123 |
-
'</strong>' .
|
124 |
-
'<a href="' . esc_url( $url ) . '">' . esc_html( $url ) . '</a>' .
|
125 |
-
'</p>';
|
126 |
-
self::add_wc_section( $settings, $id, $title, $desc );
|
127 |
-
}
|
128 |
-
|
129 |
-
if ( $need_to_recommend_wpg_mc ) {
|
130 |
-
$url = WPGlobus_Utils::url_wpglobus_site() . 'product/wpglobus-multi-currency/';
|
131 |
-
$id = 'wpglobus-recommend-wpg-mc';
|
132 |
-
$title = '• ' . __( 'WooCommerce Multi-Currency', 'wpglobus' );
|
133 |
-
$desc =
|
134 |
-
'<p class="wp-ui-text-notification">' .
|
135 |
-
'<strong>' .
|
136 |
-
esc_html__( 'Accept multiple currencies in your online store!', 'wpglobus' ) .
|
137 |
-
'</strong>' .
|
138 |
-
'</p>' .
|
139 |
-
'<p>' .
|
140 |
-
'<strong>' .
|
141 |
-
esc_html__( 'Check it out:', 'wpglobus' ) .
|
142 |
-
'</strong>' .
|
143 |
-
' ' .
|
144 |
-
'<a href="' . $url . '">' . $url . '</a>' .
|
145 |
-
'</p>';
|
146 |
-
self::add_wc_section( $settings, $id, $title, $desc );
|
147 |
-
}
|
148 |
-
|
149 |
-
return $settings;
|
150 |
-
|
151 |
-
}
|
152 |
-
|
153 |
-
/**
|
154 |
-
* Generic WC option section consisting of one block of text only.
|
155 |
-
*
|
156 |
-
* @param array $settings Array of WC settings, passed by reference.
|
157 |
-
* @param string $id Section ID, must be unique.
|
158 |
-
* @param string $title Section title, no HTML.
|
159 |
-
* @param string $desc The text to display, HTML is allowed.
|
160 |
-
*
|
161 |
-
* @return void
|
162 |
-
*/
|
163 |
-
protected static function add_wc_section( &$settings, $id, $title, $desc ) {
|
164 |
-
$settings[] =
|
165 |
-
array(
|
166 |
-
'type' => 'title',
|
167 |
-
'id' => $id,
|
168 |
-
'title' => $title,
|
169 |
-
'desc' => $desc,
|
170 |
-
);
|
171 |
-
|
172 |
-
$settings[] =
|
173 |
-
array(
|
174 |
-
'type' => 'sectionend',
|
175 |
-
'id' => $id,
|
176 |
-
);
|
177 |
-
}
|
178 |
-
|
179 |
-
/**
|
180 |
-
* Recommend WPGlobus Plus to edit permalinks.
|
181 |
-
*
|
182 |
-
* @since 1.9.6
|
183 |
-
*/
|
184 |
-
public static function wpg_plus_slug() {
|
185 |
-
|
186 |
-
global $pagenow;
|
187 |
-
|
188 |
-
if ( 'post-new.php' === $pagenow ) {
|
189 |
-
return;
|
190 |
-
}
|
191 |
-
|
192 |
-
$container_start = '<p id="wpglobus-plus-slug-recommendation" style="padding:5px; font-weight: bold"><span class="dashicons dashicons-admin-site"></span> ';
|
193 |
-
$container_end = '</p>';
|
194 |
-
|
195 |
-
if ( ! is_plugin_active( 'wpglobus-plus/wpglobus-plus.php' ) ) {
|
196 |
-
$url = WPGlobus_Utils::url_wpglobus_site() . 'product/wpglobus-plus/#slug';
|
197 |
-
echo $container_start; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
198 |
-
esc_html_e( 'Translate permalinks with our premium add-on, WPGlobus Plus!', 'wpglobus' );
|
199 |
-
echo ' ';
|
200 |
-
esc_html_e( 'Check it out:', 'wpglobus' );
|
201 |
-
echo ' ';
|
202 |
-
echo '<a href="' . esc_url( $url ) . '" target="_blank">' . esc_html( $url ) . '</a>';
|
203 |
-
echo $container_end; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
204 |
-
|
205 |
-
self::$run_js = true;
|
206 |
-
|
207 |
-
} elseif ( ! class_exists( 'WPGlobusPlus_Slug', false ) ) {
|
208 |
-
$url = admin_url( 'admin.php' ) . '?page=' . WPGlobusPlus::WPGLOBUS_PLUS_OPTIONS_PAGE . '&tab=modules';
|
209 |
-
echo $container_start; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
210 |
-
esc_html_e( 'To translate permalinks, please activate the module Slug.', 'wpglobus' );
|
211 |
-
echo ' ';
|
212 |
-
// Do not translate.
|
213 |
-
$msg = __( 'Go to WPGlobus Plus Options page', 'wpglobus-plus' );
|
214 |
-
|
215 |
-
echo '<a href="' . esc_url( $url ) . '" target="_blank">' . esc_html( $msg ) . '.</a>';
|
216 |
-
echo $container_end; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
217 |
-
|
218 |
-
self::$run_js = true;
|
219 |
-
|
220 |
-
}
|
221 |
-
}
|
222 |
-
|
223 |
-
/**
|
224 |
-
* Action wpglobus_gutenberg_metabox.
|
225 |
-
*
|
226 |
-
* @since 1.9.17
|
227 |
-
*/
|
228 |
-
public static function on__gutenberg_metabox() {
|
229 |
-
|
230 |
-
if ( WPGlobus::Config()->builder->is_running() ) {
|
231 |
-
self::wpg_plus_slug();
|
232 |
-
self::$run_js = false;
|
233 |
-
}
|
234 |
-
|
235 |
-
}
|
236 |
-
|
237 |
-
/**
|
238 |
-
* Action admin_footer.
|
239 |
-
*
|
240 |
-
* @since 1.9.17
|
241 |
-
*/
|
242 |
-
public static function on__admin_footer() {
|
243 |
-
|
244 |
-
if ( ! self::$run_js ) {
|
245 |
-
return;
|
246 |
-
}
|
247 |
-
|
248 |
-
if ( ! WPGlobus::Config()->builder->is_running() ) {
|
249 |
-
return;
|
250 |
-
}
|
251 |
-
|
252 |
-
if ( WPGlobus::Config()->builder->get_language() === WPGlobus::Config()->default_language ) {
|
253 |
-
return;
|
254 |
-
}
|
255 |
-
|
256 |
-
?>
|
257 |
-
<script>
|
258 |
-
var $edit_slug_box = jQuery('#edit-slug-box');
|
259 |
-
$edit_slug_box.css({'display': 'none'});
|
260 |
-
var wpglobus_slug_recomm_box = jQuery('#wpglobus-plus-slug-recommendation').remove();
|
261 |
-
$edit_slug_box.before(wpglobus_slug_recomm_box);
|
262 |
-
</script>
|
263 |
-
<?php
|
264 |
-
}
|
265 |
-
|
266 |
-
/**
|
267 |
-
* Display an admin notice in WordPress admin area.
|
268 |
-
*
|
269 |
-
* @since 2.5.20
|
270 |
-
*/
|
271 |
-
public static function on__admin_notices() {
|
272 |
-
|
273 |
-
global $wp_version;
|
274 |
-
|
275 |
-
/**
|
276 |
-
* Check for PHP version.
|
277 |
-
*/
|
278 |
-
if ( version_compare( PHP_VERSION, '5.6.0', '<' ) ) {
|
279 |
-
|
280 |
-
echo '<div class="notice notice-error"><p>';
|
281 |
-
printf( // Translators: %1$s - this plugin name. %2$s - the required PHP version.
|
282 |
-
esc_html__( 'For %1$s to work correctly, PHP version %2$s or later is required.', 'wpglobus' ) . ' ' .
|
283 |
-
// Translators: %3$s - the current PHP version.
|
284 |
-
esc_html__( 'The PHP version on your server is %3$s.', 'wpglobus' ),
|
285 |
-
'<strong>WPGlobus</strong>',
|
286 |
-
'<strong>5.6</strong>',
|
287 |
-
'<strong>' . PHP_VERSION . '</strong>'
|
288 |
-
);
|
289 |
-
echo '</p></div>';
|
290 |
-
}
|
291 |
-
|
292 |
-
/**
|
293 |
-
* Check for WordPress version.
|
294 |
-
*/
|
295 |
-
if ( version_compare( $wp_version, '5.4.99', '<' ) ) {
|
296 |
-
|
297 |
-
echo '<div class="notice notice-error"><p>';
|
298 |
-
printf( // Translators: %1$s - this plugin name. %2$s - the required WordPress version.
|
299 |
-
esc_html__( 'For %1$s to work correctly, WordPress version %2$s or later is required.', 'wpglobus' ) . ' ',
|
300 |
-
'<strong>WPGlobus ' . esc_html( WPGLOBUS_VERSION ) . '</strong>',
|
301 |
-
'<strong>5.5</strong>'
|
302 |
-
);
|
303 |
-
echo '</p></div>';
|
304 |
-
}
|
305 |
-
}
|
306 |
-
|
307 |
-
} // class WPGlobus_Admin_Recommendations.
|
308 |
-
|
309 |
-
# --- EOF
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/includes/admin/register-post-types/class-wpglobus-register-post-types.php
DELETED
@@ -1,147 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* File: class-wpglobus-register-post-types.php
|
4 |
-
*
|
5 |
-
* @since 2.2.24
|
6 |
-
* @package WPGlobus\Admin
|
7 |
-
*/
|
8 |
-
|
9 |
-
/**
|
10 |
-
* Class WPGlobus_Register_Post_Types.
|
11 |
-
*/
|
12 |
-
if ( ! class_exists( 'WPGlobus_Register_Post_Types' ) ) :
|
13 |
-
|
14 |
-
class WPGlobus_Register_Post_Types {
|
15 |
-
|
16 |
-
/**
|
17 |
-
* @var array
|
18 |
-
*/
|
19 |
-
protected static $pages = array( 'edit.php', 'post.php' );
|
20 |
-
|
21 |
-
/**
|
22 |
-
* Don't handling with these post types.
|
23 |
-
* @var array
|
24 |
-
*/
|
25 |
-
protected static $excluded_post_types = array(
|
26 |
-
'attachment',
|
27 |
-
'attachment:audio',
|
28 |
-
'attachment:video',
|
29 |
-
'revision',
|
30 |
-
'nav_menu_item',
|
31 |
-
'custom_css',
|
32 |
-
'customize_changeset',
|
33 |
-
'oembed_cache',
|
34 |
-
'user_request',
|
35 |
-
'wp_block',
|
36 |
-
);
|
37 |
-
|
38 |
-
/**
|
39 |
-
* @var array
|
40 |
-
*/
|
41 |
-
protected static $post_types = array();
|
42 |
-
|
43 |
-
/**
|
44 |
-
* Constructor.
|
45 |
-
*/
|
46 |
-
public static function construct() {
|
47 |
-
|
48 |
-
if ( ! WPGlobus_WP::is_pagenow(self::$pages) ) {
|
49 |
-
return;
|
50 |
-
}
|
51 |
-
|
52 |
-
/**
|
53 |
-
* @see wp-includes\post.php
|
54 |
-
*/
|
55 |
-
add_action( 'registered_post_type', array( __CLASS__, 'on__registered' ), 10, 2 );
|
56 |
-
|
57 |
-
add_action( 'wp_loaded', array( __CLASS__, 'on__wp_loaded' ) );
|
58 |
-
|
59 |
-
}
|
60 |
-
|
61 |
-
/**
|
62 |
-
* Fires after a post type is registered.
|
63 |
-
*
|
64 |
-
* @param string $post_type Post type.
|
65 |
-
* @param WP_Post_Type $post_type_object Arguments used to register the post type.
|
66 |
-
*/
|
67 |
-
public static function on__registered( $post_type, $post_type_object ) {
|
68 |
-
|
69 |
-
global $_wp_post_type_features;
|
70 |
-
|
71 |
-
if ( defined('DOING_AJAX') && DOING_AJAX ) {
|
72 |
-
return;
|
73 |
-
}
|
74 |
-
|
75 |
-
static $_init = null;
|
76 |
-
|
77 |
-
if ( is_null($_init) ) {
|
78 |
-
|
79 |
-
self::$excluded_post_types = array_merge(self::$excluded_post_types, WPGlobus::Config()->disabled_entities);
|
80 |
-
|
81 |
-
self::$excluded_post_types = array_unique( self::$excluded_post_types );
|
82 |
-
|
83 |
-
$_init = true;
|
84 |
-
|
85 |
-
}
|
86 |
-
|
87 |
-
if ( self::is_excluded_post_type($post_type) ) {
|
88 |
-
return;
|
89 |
-
}
|
90 |
-
|
91 |
-
if ( empty($_wp_post_type_features[$post_type]) ) {
|
92 |
-
return;
|
93 |
-
}
|
94 |
-
|
95 |
-
/**
|
96 |
-
* @see `use_block_editor_for_post_type()` in wp-admin\includes\post.php
|
97 |
-
*/
|
98 |
-
self::$post_types[$post_type] = array(
|
99 |
-
'show_in_rest' => $post_type_object->show_in_rest,
|
100 |
-
'features' => $_wp_post_type_features[$post_type]
|
101 |
-
);
|
102 |
-
|
103 |
-
}
|
104 |
-
|
105 |
-
/**
|
106 |
-
* Fired to save option.
|
107 |
-
*/
|
108 |
-
public static function on__wp_loaded() {
|
109 |
-
|
110 |
-
if ( defined('DOING_AJAX') && DOING_AJAX ) {
|
111 |
-
return;
|
112 |
-
}
|
113 |
-
if ( ! empty(self::$post_types) ) {
|
114 |
-
update_option( WPGlobus::Config()->option_register_post_types, self::$post_types, false );
|
115 |
-
}
|
116 |
-
}
|
117 |
-
|
118 |
-
/**
|
119 |
-
* Check for excluded post type.
|
120 |
-
*
|
121 |
-
* @return bool
|
122 |
-
*/
|
123 |
-
public static function is_excluded_post_type( $post_type = '') {
|
124 |
-
|
125 |
-
if ( empty($post_type) ) {
|
126 |
-
return true;
|
127 |
-
}
|
128 |
-
|
129 |
-
if ( in_array( $post_type, self::get_excluded_post_types() ) ) {
|
130 |
-
return true;
|
131 |
-
}
|
132 |
-
|
133 |
-
return false;
|
134 |
-
}
|
135 |
-
|
136 |
-
/**
|
137 |
-
* Get excluded post types.
|
138 |
-
*
|
139 |
-
* @return array
|
140 |
-
*/
|
141 |
-
public static function get_excluded_post_types() {
|
142 |
-
return self::$excluded_post_types;
|
143 |
-
}
|
144 |
-
}
|
145 |
-
|
146 |
-
endif;
|
147 |
-
/* EOF */
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/includes/admin/wpglobus-admin.php
DELETED
@@ -1,38 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* @since 1.8.1
|
4 |
-
* @package WPGlobus
|
5 |
-
*/
|
6 |
-
|
7 |
-
/**
|
8 |
-
* Admin page central.
|
9 |
-
*
|
10 |
-
* @since 1.6.6
|
11 |
-
*/
|
12 |
-
require_once dirname( __FILE__ ) . '/central/class-wpglobus-admin-central.php';
|
13 |
-
WPGlobus_Admin_Central::construct();
|
14 |
-
|
15 |
-
/**
|
16 |
-
* @since 2.2.24
|
17 |
-
*/
|
18 |
-
require_once dirname( __FILE__ ) . '/register-post-types/class-wpglobus-register-post-types.php';
|
19 |
-
WPGlobus_Register_Post_Types::construct();
|
20 |
-
|
21 |
-
/**
|
22 |
-
* @since 2.4
|
23 |
-
*/
|
24 |
-
require_once dirname( __FILE__ ) . '/class-wpglobus-admin-post.php';
|
25 |
-
WPGlobus_Admin_Post::construct();
|
26 |
-
|
27 |
-
if ( isset( $_GET['wpglobus-debug'] ) ) { // WPCS: input var ok, sanitization ok.
|
28 |
-
/**
|
29 |
-
* To load debug info
|
30 |
-
* site/wp-admin/post.php?post={{post_ID}}&action=edit&wpglobus-debug=godmode
|
31 |
-
* or
|
32 |
-
* site/wp-admin/post.php?post={{post_ID}}&action=edit&wpglobus-debug=meta
|
33 |
-
*/
|
34 |
-
require_once dirname( __FILE__ ) . '/debug/class-wpglobus-admin-debug.php';
|
35 |
-
WPGlobus_Admin_Debug::get_instance();
|
36 |
-
}
|
37 |
-
|
38 |
-
# --- EOF
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/includes/builders/assets/wpglobus-admin-builder-49.js
DELETED
@@ -1,348 +0,0 @@
|
|
1 |
-
/**
|
2 |
-
* WPGlobus Administration Core.
|
3 |
-
* Interface JS functions
|
4 |
-
*
|
5 |
-
* @since 1.9.17
|
6 |
-
*
|
7 |
-
* @package WPGlobus
|
8 |
-
* @subpackage Administration
|
9 |
-
*/
|
10 |
-
/*jslint browser: true*/
|
11 |
-
/*global jQuery, console, WPGlobusCore*/
|
12 |
-
|
13 |
-
var WPGlobusCore;
|
14 |
-
|
15 |
-
(function($) {
|
16 |
-
var api;
|
17 |
-
api = WPGlobusCore = {
|
18 |
-
strpos: function( haystack, needle, offset){
|
19 |
-
haystack = "" + haystack;
|
20 |
-
var i = haystack.indexOf( needle, offset );
|
21 |
-
return i >= 0 ? i : false;
|
22 |
-
},
|
23 |
-
|
24 |
-
TextFilter: function(text, language, return_in){
|
25 |
-
if ( typeof text == 'undefined' || '' === text ) { return text; }
|
26 |
-
|
27 |
-
var pos_start, pos_end, possible_delimiters = [], is_local_text_found = false;;
|
28 |
-
|
29 |
-
language = '' == language ? 'en' : language;
|
30 |
-
return_in = typeof return_in == 'undefined' || '' == return_in ? 'RETURN_IN_DEFAULT_LANGUAGE' : return_in;
|
31 |
-
|
32 |
-
possible_delimiters[0] = [];
|
33 |
-
possible_delimiters[0]['start'] = WPGlobusCoreData.locale_tag_start.replace('%s', language);
|
34 |
-
possible_delimiters[0]['end'] = WPGlobusCoreData.locale_tag_end;
|
35 |
-
|
36 |
-
possible_delimiters[1] = [];
|
37 |
-
possible_delimiters[1]['start'] = '<!--:'+language+'-->';
|
38 |
-
possible_delimiters[1]['end'] = '<!--:-->';
|
39 |
-
|
40 |
-
possible_delimiters[2] = [];
|
41 |
-
possible_delimiters[2]['start'] = '[:'+language+']';
|
42 |
-
possible_delimiters[2]['end'] = '[:';
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
for (var i = 0; i < 3; i++) {
|
47 |
-
|
48 |
-
pos_start = api.strpos( text, possible_delimiters[i]['start'] );
|
49 |
-
if ( pos_start === false ) {
|
50 |
-
continue;
|
51 |
-
}
|
52 |
-
|
53 |
-
pos_start = pos_start + possible_delimiters[i]['start'].length;
|
54 |
-
|
55 |
-
pos_end = api.strpos( text, possible_delimiters[i]['end'], pos_start );
|
56 |
-
|
57 |
-
if ( pos_end === false ) {
|
58 |
-
text = text.substr( pos_start );
|
59 |
-
} else {
|
60 |
-
text = text.substr( pos_start, pos_end - pos_start );
|
61 |
-
}
|
62 |
-
|
63 |
-
is_local_text_found = true;
|
64 |
-
break;
|
65 |
-
|
66 |
-
}
|
67 |
-
|
68 |
-
if ( ! is_local_text_found ) {
|
69 |
-
if ( return_in == 'RETURN_EMPTY' ) {
|
70 |
-
if ( language == WPGlobusCoreData.default_language && ! /(\{:|\[:|<!--:)[a-z]{2}/.test(text) ) {
|
71 |
-
/** do nothing */
|
72 |
-
} else {
|
73 |
-
text = '';
|
74 |
-
}
|
75 |
-
} else {
|
76 |
-
/**
|
77 |
-
* Try RETURN_IN_DEFAULT_LANGUAGE.
|
78 |
-
*/
|
79 |
-
if ( language == WPGlobusCoreData.default_language ) {
|
80 |
-
if ( /(\{:|\[:|<!--:)[a-z]{2}/.test(text) ) {
|
81 |
-
text = '';
|
82 |
-
}
|
83 |
-
} else {
|
84 |
-
text = api.TextFilter( text, WPGlobusCoreData.default_language );
|
85 |
-
}
|
86 |
-
}
|
87 |
-
}
|
88 |
-
return text;
|
89 |
-
},
|
90 |
-
addLocaleMarks: function(text, language) {
|
91 |
-
return WPGlobusCoreData.locale_tag_start.replace('%s', language) + text + WPGlobusCoreData.locale_tag_end;
|
92 |
-
},
|
93 |
-
getTranslations: function(text) {
|
94 |
-
var t = {},
|
95 |
-
return_in;
|
96 |
-
$.each(WPGlobusCoreData.enabled_languages, function(i,l){
|
97 |
-
return_in = l == WPGlobusCoreData.default_language ? 'RETURN_IN_DEFAULT_LANGUAGE' : 'RETURN_EMPTY';
|
98 |
-
t[l] = api.TextFilter(text, l, return_in);
|
99 |
-
});
|
100 |
-
return t;
|
101 |
-
},
|
102 |
-
getString: function(s, newVal, l) {
|
103 |
-
if ( 'undefined' === typeof(s) ) {
|
104 |
-
return s;
|
105 |
-
}
|
106 |
-
if ( 'undefined' === typeof(newVal) ) {
|
107 |
-
newVal = '';
|
108 |
-
}
|
109 |
-
if ( 'undefined' === typeof(l) ) {
|
110 |
-
l = WPGlobusCoreData.language;
|
111 |
-
}
|
112 |
-
|
113 |
-
s = api.getTranslations(s);
|
114 |
-
s[l] = newVal;
|
115 |
-
|
116 |
-
var cS = '';
|
117 |
-
|
118 |
-
$.each(s, function(ln,val){
|
119 |
-
if ( '' != val && ln != WPGlobusCoreData.default_language) {
|
120 |
-
cS += api.addLocaleMarks(val, ln);
|
121 |
-
}
|
122 |
-
});
|
123 |
-
|
124 |
-
if ( '' != s[WPGlobusCoreData.default_language] ) {
|
125 |
-
if ( '' == cS ) {
|
126 |
-
cS = s[WPGlobusCoreData.default_language];
|
127 |
-
} else {
|
128 |
-
cS = api.addLocaleMarks(s[WPGlobusCoreData.default_language], WPGlobusCoreData.default_language) + cS;
|
129 |
-
}
|
130 |
-
}
|
131 |
-
return cS;
|
132 |
-
}
|
133 |
-
};
|
134 |
-
})(jQuery);
|
135 |
-
|
136 |
-
jQuery(document).ready(function ($) {
|
137 |
-
"use strict";
|
138 |
-
|
139 |
-
if ( 'undefined' === typeof WPGlobusAdmin ) {
|
140 |
-
return;
|
141 |
-
}
|
142 |
-
|
143 |
-
var api = {
|
144 |
-
languageSelectorBoxDelta: 0,
|
145 |
-
locationPathname: '/wp-admin/post.php',
|
146 |
-
init: function() {
|
147 |
-
//api.setCookie();
|
148 |
-
if ('taxonomy-edit' === WPGlobusAdmin.page) {
|
149 |
-
api.taxonomyEdit();
|
150 |
-
} else {
|
151 |
-
api.start();
|
152 |
-
}
|
153 |
-
},
|
154 |
-
_info: function() {
|
155 |
-
var lang = undefined;
|
156 |
-
if( $('#language').length > 0 ) {
|
157 |
-
lang = $('#language').val();
|
158 |
-
}
|
159 |
-
console.log('Current language from hidden (#language) : ', lang);
|
160 |
-
|
161 |
-
lang = undefined;
|
162 |
-
if( $('#wpglobus-language').length > 0 ) {
|
163 |
-
lang = $('#wpglobus-language').val();
|
164 |
-
}
|
165 |
-
console.log('Current language from hidden (#wpglobus-language) : ', lang);
|
166 |
-
|
167 |
-
lang = undefined;
|
168 |
-
if( $('input[name="wpglobus-language"]').length > 0 ) {
|
169 |
-
lang = $('input[name="wpglobus-language"]').val();
|
170 |
-
}
|
171 |
-
console.log('Current language from hidden (input[name="wpglobus-language"]) : ', lang);
|
172 |
-
|
173 |
-
lang = undefined;
|
174 |
-
if( $('input[name="wpglobus_language"]').length > 0 ) {
|
175 |
-
lang = $('input[name="wpglobus_language"]').val();
|
176 |
-
}
|
177 |
-
console.log('Current language from hidden (input[name="wpglobus_language"]) : ', lang);
|
178 |
-
console.log('Builder : ', WPGlobusAdmin.builder);
|
179 |
-
|
180 |
-
var content = $('#content').val();
|
181 |
-
if ( content == '' ) {
|
182 |
-
console.log('Editor content (#content) : (empty)');
|
183 |
-
} else {
|
184 |
-
console.log(content);
|
185 |
-
}
|
186 |
-
},
|
187 |
-
checkCookie: function() {
|
188 |
-
if ( -1 != window.location.search.indexOf('language=') ) {
|
189 |
-
return false;
|
190 |
-
}
|
191 |
-
if ( 'post.php' == WPGlobusAdmin.page ) {
|
192 |
-
var cookie = wpCookies.get(WPGlobusAdmin.builder.languageCookie);
|
193 |
-
|
194 |
-
if ( null !== cookie && history.pushState) {
|
195 |
-
cookie = cookie.split('+');
|
196 |
-
var language = cookie[0];
|
197 |
-
if ('undefined' !== typeof cookie[1] && cookie[1] + 0 == WPGlobusAdmin.$_get.post ) {
|
198 |
-
var newurl = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search + '&language='+language;
|
199 |
-
window.history.pushState({path:newurl},'',newurl);
|
200 |
-
return language;
|
201 |
-
}
|
202 |
-
}
|
203 |
-
}
|
204 |
-
return false;
|
205 |
-
},
|
206 |
-
setCookie: function() {
|
207 |
-
var lang = api.checkCookie();
|
208 |
-
if ( ! lang ) {
|
209 |
-
lang = WPGlobusAdmin.$_get.language;
|
210 |
-
if ( 'undefined' === typeof lang ) {
|
211 |
-
lang = WPGlobusAdmin.data.default_language;
|
212 |
-
}
|
213 |
-
}
|
214 |
-
wpCookies.set(WPGlobusAdmin.builder.languageCookie, lang+'+'+WPGlobusAdmin.$_get.post, 31536000, api.locationPathname );
|
215 |
-
},
|
216 |
-
setLocationSearch: function() {
|
217 |
-
if ( ! history.pushState || -1 != window.location.search.indexOf('language=') ) {
|
218 |
-
return;
|
219 |
-
}
|
220 |
-
if ( WPGlobusAdmin.data.default_language != WPGlobusAdmin.currentTab ) {
|
221 |
-
var newurl = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search + '&language='+WPGlobusAdmin.currentTab;
|
222 |
-
window.history.pushState({path:newurl},'',newurl);
|
223 |
-
}
|
224 |
-
},
|
225 |
-
taxonomyEdit: function() {
|
226 |
-
|
227 |
-
$('.wpglobus-taxonomy-tabs').insertAfter('#ajax-response');
|
228 |
-
|
229 |
-
/**
|
230 |
-
* Make class wrap as tabs container.
|
231 |
-
* Tabs on.
|
232 |
-
*/
|
233 |
-
$('.wrap').tabs();
|
234 |
-
|
235 |
-
$(WPGlobusAdmin.data.multilingualSlug.title).insertAfter('.term-slug-wrap th label');
|
236 |
-
|
237 |
-
if ( WPGlobusAdmin.currentTab !== WPGlobusAdmin.data.default_language ) {
|
238 |
-
$('.wpglobus-tax-edit-tab').removeClass('ui-tabs-active ui-state-active');
|
239 |
-
$('#wpglobus-link-tab-'+WPGlobusAdmin.currentTab).addClass('ui-tabs-active ui-state-active');
|
240 |
-
}
|
241 |
-
|
242 |
-
$(document).on('click', '.wpglobus-tax-edit-tab a', function(event) {
|
243 |
-
event.preventDefault();
|
244 |
-
var _href = $(this).data('href');
|
245 |
-
location.href = _href;
|
246 |
-
});
|
247 |
-
|
248 |
-
api.setMultilingualFields();
|
249 |
-
|
250 |
-
/**
|
251 |
-
* Init Yoast tinymce editor for description.
|
252 |
-
*/
|
253 |
-
$(document).on( 'tinymce-editor-init', function( event, editor ) {
|
254 |
-
$( '#' + editor.getContainer().id ).find('iframe').addClass(WPGlobusAdmin.builder.translatableClass).css({'width':''});
|
255 |
-
});
|
256 |
-
},
|
257 |
-
start: function() {
|
258 |
-
/**
|
259 |
-
*
|
260 |
-
*/
|
261 |
-
api.setLocationSearch();
|
262 |
-
|
263 |
-
/**
|
264 |
-
*
|
265 |
-
*/
|
266 |
-
var wrap_at = '#postdivrich',
|
267 |
-
set_title = true,
|
268 |
-
content_tabs_id = '#post-body-content';
|
269 |
-
if ( WPGlobusAdmin.data.support['editor'] === false ) {
|
270 |
-
wrap_at = '#titlediv';
|
271 |
-
set_title = false;
|
272 |
-
}
|
273 |
-
if ( WPGlobusAdmin.data.support['title'] === false ) {
|
274 |
-
set_title = false;
|
275 |
-
}
|
276 |
-
|
277 |
-
/**
|
278 |
-
* Make post-body-content as tabs container.
|
279 |
-
*/
|
280 |
-
$(content_tabs_id).prepend($('.wpglobus-post-body-tabs-list'));
|
281 |
-
$.each(WPGlobusAdmin.tabs, function (index, suffix) {
|
282 |
-
if ('default' === suffix) {
|
283 |
-
$(wrap_at).wrap('<div id="tab-default"></div>');
|
284 |
-
if ( set_title ) {
|
285 |
-
$($('#titlediv')).insertBefore(wrap_at);
|
286 |
-
}
|
287 |
-
} else {
|
288 |
-
$(wrap_at+'-' + suffix).wrap('<div id="tab-' + suffix + '"></div>');
|
289 |
-
if ( set_title ) {
|
290 |
-
$($('#titlediv-' + suffix)).insertBefore(wrap_at+'-' + suffix);
|
291 |
-
}
|
292 |
-
}
|
293 |
-
});
|
294 |
-
|
295 |
-
$(content_tabs_id).addClass('wpglobus-post-body-tabs');
|
296 |
-
|
297 |
-
/**
|
298 |
-
* Set fields as multilingual.
|
299 |
-
*/
|
300 |
-
//setTimeout(api.setMultilingualFields(), 1000);
|
301 |
-
api.setMultilingualFields();
|
302 |
-
|
303 |
-
/**
|
304 |
-
*
|
305 |
-
*/
|
306 |
-
//api.ajaxPrefilter();
|
307 |
-
|
308 |
-
},
|
309 |
-
ajaxPrefilter: function() {
|
310 |
-
/**
|
311 |
-
* @todo WIP.
|
312 |
-
*/
|
313 |
-
$.ajaxPrefilter(function( options, originalOptions, jqXHR ) {
|
314 |
-
// Modify options, control originalOptions, store jqXHR, etc
|
315 |
-
//console.log(options);
|
316 |
-
});
|
317 |
-
},
|
318 |
-
setMultilingualFields: function() {
|
319 |
-
$.each(WPGlobusAdmin.builder.multilingualFields, function(indx, field) {
|
320 |
-
var elementBy = 'name';
|
321 |
-
var node = document.getElementsByName(field);
|
322 |
-
var $element;
|
323 |
-
|
324 |
-
if ( 0 == node.length ) {
|
325 |
-
elementBy = 'id';
|
326 |
-
node = document.getElementById(field);
|
327 |
-
}
|
328 |
-
|
329 |
-
if ( null === node ) {
|
330 |
-
return;
|
331 |
-
} else {
|
332 |
-
if ( 'id' == elementBy ) {
|
333 |
-
$element = $('#'+field);
|
334 |
-
} else {
|
335 |
-
var nodeName = node[0].nodeName;
|
336 |
-
nodeName = nodeName.toLowerCase();
|
337 |
-
$element = $(nodeName+'[name="'+field+'"]');
|
338 |
-
}
|
339 |
-
$element.addClass(WPGlobusAdmin.builder.translatableClass);
|
340 |
-
}
|
341 |
-
|
342 |
-
});
|
343 |
-
}
|
344 |
-
}
|
345 |
-
|
346 |
-
WPGlobusAdmin = $.extend({}, WPGlobusAdmin, api);
|
347 |
-
WPGlobusAdmin.init();
|
348 |
-
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/includes/builders/assets/wpglobus-admin-builder-49.min.js
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
var WPGlobusCore;!function(l){var s=WPGlobusCore={strpos:function(a,t,e){var o=(a=""+a).indexOf(t,e);return 0<=o&&o},TextFilter:function(a,t,e){if(void 0===a||""===a)return a;var o,n,l=[],i=!1;t=""==t?"en":t,e=void 0===e||""==e?"RETURN_IN_DEFAULT_LANGUAGE":e,l[0]=[],l[0].start=WPGlobusCoreData.locale_tag_start.replace("%s",t),l[0].end=WPGlobusCoreData.locale_tag_end,l[1]=[],l[1].start="\x3c!--:"+t+"--\x3e",l[1].end="\x3c!--:--\x3e",l[2]=[],l[2].start="[:"+t+"]",l[2].end="[:";for(var u=0;u<3;u++)if(!1!==(o=s.strpos(a,l[u].start))){o+=l[u].start.length,a=!1===(n=s.strpos(a,l[u].end,o))?a.substr(o):a.substr(o,n-o),i=!0;break}return i||("RETURN_EMPTY"==e?t==WPGlobusCoreData.default_language&&!/(\{:|\[:|<!--:)[a-z]{2}/.test(a)||(a=""):t==WPGlobusCoreData.default_language?/(\{:|\[:|<!--:)[a-z]{2}/.test(a)&&(a=""):a=s.TextFilter(a,WPGlobusCoreData.default_language)),a},addLocaleMarks:function(a,t){return WPGlobusCoreData.locale_tag_start.replace("%s",t)+a+WPGlobusCoreData.locale_tag_end},getTranslations:function(e){var o,n={};return l.each(WPGlobusCoreData.enabled_languages,function(a,t){o=t==WPGlobusCoreData.default_language?"RETURN_IN_DEFAULT_LANGUAGE":"RETURN_EMPTY",n[t]=s.TextFilter(e,t,o)}),n},getString:function(a,t,e){if(void 0===a)return a;void 0===t&&(t=""),void 0===e&&(e=WPGlobusCoreData.language),(a=s.getTranslations(a))[e]=t;var o="";return l.each(a,function(a,t){""!=t&&a!=WPGlobusCoreData.default_language&&(o+=s.addLocaleMarks(t,a))}),""!=a[WPGlobusCoreData.default_language]&&(o=""==o?a[WPGlobusCoreData.default_language]:s.addLocaleMarks(a[WPGlobusCoreData.default_language],WPGlobusCoreData.default_language)+o),o}}}(jQuery),jQuery(document).ready(function(l){"use strict";var t;"undefined"!=typeof WPGlobusAdmin&&(t={languageSelectorBoxDelta:0,locationPathname:"/wp-admin/post.php",init:function(){"taxonomy-edit"===WPGlobusAdmin.page?t.taxonomyEdit():t.start()},_info:function(){var a=void 0;0<l("#language").length&&(a=l("#language").val()),console.log("Current language from hidden (#language) : ",a),a=void 0,0<l("#wpglobus-language").length&&(a=l("#wpglobus-language").val()),console.log("Current language from hidden (#wpglobus-language) : ",a),a=void 0,0<l('input[name="wpglobus-language"]').length&&(a=l('input[name="wpglobus-language"]').val()),console.log('Current language from hidden (input[name="wpglobus-language"]) : ',a),a=void 0,0<l('input[name="wpglobus_language"]').length&&(a=l('input[name="wpglobus_language"]').val()),console.log('Current language from hidden (input[name="wpglobus_language"]) : ',a),console.log("Builder : ",WPGlobusAdmin.builder);var t=l("#content").val();""==t?console.log("Editor content (#content) : (empty)"):console.log(t)},checkCookie:function(){if(-1!=window.location.search.indexOf("language="))return!1;if("post.php"==WPGlobusAdmin.page){var a=wpCookies.get(WPGlobusAdmin.builder.languageCookie);if(null!==a&&history.pushState){var t=(a=a.split("+"))[0];if(void 0!==a[1]&&a[1]+0==WPGlobusAdmin.$_get.post){var e=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search+"&language="+t;return window.history.pushState({path:e},"",e),t}}}return!1},setCookie:function(){var a=t.checkCookie();a||void 0===(a=WPGlobusAdmin.$_get.language)&&(a=WPGlobusAdmin.data.default_language),wpCookies.set(WPGlobusAdmin.builder.languageCookie,a+"+"+WPGlobusAdmin.$_get.post,31536e3,t.locationPathname)},setLocationSearch:function(){var a;history.pushState&&-1==window.location.search.indexOf("language=")&&WPGlobusAdmin.data.default_language!=WPGlobusAdmin.currentTab&&(a=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search+"&language="+WPGlobusAdmin.currentTab,window.history.pushState({path:a},"",a))},taxonomyEdit:function(){l(".wpglobus-taxonomy-tabs").insertAfter("#ajax-response"),l(".wrap").tabs(),l(WPGlobusAdmin.data.multilingualSlug.title).insertAfter(".term-slug-wrap th label"),WPGlobusAdmin.currentTab!==WPGlobusAdmin.data.default_language&&(l(".wpglobus-tax-edit-tab").removeClass("ui-tabs-active ui-state-active"),l("#wpglobus-link-tab-"+WPGlobusAdmin.currentTab).addClass("ui-tabs-active ui-state-active")),l(document).on("click",".wpglobus-tax-edit-tab a",function(a){a.preventDefault();var t=l(this).data("href");location.href=t}),t.setMultilingualFields(),l(document).on("tinymce-editor-init",function(a,t){l("#"+t.getContainer().id).find("iframe").addClass(WPGlobusAdmin.builder.translatableClass).css({width:""})})},start:function(){t.setLocationSearch();var e="#postdivrich",o=!0,a="#post-body-content";!1===WPGlobusAdmin.data.support.editor&&(o=!(e="#titlediv")),!1===WPGlobusAdmin.data.support.title&&(o=!1),l(a).prepend(l(".wpglobus-post-body-tabs-list")),l.each(WPGlobusAdmin.tabs,function(a,t){"default"===t?(l(e).wrap('<div id="tab-default"></div>'),o&&l(l("#titlediv")).insertBefore(e)):(l(e+"-"+t).wrap('<div id="tab-'+t+'"></div>'),o&&l(l("#titlediv-"+t)).insertBefore(e+"-"+t))}),l(a).addClass("wpglobus-post-body-tabs"),t.setMultilingualFields()},ajaxPrefilter:function(){l.ajaxPrefilter(function(a,t,e){})},setMultilingualFields:function(){l.each(WPGlobusAdmin.builder.multilingualFields,function(a,t){var e,o="name",n=document.getElementsByName(t);0==n.length&&(o="id",n=document.getElementById(t)),null!==n&&("id"==o?l("#"+t):(e=(e=n[0].nodeName).toLowerCase(),l(e+'[name="'+t+'"]'))).addClass(WPGlobusAdmin.builder.translatableClass)})}},(WPGlobusAdmin=l.extend({},WPGlobusAdmin,t)).init())});
|
|
trunk/includes/builders/assets/wpglobus-admin-builder-51.js
DELETED
@@ -1,362 +0,0 @@
|
|
1 |
-
/**
|
2 |
-
* WPGlobus Administration Core.
|
3 |
-
* Interface JS functions
|
4 |
-
*
|
5 |
-
* @since 1.9.17
|
6 |
-
*
|
7 |
-
* @package WPGlobus
|
8 |
-
* @subpackage Administration
|
9 |
-
*/
|
10 |
-
/*jslint browser: true*/
|
11 |
-
/*global jQuery, console, WPGlobusCore*/
|
12 |
-
|
13 |
-
var WPGlobusCore;
|
14 |
-
|
15 |
-
(function($) {
|
16 |
-
var api;
|
17 |
-
api = WPGlobusCore = {
|
18 |
-
strpos: function( haystack, needle, offset){
|
19 |
-
haystack = "" + haystack;
|
20 |
-
var i = haystack.indexOf( needle, offset );
|
21 |
-
return i >= 0 ? i : false;
|
22 |
-
},
|
23 |
-
|
24 |
-
TextFilter: function(text, language, return_in){
|
25 |
-
if ( typeof text == 'undefined' || '' === text ) { return text; }
|
26 |
-
|
27 |
-
var pos_start, pos_end, possible_delimiters = [], is_local_text_found = false;;
|
28 |
-
|
29 |
-
language = '' == language ? 'en' : language;
|
30 |
-
return_in = typeof return_in == 'undefined' || '' == return_in ? 'RETURN_IN_DEFAULT_LANGUAGE' : return_in;
|
31 |
-
|
32 |
-
possible_delimiters[0] = [];
|
33 |
-
possible_delimiters[0]['start'] = WPGlobusCoreData.locale_tag_start.replace('%s', language);
|
34 |
-
possible_delimiters[0]['end'] = WPGlobusCoreData.locale_tag_end;
|
35 |
-
|
36 |
-
possible_delimiters[1] = [];
|
37 |
-
possible_delimiters[1]['start'] = '<!--:'+language+'-->';
|
38 |
-
possible_delimiters[1]['end'] = '<!--:-->';
|
39 |
-
|
40 |
-
possible_delimiters[2] = [];
|
41 |
-
possible_delimiters[2]['start'] = '[:'+language+']';
|
42 |
-
possible_delimiters[2]['end'] = '[:';
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
for (var i = 0; i < 3; i++) {
|
47 |
-
|
48 |
-
pos_start = api.strpos( text, possible_delimiters[i]['start'] );
|
49 |
-
if ( pos_start === false ) {
|
50 |
-
continue;
|
51 |
-
}
|
52 |
-
|
53 |
-
pos_start = pos_start + possible_delimiters[i]['start'].length;
|
54 |
-
|
55 |
-
pos_end = api.strpos( text, possible_delimiters[i]['end'], pos_start );
|
56 |
-
|
57 |
-
if ( pos_end === false ) {
|
58 |
-
text = text.substr( pos_start );
|
59 |
-
} else {
|
60 |
-
text = text.substr( pos_start, pos_end - pos_start );
|
61 |
-
}
|
62 |
-
|
63 |
-
is_local_text_found = true;
|
64 |
-
break;
|
65 |
-
|
66 |
-
}
|
67 |
-
|
68 |
-
if ( ! is_local_text_found ) {
|
69 |
-
if ( return_in == 'RETURN_EMPTY' ) {
|
70 |
-
if ( language == WPGlobusCoreData.default_language && ! /(\{:|\[:|<!--:)[a-z]{2}/.test(text) ) {
|
71 |
-
/** do nothing */
|
72 |
-
} else {
|
73 |
-
text = '';
|
74 |
-
}
|
75 |
-
} else {
|
76 |
-
/**
|
77 |
-
* Try RETURN_IN_DEFAULT_LANGUAGE.
|
78 |
-
*/
|
79 |
-
if ( language == WPGlobusCoreData.default_language ) {
|
80 |
-
if ( /(\{:|\[:|<!--:)[a-z]{2}/.test(text) ) {
|
81 |
-
text = '';
|
82 |
-
}
|
83 |
-
} else {
|
84 |
-
text = api.TextFilter( text, WPGlobusCoreData.default_language );
|
85 |
-
}
|
86 |
-
}
|
87 |
-
}
|
88 |
-
return text;
|
89 |
-
},
|
90 |
-
addLocaleMarks: function(text, language) {
|
91 |
-
return WPGlobusCoreData.locale_tag_start.replace('%s', language) + text + WPGlobusCoreData.locale_tag_end;
|
92 |
-
},
|
93 |
-
getTranslations: function(text) {
|
94 |
-
var t = {},
|
95 |
-
return_in;
|
96 |
-
$.each(WPGlobusCoreData.enabled_languages, function(i,l){
|
97 |
-
return_in = l == WPGlobusCoreData.default_language ? 'RETURN_IN_DEFAULT_LANGUAGE' : 'RETURN_EMPTY';
|
98 |
-
t[l] = api.TextFilter(text, l, return_in);
|
99 |
-
});
|
100 |
-
return t;
|
101 |
-
},
|
102 |
-
getString: function(s, newVal, l) {
|
103 |
-
if ( 'undefined' === typeof(s) ) {
|
104 |
-
return s;
|
105 |
-
}
|
106 |
-
if ( 'undefined' === typeof(newVal) ) {
|
107 |
-
newVal = '';
|
108 |
-
}
|
109 |
-
if ( 'undefined' === typeof(l) ) {
|
110 |
-
l = WPGlobusCoreData.language;
|
111 |
-
}
|
112 |
-
|
113 |
-
s = api.getTranslations(s);
|
114 |
-
s[l] = newVal;
|
115 |
-
|
116 |
-
var cS = '';
|
117 |
-
|
118 |
-
$.each(s, function(ln,val){
|
119 |
-
if ( '' != val && ln != WPGlobusCoreData.default_language) {
|
120 |
-
cS += api.addLocaleMarks(val, ln);
|
121 |
-
}
|
122 |
-
});
|
123 |
-
|
124 |
-
if ( '' != s[WPGlobusCoreData.default_language] ) {
|
125 |
-
if ( '' == cS ) {
|
126 |
-
cS = s[WPGlobusCoreData.default_language];
|
127 |
-
} else {
|
128 |
-
cS = api.addLocaleMarks(s[WPGlobusCoreData.default_language], WPGlobusCoreData.default_language) + cS;
|
129 |
-
}
|
130 |
-
}
|
131 |
-
return cS;
|
132 |
-
}
|
133 |
-
};
|
134 |
-
})(jQuery);
|
135 |
-
|
136 |
-
jQuery(document).ready(function ($) {
|
137 |
-
"use strict";
|
138 |
-
|
139 |
-
if ( 'undefined' === typeof WPGlobusAdmin ) {
|
140 |
-
return;
|
141 |
-
}
|
142 |
-
|
143 |
-
var api = {
|
144 |
-
languageSelectorBoxDelta: 0,
|
145 |
-
locationPathname: '/wp-admin/post.php',
|
146 |
-
init: function() {
|
147 |
-
//api.setCookie();
|
148 |
-
if ('taxonomy-edit' === WPGlobusAdmin.page) {
|
149 |
-
api.taxonomyEdit();
|
150 |
-
} else {
|
151 |
-
api.start();
|
152 |
-
}
|
153 |
-
},
|
154 |
-
_info: function() {
|
155 |
-
var lang = undefined;
|
156 |
-
if( $('#language').length > 0 ) {
|
157 |
-
lang = $('#language').val();
|
158 |
-
}
|
159 |
-
console.log('Current language from hidden (#language) : ', lang);
|
160 |
-
|
161 |
-
lang = undefined;
|
162 |
-
if( $('#wpglobus-language').length > 0 ) {
|
163 |
-
lang = $('#wpglobus-language').val();
|
164 |
-
}
|
165 |
-
console.log('Current language from hidden (#wpglobus-language) : ', lang);
|
166 |
-
|
167 |
-
lang = undefined;
|
168 |
-
if( $('input[name="wpglobus-language"]').length > 0 ) {
|
169 |
-
lang = $('input[name="wpglobus-language"]').val();
|
170 |
-
}
|
171 |
-
console.log('Current language from hidden (input[name="wpglobus-language"]) : ', lang);
|
172 |
-
|
173 |
-
lang = undefined;
|
174 |
-
if( $('input[name="wpglobus_language"]').length > 0 ) {
|
175 |
-
lang = $('input[name="wpglobus_language"]').val();
|
176 |
-
}
|
177 |
-
console.log('Current language from hidden (input[name="wpglobus_language"]) : ', lang);
|
178 |
-
console.log('Builder : ', WPGlobusAdmin.builder);
|
179 |
-
|
180 |
-
var content = $('#content').val();
|
181 |
-
if ( content == '' ) {
|
182 |
-
console.log('Editor content (#content) : (empty)');
|
183 |
-
} else {
|
184 |
-
console.log(content);
|
185 |
-
}
|
186 |
-
},
|
187 |
-
checkCookie: function() {
|
188 |
-
if ( -1 != window.location.search.indexOf('language=') ) {
|
189 |
-
return false;
|
190 |
-
}
|
191 |
-
if ( 'post.php' == WPGlobusAdmin.page ) {
|
192 |
-
var cookie = wpCookies.get(WPGlobusAdmin.builder.languageCookie);
|
193 |
-
|
194 |
-
if ( null !== cookie && history.pushState) {
|
195 |
-
cookie = cookie.split('+');
|
196 |
-
var language = cookie[0];
|
197 |
-
if ('undefined' !== typeof cookie[1] && cookie[1] + 0 == WPGlobusAdmin.$_get.post ) {
|
198 |
-
var newurl = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search + '&language='+language;
|
199 |
-
window.history.pushState({path:newurl},'',newurl);
|
200 |
-
return language;
|
201 |
-
}
|
202 |
-
}
|
203 |
-
}
|
204 |
-
return false;
|
205 |
-
},
|
206 |
-
setCookie: function() {
|
207 |
-
var lang = api.checkCookie();
|
208 |
-
if ( ! lang ) {
|
209 |
-
lang = WPGlobusAdmin.$_get.language;
|
210 |
-
if ( 'undefined' === typeof lang ) {
|
211 |
-
lang = WPGlobusAdmin.data.default_language;
|
212 |
-
}
|
213 |
-
}
|
214 |
-
wpCookies.set(WPGlobusAdmin.builder.languageCookie, lang+'+'+WPGlobusAdmin.$_get.post, 31536000, api.locationPathname );
|
215 |
-
},
|
216 |
-
setLocationSearch: function() {
|
217 |
-
if ( ! history.pushState || -1 != window.location.search.indexOf('language=') ) {
|
218 |
-
return;
|
219 |
-
}
|
220 |
-
if ( WPGlobusAdmin.data.default_language != WPGlobusAdmin.currentTab ) {
|
221 |
-
var newurl = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search + '&language='+WPGlobusAdmin.currentTab;
|
222 |
-
window.history.pushState({path:newurl},'',newurl);
|
223 |
-
}
|
224 |
-
},
|
225 |
-
taxonomyEdit: function() {
|
226 |
-
|
227 |
-
$('.wpglobus-taxonomy-tabs').insertAfter('#ajax-response');
|
228 |
-
|
229 |
-
/**
|
230 |
-
* Make class wrap as tabs container.
|
231 |
-
* Tabs on.
|
232 |
-
*/
|
233 |
-
$('.wrap').tabs();
|
234 |
-
|
235 |
-
$(WPGlobusAdmin.data.multilingualSlug.title).insertAfter('.term-slug-wrap th label');
|
236 |
-
|
237 |
-
if ( WPGlobusAdmin.currentTab !== WPGlobusAdmin.data.default_language ) {
|
238 |
-
$('.wpglobus-tax-edit-tab').removeClass('ui-tabs-active ui-state-active');
|
239 |
-
$('#wpglobus-link-tab-'+WPGlobusAdmin.currentTab).addClass('ui-tabs-active ui-state-active');
|
240 |
-
}
|
241 |
-
|
242 |
-
$(document).on('click', '.wpglobus-tax-edit-tab a', function(event) {
|
243 |
-
event.preventDefault();
|
244 |
-
var _href = $(this).data('href');
|
245 |
-
location.href = _href;
|
246 |
-
});
|
247 |
-
|
248 |
-
api.setMultilingualFields();
|
249 |
-
|
250 |
-
/**
|
251 |
-
* Init Yoast tinymce editor for description.
|
252 |
-
*/
|
253 |
-
$(document).on( 'tinymce-editor-init', function( event, editor ) {
|
254 |
-
$( '#' + editor.getContainer().id ).find('iframe').addClass(WPGlobusAdmin.builder.translatableClass).css({'width':''});
|
255 |
-
});
|
256 |
-
},
|
257 |
-
start: function() {
|
258 |
-
/**
|
259 |
-
*
|
260 |
-
*/
|
261 |
-
api.setLocationSearch();
|
262 |
-
|
263 |
-
/**
|
264 |
-
*
|
265 |
-
*/
|
266 |
-
var wrap_at = '#postdivrich',
|
267 |
-
set_title = true,
|
268 |
-
content_tabs_id = '#post-body-content';
|
269 |
-
if ( WPGlobusAdmin.data.support['editor'] === false ) {
|
270 |
-
wrap_at = '#titlediv';
|
271 |
-
set_title = false;
|
272 |
-
}
|
273 |
-
if ( WPGlobusAdmin.data.support['title'] === false ) {
|
274 |
-
set_title = false;
|
275 |
-
}
|
276 |
-
|
277 |
-
/**
|
278 |
-
* Make post-body-content as tabs container.
|
279 |
-
*/
|
280 |
-
$(content_tabs_id).prepend($('.wpglobus-post-body-tabs-list'));
|
281 |
-
$.each(WPGlobusAdmin.tabs, function (index, suffix) {
|
282 |
-
if ('default' === suffix) {
|
283 |
-
$(wrap_at).wrap('<div id="tab-default"></div>');
|
284 |
-
if ( set_title ) {
|
285 |
-
$($('#titlediv')).insertBefore(wrap_at);
|
286 |
-
}
|
287 |
-
} else {
|
288 |
-
$(wrap_at+'-' + suffix).wrap('<div id="tab-' + suffix + '"></div>');
|
289 |
-
if ( set_title ) {
|
290 |
-
$($('#titlediv-' + suffix)).insertBefore(wrap_at+'-' + suffix);
|
291 |
-
}
|
292 |
-
}
|
293 |
-
});
|
294 |
-
|
295 |
-
$(content_tabs_id).addClass('wpglobus-post-body-tabs');
|
296 |
-
|
297 |
-
/**
|
298 |
-
* Set fields as multilingual.
|
299 |
-
*/
|
300 |
-
//setTimeout(api.setMultilingualFields(), 1000);
|
301 |
-
api.setMultilingualFields();
|
302 |
-
|
303 |
-
/**
|
304 |
-
*
|
305 |
-
*/
|
306 |
-
//api.ajaxPrefilter();
|
307 |
-
|
308 |
-
/**
|
309 |
-
* @since 2.2.22
|
310 |
-
*/
|
311 |
-
if ('post.php' === WPGlobusAdmin.page) {
|
312 |
-
this.postEdit();
|
313 |
-
}
|
314 |
-
|
315 |
-
},
|
316 |
-
postEdit: function() {
|
317 |
-
/**
|
318 |
-
* For compatibility with wpglobus-admin-51.js.
|
319 |
-
* @since 2.2.22
|
320 |
-
*/
|
321 |
-
$(document).triggerHandler('wpglobus_after_post_edit');
|
322 |
-
},
|
323 |
-
ajaxPrefilter: function() {
|
324 |
-
/**
|
325 |
-
* @todo WIP.
|
326 |
-
*/
|
327 |
-
$.ajaxPrefilter(function( options, originalOptions, jqXHR ) {
|
328 |
-
// Modify options, control originalOptions, store jqXHR, etc
|
329 |
-
//console.log(options);
|
330 |
-
});
|
331 |
-
},
|
332 |
-
setMultilingualFields: function() {
|
333 |
-
$.each(WPGlobusAdmin.builder.multilingualFields, function(indx, field) {
|
334 |
-
var elementBy = 'name';
|
335 |
-
var node = document.getElementsByName(field);
|
336 |
-
var $element;
|
337 |
-
|
338 |
-
if ( 0 == node.length ) {
|
339 |
-
elementBy = 'id';
|
340 |
-
node = document.getElementById(field);
|
341 |
-
}
|
342 |
-
|
343 |
-
if ( null === node ) {
|
344 |
-
return;
|
345 |
-
} else {
|
346 |
-
if ( 'id' == elementBy ) {
|
347 |
-
$element = $('#'+field);
|
348 |
-
} else {
|
349 |
-
var nodeName = node[0].nodeName;
|
350 |
-
nodeName = nodeName.toLowerCase();
|
351 |
-
$element = $(nodeName+'[name="'+field+'"]');
|
352 |
-
}
|
353 |
-
$element.addClass(WPGlobusAdmin.builder.translatableClass);
|
354 |
-
}
|
355 |
-
|
356 |
-
});
|
357 |
-
}
|
358 |
-
}
|
359 |
-
|
360 |
-
WPGlobusAdmin = $.extend({}, WPGlobusAdmin, api);
|
361 |
-
WPGlobusAdmin.init();
|
362 |
-
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/includes/builders/assets/wpglobus-admin-builder-51.min.js
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
var WPGlobusCore;!function(l){var s=WPGlobusCore={strpos:function(a,t,e){var o=(a=""+a).indexOf(t,e);return 0<=o&&o},TextFilter:function(a,t,e){if(void 0===a||""===a)return a;var o,n,l=[],i=!1;t=""==t?"en":t,e=void 0===e||""==e?"RETURN_IN_DEFAULT_LANGUAGE":e,l[0]=[],l[0].start=WPGlobusCoreData.locale_tag_start.replace("%s",t),l[0].end=WPGlobusCoreData.locale_tag_end,l[1]=[],l[1].start="\x3c!--:"+t+"--\x3e",l[1].end="\x3c!--:--\x3e",l[2]=[],l[2].start="[:"+t+"]",l[2].end="[:";for(var u=0;u<3;u++)if(!1!==(o=s.strpos(a,l[u].start))){o+=l[u].start.length,a=!1===(n=s.strpos(a,l[u].end,o))?a.substr(o):a.substr(o,n-o),i=!0;break}return i||("RETURN_EMPTY"==e?t==WPGlobusCoreData.default_language&&!/(\{:|\[:|<!--:)[a-z]{2}/.test(a)||(a=""):t==WPGlobusCoreData.default_language?/(\{:|\[:|<!--:)[a-z]{2}/.test(a)&&(a=""):a=s.TextFilter(a,WPGlobusCoreData.default_language)),a},addLocaleMarks:function(a,t){return WPGlobusCoreData.locale_tag_start.replace("%s",t)+a+WPGlobusCoreData.locale_tag_end},getTranslations:function(e){var o,n={};return l.each(WPGlobusCoreData.enabled_languages,function(a,t){o=t==WPGlobusCoreData.default_language?"RETURN_IN_DEFAULT_LANGUAGE":"RETURN_EMPTY",n[t]=s.TextFilter(e,t,o)}),n},getString:function(a,t,e){if(void 0===a)return a;void 0===t&&(t=""),void 0===e&&(e=WPGlobusCoreData.language),(a=s.getTranslations(a))[e]=t;var o="";return l.each(a,function(a,t){""!=t&&a!=WPGlobusCoreData.default_language&&(o+=s.addLocaleMarks(t,a))}),""!=a[WPGlobusCoreData.default_language]&&(o=""==o?a[WPGlobusCoreData.default_language]:s.addLocaleMarks(a[WPGlobusCoreData.default_language],WPGlobusCoreData.default_language)+o),o}}}(jQuery),jQuery(document).ready(function(l){"use strict";var t;"undefined"!=typeof WPGlobusAdmin&&(t={languageSelectorBoxDelta:0,locationPathname:"/wp-admin/post.php",init:function(){"taxonomy-edit"===WPGlobusAdmin.page?t.taxonomyEdit():t.start()},_info:function(){var a=void 0;0<l("#language").length&&(a=l("#language").val()),console.log("Current language from hidden (#language) : ",a),a=void 0,0<l("#wpglobus-language").length&&(a=l("#wpglobus-language").val()),console.log("Current language from hidden (#wpglobus-language) : ",a),a=void 0,0<l('input[name="wpglobus-language"]').length&&(a=l('input[name="wpglobus-language"]').val()),console.log('Current language from hidden (input[name="wpglobus-language"]) : ',a),a=void 0,0<l('input[name="wpglobus_language"]').length&&(a=l('input[name="wpglobus_language"]').val()),console.log('Current language from hidden (input[name="wpglobus_language"]) : ',a),console.log("Builder : ",WPGlobusAdmin.builder);var t=l("#content").val();""==t?console.log("Editor content (#content) : (empty)"):console.log(t)},checkCookie:function(){if(-1!=window.location.search.indexOf("language="))return!1;if("post.php"==WPGlobusAdmin.page){var a=wpCookies.get(WPGlobusAdmin.builder.languageCookie);if(null!==a&&history.pushState){var t=(a=a.split("+"))[0];if(void 0!==a[1]&&a[1]+0==WPGlobusAdmin.$_get.post){var e=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search+"&language="+t;return window.history.pushState({path:e},"",e),t}}}return!1},setCookie:function(){var a=t.checkCookie();a||void 0===(a=WPGlobusAdmin.$_get.language)&&(a=WPGlobusAdmin.data.default_language),wpCookies.set(WPGlobusAdmin.builder.languageCookie,a+"+"+WPGlobusAdmin.$_get.post,31536e3,t.locationPathname)},setLocationSearch:function(){var a;history.pushState&&-1==window.location.search.indexOf("language=")&&WPGlobusAdmin.data.default_language!=WPGlobusAdmin.currentTab&&(a=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search+"&language="+WPGlobusAdmin.currentTab,window.history.pushState({path:a},"",a))},taxonomyEdit:function(){l(".wpglobus-taxonomy-tabs").insertAfter("#ajax-response"),l(".wrap").tabs(),l(WPGlobusAdmin.data.multilingualSlug.title).insertAfter(".term-slug-wrap th label"),WPGlobusAdmin.currentTab!==WPGlobusAdmin.data.default_language&&(l(".wpglobus-tax-edit-tab").removeClass("ui-tabs-active ui-state-active"),l("#wpglobus-link-tab-"+WPGlobusAdmin.currentTab).addClass("ui-tabs-active ui-state-active")),l(document).on("click",".wpglobus-tax-edit-tab a",function(a){a.preventDefault();var t=l(this).data("href");location.href=t}),t.setMultilingualFields(),l(document).on("tinymce-editor-init",function(a,t){l("#"+t.getContainer().id).find("iframe").addClass(WPGlobusAdmin.builder.translatableClass).css({width:""})})},start:function(){t.setLocationSearch();var e="#postdivrich",o=!0,a="#post-body-content";!1===WPGlobusAdmin.data.support.editor&&(o=!(e="#titlediv")),!1===WPGlobusAdmin.data.support.title&&(o=!1),l(a).prepend(l(".wpglobus-post-body-tabs-list")),l.each(WPGlobusAdmin.tabs,function(a,t){"default"===t?(l(e).wrap('<div id="tab-default"></div>'),o&&l(l("#titlediv")).insertBefore(e)):(l(e+"-"+t).wrap('<div id="tab-'+t+'"></div>'),o&&l(l("#titlediv-"+t)).insertBefore(e+"-"+t))}),l(a).addClass("wpglobus-post-body-tabs"),t.setMultilingualFields(),"post.php"===WPGlobusAdmin.page&&this.postEdit()},postEdit:function(){l(document).triggerHandler("wpglobus_after_post_edit")},ajaxPrefilter:function(){l.ajaxPrefilter(function(a,t,e){})},setMultilingualFields:function(){l.each(WPGlobusAdmin.builder.multilingualFields,function(a,t){var e,o="name",n=document.getElementsByName(t);0==n.length&&(o="id",n=document.getElementById(t)),null!==n&&("id"==o?l("#"+t):(e=(e=n[0].nodeName).toLowerCase(),l(e+'[name="'+t+'"]'))).addClass(WPGlobusAdmin.builder.translatableClass)})}},(WPGlobusAdmin=l.extend({},WPGlobusAdmin,t)).init())});
|
|
trunk/includes/builders/assets/wpglobus-admin-builder-55.js
DELETED
@@ -1,404 +0,0 @@
|
|
1 |
-
/**
|
2 |
-
* WPGlobus Administration Core.
|
3 |
-
* Interface JS functions
|
4 |
-
*
|
5 |
-
* @since 2.5
|
6 |
-
* @since 2.5.17 Revised `setMultilingualFields` function to use field param as string or object.
|
7 |
-
*
|
8 |
-
* @package WPGlobus
|
9 |
-
* @subpackage Administration
|
10 |
-
*/
|
11 |
-
/*jslint browser: true*/
|
12 |
-
/*global jQuery, console, WPGlobusCore*/
|
13 |
-
|
14 |
-
var WPGlobusCore;
|
15 |
-
|
16 |
-
(function($) {
|
17 |
-
var api;
|
18 |
-
api = WPGlobusCore = {
|
19 |
-
strpos: function( haystack, needle, offset){
|
20 |
-
haystack = "" + haystack;
|
21 |
-
var i = haystack.indexOf( needle, offset );
|
22 |
-
return i >= 0 ? i : false;
|
23 |
-
},
|
24 |
-
|
25 |
-
TextFilter: function(text, language, return_in){
|
26 |
-
if ( typeof text == 'undefined' || '' === text ) { return text; }
|
27 |
-
|
28 |
-
var pos_start, pos_end, possible_delimiters = [], is_local_text_found = false;;
|
29 |
-
|
30 |
-
language = '' == language ? 'en' : language;
|
31 |
-
return_in = typeof return_in == 'undefined' || '' == return_in ? 'RETURN_IN_DEFAULT_LANGUAGE' : return_in;
|
32 |
-
|
33 |
-
possible_delimiters[0] = [];
|
34 |
-
possible_delimiters[0]['start'] = WPGlobusCoreData.locale_tag_start.replace('%s', language);
|
35 |
-
possible_delimiters[0]['end'] = WPGlobusCoreData.locale_tag_end;
|
36 |
-
|
37 |
-
possible_delimiters[1] = [];
|
38 |
-
possible_delimiters[1]['start'] = '<!--:'+language+'-->';
|
39 |
-
possible_delimiters[1]['end'] = '<!--:-->';
|
40 |
-
|
41 |
-
possible_delimiters[2] = [];
|
42 |
-
possible_delimiters[2]['start'] = '[:'+language+']';
|
43 |
-
possible_delimiters[2]['end'] = '[:';
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
for (var i = 0; i < 3; i++) {
|
48 |
-
|
49 |
-
pos_start = api.strpos( text, possible_delimiters[i]['start'] );
|
50 |
-
if ( pos_start === false ) {
|
51 |
-
continue;
|
52 |
-
}
|
53 |
-
|
54 |
-
pos_start = pos_start + possible_delimiters[i]['start'].length;
|
55 |
-
|
56 |
-
pos_end = api.strpos( text, possible_delimiters[i]['end'], pos_start );
|
57 |
-
|
58 |
-
if ( pos_end === false ) {
|
59 |
-
text = text.substr( pos_start );
|
60 |
-
} else {
|
61 |
-
text = text.substr( pos_start, pos_end - pos_start );
|
62 |
-
}
|
63 |
-
|
64 |
-
is_local_text_found = true;
|
65 |
-
break;
|
66 |
-
|
67 |
-
}
|
68 |
-
|
69 |
-
if ( ! is_local_text_found ) {
|
70 |
-
if ( return_in == 'RETURN_EMPTY' ) {
|
71 |
-
if ( language == WPGlobusCoreData.default_language && ! /(\{:|\[:|<!--:)[a-z]{2}/.test(text) ) {
|
72 |
-
/** do nothing */
|
73 |
-
} else {
|
74 |
-
text = '';
|
75 |
-
}
|
76 |
-
} else {
|
77 |
-
/**
|
78 |
-
* Try RETURN_IN_DEFAULT_LANGUAGE.
|
79 |
-
*/
|
80 |
-
if ( language == WPGlobusCoreData.default_language ) {
|
81 |
-
if ( /(\{:|\[:|<!--:)[a-z]{2}/.test(text) ) {
|
82 |
-
text = '';
|
83 |
-
}
|
84 |
-
} else {
|
85 |
-
text = api.TextFilter( text, WPGlobusCoreData.default_language );
|
86 |
-
}
|
87 |
-
}
|
88 |
-
}
|
89 |
-
return text;
|
90 |
-
},
|
91 |
-
addLocaleMarks: function(text, language) {
|
92 |
-
return WPGlobusCoreData.locale_tag_start.replace('%s', language) + text + WPGlobusCoreData.locale_tag_end;
|
93 |
-
},
|
94 |
-
getTranslations: function(text) {
|
95 |
-
var t = {},
|
96 |
-
return_in;
|
97 |
-
$.each(WPGlobusCoreData.enabled_languages, function(i,l){
|
98 |
-
return_in = l == WPGlobusCoreData.default_language ? 'RETURN_IN_DEFAULT_LANGUAGE' : 'RETURN_EMPTY';
|
99 |
-
t[l] = api.TextFilter(text, l, return_in);
|
100 |
-
});
|
101 |
-
return t;
|
102 |
-
},
|
103 |
-
getString: function(s, newVal, l) {
|
104 |
-
if ( 'undefined' === typeof(s) ) {
|
105 |
-
return s;
|
106 |
-
}
|
107 |
-
if ( 'undefined' === typeof(newVal) ) {
|
108 |
-
newVal = '';
|
109 |
-
}
|
110 |
-
if ( 'undefined' === typeof(l) ) {
|
111 |
-
l = WPGlobusCoreData.language;
|
112 |
-
}
|
113 |
-
|
114 |
-
s = api.getTranslations(s);
|
115 |
-
s[l] = newVal;
|
116 |
-
|
117 |
-
var cS = '';
|
118 |
-
|
119 |
-
$.each(s, function(ln,val){
|
120 |
-
if ( '' != val && ln != WPGlobusCoreData.default_language) {
|
121 |
-
cS += api.addLocaleMarks(val, ln);
|
122 |
-
}
|
123 |
-
});
|
124 |
-
|
125 |
-
if ( '' != s[WPGlobusCoreData.default_language] ) {
|
126 |
-
if ( '' == cS ) {
|
127 |
-
cS = s[WPGlobusCoreData.default_language];
|
128 |
-
} else {
|
129 |
-
cS = api.addLocaleMarks(s[WPGlobusCoreData.default_language], WPGlobusCoreData.default_language) + cS;
|
130 |
-
}
|
131 |
-
}
|
132 |
-
return cS;
|
133 |
-
}
|
134 |
-
};
|
135 |
-
})(jQuery);
|
136 |
-
|
137 |
-
jQuery(document).ready(function ($) {
|
138 |
-
"use strict";
|
139 |
-
|
140 |
-
if ( 'undefined' === typeof WPGlobusAdmin ) {
|
141 |
-
return;
|
142 |
-
}
|
143 |
-
|
144 |
-
var api = {
|
145 |
-
languageSelectorBoxDelta: 0,
|
146 |
-
locationPathname: '/wp-admin/post.php',
|
147 |
-
init: function() {
|
148 |
-
//api.setCookie();
|
149 |
-
if ('taxonomy-edit' === WPGlobusAdmin.page) {
|
150 |
-
api.taxonomyEdit();
|
151 |
-
} else {
|
152 |
-
api.start();
|
153 |
-
}
|
154 |
-
},
|
155 |
-
_info: function() {
|
156 |
-
var lang = undefined;
|
157 |
-
if( $('#language').length > 0 ) {
|
158 |
-
lang = $('#language').val();
|
159 |
-
}
|
160 |
-
console.log('Current language from hidden (#language) : ', lang);
|
161 |
-
|
162 |
-
lang = undefined;
|
163 |
-
if( $('#wpglobus-language').length > 0 ) {
|
164 |
-
lang = $('#wpglobus-language').val();
|
165 |
-
}
|
166 |
-
console.log('Current language from hidden (#wpglobus-language) : ', lang);
|
167 |
-
|
168 |
-
lang = undefined;
|
169 |
-
if( $('input[name="wpglobus-language"]').length > 0 ) {
|
170 |
-
lang = $('input[name="wpglobus-language"]').val();
|
171 |
-
}
|
172 |
-
console.log('Current language from hidden (input[name="wpglobus-language"]) : ', lang);
|
173 |
-
|
174 |
-
lang = undefined;
|
175 |
-
if( $('input[name="wpglobus_language"]').length > 0 ) {
|
176 |
-
lang = $('input[name="wpglobus_language"]').val();
|
177 |
-
}
|
178 |
-
console.log('Current language from hidden (input[name="wpglobus_language"]) : ', lang);
|
179 |
-
console.log('Builder : ', WPGlobusAdmin.builder);
|
180 |
-
|
181 |
-
var content = $('#content').val();
|
182 |
-
if ( content == '' ) {
|
183 |
-
console.log('Editor content (#content) : (empty)');
|
184 |
-
} else {
|
185 |
-
console.log(content);
|
186 |
-
}
|
187 |
-
},
|
188 |
-
checkCookie: function() {
|
189 |
-
if ( -1 != window.location.search.indexOf('language=') ) {
|
190 |
-
return false;
|
191 |
-
}
|
192 |
-
if ( 'post.php' == WPGlobusAdmin.page ) {
|
193 |
-
var cookie = wpCookies.get(WPGlobusAdmin.builder.languageCookie);
|
194 |
-
|
195 |
-
if ( null !== cookie && history.pushState) {
|
196 |
-
cookie = cookie.split('+');
|
197 |
-
var language = cookie[0];
|
198 |
-
if ('undefined' !== typeof cookie[1] && cookie[1] + 0 == WPGlobusAdmin.$_get.post ) {
|
199 |
-
var newurl = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search + '&language='+language;
|
200 |
-
window.history.pushState({path:newurl},'',newurl);
|
201 |
-
return language;
|
202 |
-
}
|
203 |
-
}
|
204 |
-
}
|
205 |
-
return false;
|
206 |
-
},
|
207 |
-
setCookie: function() {
|
208 |
-
var lang = api.checkCookie();
|
209 |
-
if ( ! lang ) {
|
210 |
-
lang = WPGlobusAdmin.$_get.language;
|
211 |
-
if ( 'undefined' === typeof lang ) {
|
212 |
-
lang = WPGlobusAdmin.data.default_language;
|
213 |
-
}
|
214 |
-
}
|
215 |
-
wpCookies.set(WPGlobusAdmin.builder.languageCookie, lang+'+'+WPGlobusAdmin.$_get.post, 31536000, api.locationPathname );
|
216 |
-
},
|
217 |
-
setLocationSearch: function() {
|
218 |
-
if ( ! history.pushState || -1 != window.location.search.indexOf('language=') ) {
|
219 |
-
return;
|
220 |
-
}
|
221 |
-
if ( WPGlobusAdmin.data.default_language != WPGlobusAdmin.currentTab ) {
|
222 |
-
var newurl = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search + '&language='+WPGlobusAdmin.currentTab;
|
223 |
-
window.history.pushState({path:newurl},'',newurl);
|
224 |
-
}
|
225 |
-
},
|
226 |
-
taxonomyEdit: function() {
|
227 |
-
|
228 |
-
$('.wpglobus-taxonomy-tabs').insertAfter('#ajax-response');
|
229 |
-
|
230 |
-
/**
|
231 |
-
* Make class wrap as tabs container.
|
232 |
-
* Tabs on.
|
233 |
-
*/
|
234 |
-
$('.wrap').tabs();
|
235 |
-
|
236 |
-
$(WPGlobusAdmin.data.multilingualSlug.title).insertAfter('.term-slug-wrap th label');
|
237 |
-
|
238 |
-
if ( WPGlobusAdmin.currentTab !== WPGlobusAdmin.data.default_language ) {
|
239 |
-
$('.wpglobus-tax-edit-tab').removeClass('ui-tabs-active ui-state-active');
|
240 |
-
$('#wpglobus-link-tab-'+WPGlobusAdmin.currentTab).addClass('ui-tabs-active ui-state-active');
|
241 |
-
}
|
242 |
-
|
243 |
-
$(document).on('click', '.wpglobus-tax-edit-tab a', function(event) {
|
244 |
-
event.preventDefault();
|
245 |
-
var _href = $(this).data('href');
|
246 |
-
location.href = _href;
|
247 |
-
});
|
248 |
-
|
249 |
-
api.setMultilingualFields();
|
250 |
-
|
251 |
-
/**
|
252 |
-
* Init Yoast tinymce editor for description.
|
253 |
-
*/
|
254 |
-
$(document).on( 'tinymce-editor-init', function( event, editor ) {
|
255 |
-
$( '#' + editor.getContainer().id ).find('iframe').addClass(WPGlobusAdmin.builder.translatableClass).css({'width':''});
|
256 |
-
});
|
257 |
-
},
|
258 |
-
start: function() {
|
259 |
-
/**
|
260 |
-
*
|
261 |
-
*/
|
262 |
-
api.setLocationSearch();
|
263 |
-
|
264 |
-
/**
|
265 |
-
*
|
266 |
-
*/
|
267 |
-
var wrap_at = '#postdivrich',
|
268 |
-
set_title = true,
|
269 |
-
content_tabs_id = '#post-body-content';
|
270 |
-
if ( WPGlobusAdmin.data.support['editor'] === false ) {
|
271 |
-
wrap_at = '#titlediv';
|
272 |
-
set_title = false;
|
273 |
-
}
|
274 |
-
if ( WPGlobusAdmin.data.support['title'] === false ) {
|
275 |
-
set_title = false;
|
276 |
-
}
|
277 |
-
|
278 |
-
/**
|
279 |
-
* Make post-body-content as tabs container.
|
280 |
-
*/
|
281 |
-
$(content_tabs_id).prepend($('.wpglobus-post-body-tabs-list'));
|
282 |
-
$.each(WPGlobusAdmin.tabs, function (index, suffix) {
|
283 |
-
if ('default' === suffix) {
|
284 |
-
$(wrap_at).wrap('<div id="tab-default"></div>');
|
285 |
-
if ( set_title ) {
|
286 |
-
$($('#titlediv')).insertBefore(wrap_at);
|
287 |
-
}
|
288 |
-
} else {
|
289 |
-
$(wrap_at+'-' + suffix).wrap('<div id="tab-' + suffix + '"></div>');
|
290 |
-
if ( set_title ) {
|
291 |
-
$($('#titlediv-' + suffix)).insertBefore(wrap_at+'-' + suffix);
|
292 |
-
}
|
293 |
-
}
|
294 |
-
});
|
295 |
-
|
296 |
-
$(content_tabs_id).addClass('wpglobus-post-body-tabs');
|
297 |
-
|
298 |
-
/**
|
299 |
-
* Set fields as multilingual.
|
300 |
-
*/
|
301 |
-
//setTimeout(api.setMultilingualFields(), 1000);
|
302 |
-
api.setMultilingualFields();
|
303 |
-
|
304 |
-
/**
|
305 |
-
*
|
306 |
-
*/
|
307 |
-
//api.ajaxPrefilter();
|
308 |
-
|
309 |
-
/**
|
310 |
-
* @since 2.2.22
|
311 |
-
*/
|
312 |
-
if ('post.php' === WPGlobusAdmin.page) {
|
313 |
-
this.postEdit();
|
314 |
-
}
|
315 |
-
|
316 |
-
},
|
317 |
-
postEdit: function() {
|
318 |
-
/**
|
319 |
-
* For compatibility with wpglobus-admin-51.js.
|
320 |
-
* @since 2.2.22
|
321 |
-
*/
|
322 |
-
$(document).triggerHandler('wpglobus_after_post_edit');
|
323 |
-
},
|
324 |
-
ajaxPrefilter: function() {
|
325 |
-
/**
|
326 |
-
* @todo WIP.
|
327 |
-
*/
|
328 |
-
$.ajaxPrefilter(function( options, originalOptions, jqXHR ) {
|
329 |
-
// Modify options, control originalOptions, store jqXHR, etc
|
330 |
-
//console.log(options);
|
331 |
-
});
|
332 |
-
},
|
333 |
-
setMultilingualFields: function() {
|
334 |
-
$.each(WPGlobusAdmin.builder.multilingualFields, function(indx, field) {
|
335 |
-
/**
|
336 |
-
* @since 2.5.17 Revised function to use field param as string or object.
|
337 |
-
*/
|
338 |
-
var attrs = api.getFieldAttrs(field);
|
339 |
-
if ( 'function' === typeof WPGlobusAdmin[attrs.fieldFunction] ) {
|
340 |
-
WPGlobusAdmin[attrs.fieldFunction](attrs);
|
341 |
-
}
|
342 |
-
});
|
343 |
-
},
|
344 |
-
textField: function(attrs){
|
345 |
-
var id = attrs.id;
|
346 |
-
var elementBy = 'name';
|
347 |
-
var node = document.getElementsByName(id);
|
348 |
-
var $element;
|
349 |
-
|
350 |
-
if ( 0 == node.length ) {
|
351 |
-
elementBy = 'id';
|
352 |
-
node = document.getElementById(id);
|
353 |
-
}
|
354 |
-
|
355 |
-
if ( null === node ) {
|
356 |
-
return true;
|
357 |
-
} else {
|
358 |
-
if ( 'id' == elementBy ) {
|
359 |
-
$element = $('#'+id);
|
360 |
-
} else {
|
361 |
-
var nodeName = node[0].nodeName;
|
362 |
-
nodeName = nodeName.toLowerCase();
|
363 |
-
$element = $(nodeName+'[name="'+id+'"]');
|
364 |
-
}
|
365 |
-
$element.addClass(WPGlobusAdmin.builder.translatableClass);
|
366 |
-
}
|
367 |
-
},
|
368 |
-
wysiwygField: function(attrs){
|
369 |
-
$(document).on('wpglobus_wysiwyg_field', function(evnt,params) {
|
370 |
-
params.callback(attrs);
|
371 |
-
});
|
372 |
-
},
|
373 |
-
fileField: function(attrs){
|
374 |
-
// @since 2.5.17 @W.I.P
|
375 |
-
/*
|
376 |
-
$(document).on('wpglobus_file_field', function(evnt,params) {
|
377 |
-
params.callback(attrs);
|
378 |
-
}); // */
|
379 |
-
},
|
380 |
-
getFieldAttrs: function(field){
|
381 |
-
var defaultAttrs = {
|
382 |
-
'id': false,
|
383 |
-
'type': 'text',
|
384 |
-
'fieldFunction': 'textField'
|
385 |
-
}
|
386 |
-
var attrs = {};
|
387 |
-
if ( 'string' === typeof field ) {
|
388 |
-
attrs['id'] = field;
|
389 |
-
} else if ( 'object' === typeof field ) {
|
390 |
-
if ( 'undefined' !== typeof field.id ) {
|
391 |
-
attrs['id'] = field.id;
|
392 |
-
}
|
393 |
-
if ( 'undefined' !== typeof field.type ) {
|
394 |
-
attrs['type'] = field.type;
|
395 |
-
attrs['fieldFunction'] = field.type+'Field';
|
396 |
-
}
|
397 |
-
}
|
398 |
-
return $.extend({}, defaultAttrs, attrs);
|
399 |
-
}
|
400 |
-
}
|
401 |
-
|
402 |
-
WPGlobusAdmin = $.extend({}, WPGlobusAdmin, api);
|
403 |
-
WPGlobusAdmin.init();
|
404 |
-
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/includes/builders/assets/wpglobus-admin-builder-55.min.js
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
var WPGlobusCore;!function(l){var s=WPGlobusCore={strpos:function(t,e,a){var o=(t=""+t).indexOf(e,a);return 0<=o&&o},TextFilter:function(t,e,a){if(void 0===t||""===t)return t;var o,n,l=[],i=!1;e=""==e?"en":e,a=void 0===a||""==a?"RETURN_IN_DEFAULT_LANGUAGE":a,l[0]=[],l[0].start=WPGlobusCoreData.locale_tag_start.replace("%s",e),l[0].end=WPGlobusCoreData.locale_tag_end,l[1]=[],l[1].start="\x3c!--:"+e+"--\x3e",l[1].end="\x3c!--:--\x3e",l[2]=[],l[2].start="[:"+e+"]",l[2].end="[:";for(var u=0;u<3;u++)if(!1!==(o=s.strpos(t,l[u].start))){o+=l[u].start.length,t=!1===(n=s.strpos(t,l[u].end,o))?t.substr(o):t.substr(o,n-o),i=!0;break}return i||("RETURN_EMPTY"==a?e==WPGlobusCoreData.default_language&&!/(\{:|\[:|<!--:)[a-z]{2}/.test(t)||(t=""):e==WPGlobusCoreData.default_language?/(\{:|\[:|<!--:)[a-z]{2}/.test(t)&&(t=""):t=s.TextFilter(t,WPGlobusCoreData.default_language)),t},addLocaleMarks:function(t,e){return WPGlobusCoreData.locale_tag_start.replace("%s",e)+t+WPGlobusCoreData.locale_tag_end},getTranslations:function(a){var o,n={};return l.each(WPGlobusCoreData.enabled_languages,function(t,e){o=e==WPGlobusCoreData.default_language?"RETURN_IN_DEFAULT_LANGUAGE":"RETURN_EMPTY",n[e]=s.TextFilter(a,e,o)}),n},getString:function(t,e,a){if(void 0===t)return t;void 0===e&&(e=""),void 0===a&&(a=WPGlobusCoreData.language),(t=s.getTranslations(t))[a]=e;var o="";return l.each(t,function(t,e){""!=e&&t!=WPGlobusCoreData.default_language&&(o+=s.addLocaleMarks(e,t))}),""!=t[WPGlobusCoreData.default_language]&&(o=""==o?t[WPGlobusCoreData.default_language]:s.addLocaleMarks(t[WPGlobusCoreData.default_language],WPGlobusCoreData.default_language)+o),o}}}(jQuery),jQuery(document).ready(function(l){"use strict";var n;"undefined"!=typeof WPGlobusAdmin&&(n={languageSelectorBoxDelta:0,locationPathname:"/wp-admin/post.php",init:function(){"taxonomy-edit"===WPGlobusAdmin.page?n.taxonomyEdit():n.start()},_info:function(){var t=void 0;0<l("#language").length&&(t=l("#language").val()),console.log("Current language from hidden (#language) : ",t),t=void 0,0<l("#wpglobus-language").length&&(t=l("#wpglobus-language").val()),console.log("Current language from hidden (#wpglobus-language) : ",t),t=void 0,0<l('input[name="wpglobus-language"]').length&&(t=l('input[name="wpglobus-language"]').val()),console.log('Current language from hidden (input[name="wpglobus-language"]) : ',t),t=void 0,0<l('input[name="wpglobus_language"]').length&&(t=l('input[name="wpglobus_language"]').val()),console.log('Current language from hidden (input[name="wpglobus_language"]) : ',t),console.log("Builder : ",WPGlobusAdmin.builder);var e=l("#content").val();""==e?console.log("Editor content (#content) : (empty)"):console.log(e)},checkCookie:function(){if(-1!=window.location.search.indexOf("language="))return!1;if("post.php"==WPGlobusAdmin.page){var t=wpCookies.get(WPGlobusAdmin.builder.languageCookie);if(null!==t&&history.pushState){var e=(t=t.split("+"))[0];if(void 0!==t[1]&&t[1]+0==WPGlobusAdmin.$_get.post){var a=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search+"&language="+e;return window.history.pushState({path:a},"",a),e}}}return!1},setCookie:function(){var t=n.checkCookie();t||void 0===(t=WPGlobusAdmin.$_get.language)&&(t=WPGlobusAdmin.data.default_language),wpCookies.set(WPGlobusAdmin.builder.languageCookie,t+"+"+WPGlobusAdmin.$_get.post,31536e3,n.locationPathname)},setLocationSearch:function(){var t;history.pushState&&-1==window.location.search.indexOf("language=")&&WPGlobusAdmin.data.default_language!=WPGlobusAdmin.currentTab&&(t=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search+"&language="+WPGlobusAdmin.currentTab,window.history.pushState({path:t},"",t))},taxonomyEdit:function(){l(".wpglobus-taxonomy-tabs").insertAfter("#ajax-response"),l(".wrap").tabs(),l(WPGlobusAdmin.data.multilingualSlug.title).insertAfter(".term-slug-wrap th label"),WPGlobusAdmin.currentTab!==WPGlobusAdmin.data.default_language&&(l(".wpglobus-tax-edit-tab").removeClass("ui-tabs-active ui-state-active"),l("#wpglobus-link-tab-"+WPGlobusAdmin.currentTab).addClass("ui-tabs-active ui-state-active")),l(document).on("click",".wpglobus-tax-edit-tab a",function(t){t.preventDefault();var e=l(this).data("href");location.href=e}),n.setMultilingualFields(),l(document).on("tinymce-editor-init",function(t,e){l("#"+e.getContainer().id).find("iframe").addClass(WPGlobusAdmin.builder.translatableClass).css({width:""})})},start:function(){n.setLocationSearch();var a="#postdivrich",o=!0,t="#post-body-content";!1===WPGlobusAdmin.data.support.editor&&(o=!(a="#titlediv")),!1===WPGlobusAdmin.data.support.title&&(o=!1),l(t).prepend(l(".wpglobus-post-body-tabs-list")),l.each(WPGlobusAdmin.tabs,function(t,e){"default"===e?(l(a).wrap('<div id="tab-default"></div>'),o&&l(l("#titlediv")).insertBefore(a)):(l(a+"-"+e).wrap('<div id="tab-'+e+'"></div>'),o&&l(l("#titlediv-"+e)).insertBefore(a+"-"+e))}),l(t).addClass("wpglobus-post-body-tabs"),n.setMultilingualFields(),"post.php"===WPGlobusAdmin.page&&this.postEdit()},postEdit:function(){l(document).triggerHandler("wpglobus_after_post_edit")},ajaxPrefilter:function(){l.ajaxPrefilter(function(t,e,a){})},setMultilingualFields:function(){l.each(WPGlobusAdmin.builder.multilingualFields,function(t,e){var a=n.getFieldAttrs(e);"function"==typeof WPGlobusAdmin[a.fieldFunction]&&WPGlobusAdmin[a.fieldFunction](a)})},textField:function(t){var e,a=t.id,o="name",n=document.getElementsByName(a);if(0==n.length&&(o="id",n=document.getElementById(a)),null===n)return!0;("id"==o?l("#"+a):(e=(e=n[0].nodeName).toLowerCase(),l(e+'[name="'+a+'"]'))).addClass(WPGlobusAdmin.builder.translatableClass)},wysiwygField:function(a){l(document).on("wpglobus_wysiwyg_field",function(t,e){e.callback(a)})},fileField:function(t){},getFieldAttrs:function(t){var e={};return"string"==typeof t?e.id=t:"object"==typeof t&&(void 0!==t.id&&(e.id=t.id),void 0!==t.type&&(e.type=t.type,e.fieldFunction=t.type+"Field")),l.extend({},{id:!1,type:"text",fieldFunction:"textField"},e)}},(WPGlobusAdmin=l.extend({},WPGlobusAdmin,n)).init())});
|
|
trunk/includes/builders/assets/wpglobus-admin-builder-56.js
DELETED
@@ -1,403 +0,0 @@
|
|
1 |
-
/**
|
2 |
-
* WPGlobus Administration Core.
|
3 |
-
* Interface JS functions
|
4 |
-
*
|
5 |
-
* @since 2.6
|
6 |
-
*
|
7 |
-
* @package WPGlobus
|
8 |
-
* @subpackage Administration
|
9 |
-
*/
|
10 |
-
/*jslint browser: true*/
|
11 |
-
/*global jQuery, console, WPGlobusCore*/
|
12 |
-
|
13 |
-
var WPGlobusCore;
|
14 |
-
|
15 |
-
(function($) {
|
16 |
-
var api;
|
17 |
-
api = WPGlobusCore = {
|
18 |
-
strpos: function( haystack, needle, offset){
|
19 |
-
haystack = "" + haystack;
|
20 |
-
var i = haystack.indexOf( needle, offset );
|
21 |
-
return i >= 0 ? i : false;
|
22 |
-
},
|
23 |
-
|
24 |
-
TextFilter: function(text, language, return_in){
|
25 |
-
if ( typeof text == 'undefined' || '' === text ) { return text; }
|
26 |
-
|
27 |
-
var pos_start, pos_end, possible_delimiters = [], is_local_text_found = false;;
|
28 |
-
|
29 |
-
language = '' == language ? 'en' : language;
|
30 |
-
return_in = typeof return_in == 'undefined' || '' == return_in ? 'RETURN_IN_DEFAULT_LANGUAGE' : return_in;
|
31 |
-
|
32 |
-
possible_delimiters[0] = [];
|
33 |
-
possible_delimiters[0]['start'] = WPGlobusCoreData.locale_tag_start.replace('%s', language);
|
34 |
-
possible_delimiters[0]['end'] = WPGlobusCoreData.locale_tag_end;
|
35 |
-
|
36 |
-
possible_delimiters[1] = [];
|
37 |
-
possible_delimiters[1]['start'] = '<!--:'+language+'-->';
|
38 |
-
possible_delimiters[1]['end'] = '<!--:-->';
|
39 |
-
|
40 |
-
possible_delimiters[2] = [];
|
41 |
-
possible_delimiters[2]['start'] = '[:'+language+']';
|
42 |
-
possible_delimiters[2]['end'] = '[:';
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
for (var i = 0; i < 3; i++) {
|
47 |
-
|
48 |
-
pos_start = api.strpos( text, possible_delimiters[i]['start'] );
|
49 |
-
if ( pos_start === false ) {
|
50 |
-
continue;
|
51 |
-
}
|
52 |
-
|
53 |
-
pos_start = pos_start + possible_delimiters[i]['start'].length;
|
54 |
-
|
55 |
-
pos_end = api.strpos( text, possible_delimiters[i]['end'], pos_start );
|
56 |
-
|
57 |
-
if ( pos_end === false ) {
|
58 |
-
text = text.substr( pos_start );
|
59 |
-
} else {
|
60 |
-
text = text.substr( pos_start, pos_end - pos_start );
|
61 |
-
}
|
62 |
-
|
63 |
-
is_local_text_found = true;
|
64 |
-
break;
|
65 |
-
|
66 |
-
}
|
67 |
-
|
68 |
-
if ( ! is_local_text_found ) {
|
69 |
-
if ( return_in == 'RETURN_EMPTY' ) {
|
70 |
-
if ( language == WPGlobusCoreData.default_language && ! /(\{:|\[:|<!--:)[a-z]{2}/.test(text) ) {
|
71 |
-
/** do nothing */
|
72 |
-
} else {
|
73 |
-
text = '';
|
74 |
-
}
|
75 |
-
} else {
|
76 |
-
/**
|
77 |
-
* Try RETURN_IN_DEFAULT_LANGUAGE.
|
78 |
-
*/
|
79 |
-
if ( language == WPGlobusCoreData.default_language ) {
|
80 |
-
if ( /(\{:|\[:|<!--:)[a-z]{2}/.test(text) ) {
|
81 |
-
text = '';
|
82 |
-
}
|
83 |
-
} else {
|
84 |
-
text = api.TextFilter( text, WPGlobusCoreData.default_language );
|
85 |
-
}
|
86 |
-
}
|
87 |
-
}
|
88 |
-
return text;
|
89 |
-
},
|
90 |
-
addLocaleMarks: function(text, language) {
|
91 |
-
return WPGlobusCoreData.locale_tag_start.replace('%s', language) + text + WPGlobusCoreData.locale_tag_end;
|
92 |
-
},
|
93 |
-
getTranslations: function(text) {
|
94 |
-
var t = {},
|
95 |
-
return_in;
|
96 |
-
$.each(WPGlobusCoreData.enabled_languages, function(i,l){
|
97 |
-
return_in = l == WPGlobusCoreData.default_language ? 'RETURN_IN_DEFAULT_LANGUAGE' : 'RETURN_EMPTY';
|
98 |
-
t[l] = api.TextFilter(text, l, return_in);
|
99 |
-
});
|
100 |
-
return t;
|
101 |
-
},
|
102 |
-
getString: function(s, newVal, l) {
|
103 |
-
if ( 'undefined' === typeof(s) ) {
|
104 |
-
return s;
|
105 |
-
}
|
106 |
-
if ( 'undefined' === typeof(newVal) ) {
|
107 |
-
newVal = '';
|
108 |
-
}
|
109 |
-
if ( 'undefined' === typeof(l) ) {
|
110 |
-
l = WPGlobusCoreData.language;
|
111 |
-
}
|
112 |
-
|
113 |
-
s = api.getTranslations(s);
|
114 |
-
s[l] = newVal;
|
115 |
-
|
116 |
-
var cS = '';
|
117 |
-
|
118 |
-
$.each(s, function(ln,val){
|
119 |
-
if ( '' != val && ln != WPGlobusCoreData.default_language) {
|
120 |
-
cS += api.addLocaleMarks(val, ln);
|
121 |
-
}
|
122 |
-
});
|
123 |
-
|
124 |
-
if ( '' != s[WPGlobusCoreData.default_language] ) {
|
125 |
-
if ( '' == cS ) {
|
126 |
-
cS = s[WPGlobusCoreData.default_language];
|
127 |
-
} else {
|
128 |
-
cS = api.addLocaleMarks(s[WPGlobusCoreData.default_language], WPGlobusCoreData.default_language) + cS;
|
129 |
-
}
|
130 |
-
}
|
131 |
-
return cS;
|
132 |
-
}
|
133 |
-
};
|
134 |
-
})(jQuery);
|
135 |
-
|
136 |
-
jQuery(document).ready(function ($) {
|
137 |
-
"use strict";
|
138 |
-
|
139 |
-
if ( 'undefined' === typeof WPGlobusAdmin ) {
|
140 |
-
return;
|
141 |
-
}
|
142 |
-
|
143 |
-
var api = {
|
144 |
-
languageSelectorBoxDelta: 0,
|
145 |
-
locationPathname: '/wp-admin/post.php',
|
146 |
-
init: function() {
|
147 |
-
//api.setCookie();
|
148 |
-
if ('taxonomy-edit' === WPGlobusAdmin.page) {
|
149 |
-
api.taxonomyEdit();
|
150 |
-
} else {
|
151 |
-
api.start();
|
152 |
-
}
|
153 |
-
},
|
154 |
-
_info: function() {
|
155 |
-
var lang = undefined;
|
156 |
-
if( $('#language').length > 0 ) {
|
157 |
-
lang = $('#language').val();
|
158 |
-
}
|
159 |
-
console.log('Current language from hidden (#language) : ', lang);
|
160 |
-
|
161 |
-
lang = undefined;
|
162 |
-
if( $('#wpglobus-language').length > 0 ) {
|
163 |
-
lang = $('#wpglobus-language').val();
|
164 |
-
}
|
165 |
-
console.log('Current language from hidden (#wpglobus-language) : ', lang);
|
166 |
-
|
167 |
-
lang = undefined;
|
168 |
-
if( $('input[name="wpglobus-language"]').length > 0 ) {
|
169 |
-
lang = $('input[name="wpglobus-language"]').val();
|
170 |
-
}
|
171 |
-
console.log('Current language from hidden (input[name="wpglobus-language"]) : ', lang);
|
172 |
-
|
173 |
-
lang = undefined;
|
174 |
-
if( $('input[name="wpglobus_language"]').length > 0 ) {
|
175 |
-
lang = $('input[name="wpglobus_language"]').val();
|
176 |
-
}
|
177 |
-
console.log('Current language from hidden (input[name="wpglobus_language"]) : ', lang);
|
178 |
-
console.log('Builder : ', WPGlobusAdmin.builder);
|
179 |
-
|
180 |
-
var content = $('#content').val();
|
181 |
-
if ( content == '' ) {
|
182 |
-
console.log('Editor content (#content) : (empty)');
|
183 |
-
} else {
|
184 |
-
console.log(content);
|
185 |
-
}
|
186 |
-
},
|
187 |
-
checkCookie: function() {
|
188 |
-
if ( -1 != window.location.search.indexOf('language=') ) {
|
189 |
-
return false;
|
190 |
-
}
|
191 |
-
if ( 'post.php' == WPGlobusAdmin.page ) {
|
192 |
-
var cookie = wpCookies.get(WPGlobusAdmin.builder.languageCookie);
|
193 |
-
|
194 |
-
if ( null !== cookie && history.pushState) {
|
195 |
-
cookie = cookie.split('+');
|
196 |
-
var language = cookie[0];
|
197 |
-
if ('undefined' !== typeof cookie[1] && cookie[1] + 0 == WPGlobusAdmin.$_get.post ) {
|
198 |
-
var newurl = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search + '&language='+language;
|
199 |
-
window.history.pushState({path:newurl},'',newurl);
|
200 |
-
return language;
|
201 |
-
}
|
202 |
-
}
|
203 |
-
}
|
204 |
-
return false;
|
205 |
-
},
|
206 |
-
setCookie: function() {
|
207 |
-
var lang = api.checkCookie();
|
208 |
-
if ( ! lang ) {
|
209 |
-
lang = WPGlobusAdmin.$_get.language;
|
210 |
-
if ( 'undefined' === typeof lang ) {
|
211 |
-
lang = WPGlobusAdmin.data.default_language;
|
212 |
-
}
|
213 |
-
}
|
214 |
-
wpCookies.set(WPGlobusAdmin.builder.languageCookie, lang+'+'+WPGlobusAdmin.$_get.post, 31536000, api.locationPathname );
|
215 |
-
},
|
216 |
-
setLocationSearch: function() {
|
217 |
-
if ( ! history.pushState || -1 != window.location.search.indexOf('language=') ) {
|
218 |
-
return;
|
219 |
-
}
|
220 |
-
if ( WPGlobusAdmin.data.default_language != WPGlobusAdmin.currentTab ) {
|
221 |
-
var newurl = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search + '&language='+WPGlobusAdmin.currentTab;
|
222 |
-
window.history.pushState({path:newurl},'',newurl);
|
223 |
-
}
|
224 |
-
},
|
225 |
-
taxonomyEdit: function() {
|
226 |
-
|
227 |
-
$('.wpglobus-taxonomy-tabs').insertAfter('#ajax-response');
|
228 |
-
|
229 |
-
/**
|
230 |
-
* Make class wrap as tabs container.
|
231 |
-
* Tabs on.
|
232 |
-
*/
|
233 |
-
$('.wrap').tabs();
|
234 |
-
|
235 |
-
$(WPGlobusAdmin.data.multilingualSlug.title).insertAfter('.term-slug-wrap th label');
|
236 |
-
|
237 |
-
if ( WPGlobusAdmin.currentTab !== WPGlobusAdmin.data.default_language ) {
|
238 |
-
$('.wpglobus-tax-edit-tab').removeClass('ui-tabs-active ui-state-active');
|
239 |
-
$('#wpglobus-link-tab-'+WPGlobusAdmin.currentTab).addClass('ui-tabs-active ui-state-active');
|
240 |
-
}
|
241 |
-
|
242 |
-
$(document).on('click', '.wpglobus-tax-edit-tab a', function(event) {
|
243 |
-
event.preventDefault();
|
244 |
-
var _href = $(this).data('href');
|
245 |
-
location.href = _href;
|
246 |
-
});
|
247 |
-
|
248 |
-
api.setMultilingualFields();
|
249 |
-
|
250 |
-
/**
|
251 |
-
* Init Yoast tinymce editor for description.
|
252 |
-
*/
|
253 |
-
$(document).on( 'tinymce-editor-init', function( event, editor ) {
|
254 |
-
$( '#' + editor.getContainer().id ).find('iframe').addClass(WPGlobusAdmin.builder.translatableClass).css({'width':''});
|
255 |
-
});
|
256 |
-
},
|
257 |
-
start: function() {
|
258 |
-
/**
|
259 |
-
*
|
260 |
-
*/
|
261 |
-
api.setLocationSearch();
|
262 |
-
|
263 |
-
/**
|
264 |
-
*
|
265 |
-
*/
|
266 |
-
var wrap_at = '#postdivrich',
|
267 |
-
set_title = true,
|
268 |
-
content_tabs_id = '#post-body-content';
|
269 |
-
if ( WPGlobusAdmin.data.support['editor'] === false ) {
|
270 |
-
wrap_at = '#titlediv';
|
271 |
-
set_title = false;
|
272 |
-
}
|
273 |
-
if ( WPGlobusAdmin.data.support['title'] === false ) {
|
274 |
-
set_title = false;
|
275 |
-
}
|
276 |
-
|
277 |
-
/**
|
278 |
-
* Make post-body-content as tabs container.
|
279 |
-
*/
|
280 |
-
$(content_tabs_id).prepend($('.wpglobus-post-body-tabs-list'));
|
281 |
-
$.each(WPGlobusAdmin.tabs, function (index, suffix) {
|
282 |
-
if ('default' === suffix) {
|
283 |
-
$(wrap_at).wrap('<div id="tab-default"></div>');
|
284 |
-
if ( set_title ) {
|
285 |
-
$($('#titlediv')).insertBefore(wrap_at);
|
286 |
-
}
|
287 |
-
} else {
|
288 |
-
$(wrap_at+'-' + suffix).wrap('<div id="tab-' + suffix + '"></div>');
|
289 |
-
if ( set_title ) {
|
290 |
-
$($('#titlediv-' + suffix)).insertBefore(wrap_at+'-' + suffix);
|
291 |
-
}
|
292 |
-
}
|
293 |
-
});
|
294 |
-
|
295 |
-
$(content_tabs_id).addClass('wpglobus-post-body-tabs');
|
296 |
-
|
297 |
-
/**
|
298 |
-
* Set fields as multilingual.
|
299 |
-
*/
|
300 |
-
//setTimeout(api.setMultilingualFields(), 1000);
|
301 |
-
api.setMultilingualFields();
|
302 |
-
|
303 |
-
/**
|
304 |
-
*
|
305 |
-
*/
|
306 |
-
//api.ajaxPrefilter();
|
307 |
-
|
308 |
-
/**
|
309 |
-
* @since 2.2.22
|
310 |
-
*/
|
311 |
-
if ('post.php' === WPGlobusAdmin.page) {
|
312 |
-
this.postEdit();
|
313 |
-
}
|
314 |
-
|
315 |
-
},
|
316 |
-
postEdit: function() {
|
317 |
-
/**
|
318 |
-
* For compatibility with wpglobus-admin-51.js.
|
319 |
-
* @since 2.2.22
|
320 |
-
*/
|
321 |
-
$(document).triggerHandler('wpglobus_after_post_edit');
|
322 |
-
},
|
323 |
-
ajaxPrefilter: function() {
|
324 |
-
/**
|
325 |
-
* @todo WIP.
|
326 |
-
*/
|
327 |
-
$.ajaxPrefilter(function( options, originalOptions, jqXHR ) {
|
328 |
-
// Modify options, control originalOptions, store jqXHR, etc
|
329 |
-
//console.log(options);
|
330 |
-
});
|
331 |
-
},
|
332 |
-
setMultilingualFields: function() {
|
333 |
-
$.each(WPGlobusAdmin.builder.multilingualFields, function(indx, field) {
|
334 |
-
/**
|
335 |
-
* @since 2.5.17 Revised function to use field param as string or object.
|
336 |
-
*/
|
337 |
-
var attrs = api.getFieldAttrs(field);
|
338 |
-
if ( 'function' === typeof WPGlobusAdmin[attrs.fieldFunction] ) {
|
339 |
-
WPGlobusAdmin[attrs.fieldFunction](attrs);
|
340 |
-
}
|
341 |
-
});
|
342 |
-
},
|
343 |
-
textField: function(attrs){
|
344 |
-
var id = attrs.id;
|
345 |
-
var elementBy = 'name';
|
346 |
-
var node = document.getElementsByName(id);
|
347 |
-
var $element;
|
348 |
-
|
349 |
-
if ( 0 == node.length ) {
|
350 |
-
elementBy = 'id';
|
351 |
-
node = document.getElementById(id);
|
352 |
-
}
|
353 |
-
|
354 |
-
if ( null === node ) {
|
355 |
-
return true;
|
356 |
-
} else {
|
357 |
-
if ( 'id' == elementBy ) {
|
358 |
-
$element = $('#'+id);
|
359 |
-
} else {
|
360 |
-
var nodeName = node[0].nodeName;
|
361 |
-
nodeName = nodeName.toLowerCase();
|
362 |
-
$element = $(nodeName+'[name="'+id+'"]');
|
363 |
-
}
|
364 |
-
$element.addClass(WPGlobusAdmin.builder.translatableClass);
|
365 |
-
}
|
366 |
-
},
|
367 |
-
wysiwygField: function(attrs){
|
368 |
-
$(document).on('wpglobus_wysiwyg_field', function(evnt,params) {
|
369 |
-
params.callback(attrs);
|
370 |
-
});
|
371 |
-
},
|
372 |
-
fileField: function(attrs){
|
373 |
-
// @since 2.5.17 @W.I.P
|
374 |
-
/*
|
375 |
-
$(document).on('wpglobus_file_field', function(evnt,params) {
|
376 |
-
params.callback(attrs);
|
377 |
-
}); // */
|
378 |
-
},
|
379 |
-
getFieldAttrs: function(field){
|
380 |
-
var defaultAttrs = {
|
381 |
-
'id': false,
|
382 |
-
'type': 'text',
|
383 |
-
'fieldFunction': 'textField'
|
384 |
-
}
|
385 |
-
var attrs = {};
|
386 |
-
if ( 'string' === typeof field ) {
|
387 |
-
attrs['id'] = field;
|
388 |
-
} else if ( 'object' === typeof field ) {
|
389 |
-
if ( 'undefined' !== typeof field.id ) {
|
390 |
-
attrs['id'] = field.id;
|
391 |
-
}
|
392 |
-
if ( 'undefined' !== typeof field.type ) {
|
393 |
-
attrs['type'] = field.type;
|
394 |
-
attrs['fieldFunction'] = field.type+'Field';
|
395 |
-
}
|
396 |
-
}
|
397 |
-
return $.extend({}, defaultAttrs, attrs);
|
398 |
-
}
|
399 |
-
}
|
400 |
-
|
401 |
-
WPGlobusAdmin = $.extend({}, WPGlobusAdmin, api);
|
402 |
-
WPGlobusAdmin.init();
|
403 |
-
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/includes/builders/assets/wpglobus-admin-builder-56.min.js
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
var WPGlobusCore;!function(l){var s=WPGlobusCore={strpos:function(t,e,a){var o=(t=""+t).indexOf(e,a);return 0<=o&&o},TextFilter:function(t,e,a){if(void 0===t||""===t)return t;var o,n,l=[],i=!1;e=""==e?"en":e,a=void 0===a||""==a?"RETURN_IN_DEFAULT_LANGUAGE":a,l[0]=[],l[0].start=WPGlobusCoreData.locale_tag_start.replace("%s",e),l[0].end=WPGlobusCoreData.locale_tag_end,l[1]=[],l[1].start="\x3c!--:"+e+"--\x3e",l[1].end="\x3c!--:--\x3e",l[2]=[],l[2].start="[:"+e+"]",l[2].end="[:";for(var u=0;u<3;u++)if(!1!==(o=s.strpos(t,l[u].start))){o+=l[u].start.length,t=!1===(n=s.strpos(t,l[u].end,o))?t.substr(o):t.substr(o,n-o),i=!0;break}return i||("RETURN_EMPTY"==a?e==WPGlobusCoreData.default_language&&!/(\{:|\[:|<!--:)[a-z]{2}/.test(t)||(t=""):e==WPGlobusCoreData.default_language?/(\{:|\[:|<!--:)[a-z]{2}/.test(t)&&(t=""):t=s.TextFilter(t,WPGlobusCoreData.default_language)),t},addLocaleMarks:function(t,e){return WPGlobusCoreData.locale_tag_start.replace("%s",e)+t+WPGlobusCoreData.locale_tag_end},getTranslations:function(a){var o,n={};return l.each(WPGlobusCoreData.enabled_languages,function(t,e){o=e==WPGlobusCoreData.default_language?"RETURN_IN_DEFAULT_LANGUAGE":"RETURN_EMPTY",n[e]=s.TextFilter(a,e,o)}),n},getString:function(t,e,a){if(void 0===t)return t;void 0===e&&(e=""),void 0===a&&(a=WPGlobusCoreData.language),(t=s.getTranslations(t))[a]=e;var o="";return l.each(t,function(t,e){""!=e&&t!=WPGlobusCoreData.default_language&&(o+=s.addLocaleMarks(e,t))}),""!=t[WPGlobusCoreData.default_language]&&(o=""==o?t[WPGlobusCoreData.default_language]:s.addLocaleMarks(t[WPGlobusCoreData.default_language],WPGlobusCoreData.default_language)+o),o}}}(jQuery),jQuery(document).ready(function(l){"use strict";var n;"undefined"!=typeof WPGlobusAdmin&&(n={languageSelectorBoxDelta:0,locationPathname:"/wp-admin/post.php",init:function(){"taxonomy-edit"===WPGlobusAdmin.page?n.taxonomyEdit():n.start()},_info:function(){var t=void 0;0<l("#language").length&&(t=l("#language").val()),console.log("Current language from hidden (#language) : ",t),t=void 0,0<l("#wpglobus-language").length&&(t=l("#wpglobus-language").val()),console.log("Current language from hidden (#wpglobus-language) : ",t),t=void 0,0<l('input[name="wpglobus-language"]').length&&(t=l('input[name="wpglobus-language"]').val()),console.log('Current language from hidden (input[name="wpglobus-language"]) : ',t),t=void 0,0<l('input[name="wpglobus_language"]').length&&(t=l('input[name="wpglobus_language"]').val()),console.log('Current language from hidden (input[name="wpglobus_language"]) : ',t),console.log("Builder : ",WPGlobusAdmin.builder);var e=l("#content").val();""==e?console.log("Editor content (#content) : (empty)"):console.log(e)},checkCookie:function(){if(-1!=window.location.search.indexOf("language="))return!1;if("post.php"==WPGlobusAdmin.page){var t=wpCookies.get(WPGlobusAdmin.builder.languageCookie);if(null!==t&&history.pushState){var e=(t=t.split("+"))[0];if(void 0!==t[1]&&t[1]+0==WPGlobusAdmin.$_get.post){var a=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search+"&language="+e;return window.history.pushState({path:a},"",a),e}}}return!1},setCookie:function(){var t=n.checkCookie();t||void 0===(t=WPGlobusAdmin.$_get.language)&&(t=WPGlobusAdmin.data.default_language),wpCookies.set(WPGlobusAdmin.builder.languageCookie,t+"+"+WPGlobusAdmin.$_get.post,31536e3,n.locationPathname)},setLocationSearch:function(){var t;history.pushState&&-1==window.location.search.indexOf("language=")&&WPGlobusAdmin.data.default_language!=WPGlobusAdmin.currentTab&&(t=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search+"&language="+WPGlobusAdmin.currentTab,window.history.pushState({path:t},"",t))},taxonomyEdit:function(){l(".wpglobus-taxonomy-tabs").insertAfter("#ajax-response"),l(".wrap").tabs(),l(WPGlobusAdmin.data.multilingualSlug.title).insertAfter(".term-slug-wrap th label"),WPGlobusAdmin.currentTab!==WPGlobusAdmin.data.default_language&&(l(".wpglobus-tax-edit-tab").removeClass("ui-tabs-active ui-state-active"),l("#wpglobus-link-tab-"+WPGlobusAdmin.currentTab).addClass("ui-tabs-active ui-state-active")),l(document).on("click",".wpglobus-tax-edit-tab a",function(t){t.preventDefault();var e=l(this).data("href");location.href=e}),n.setMultilingualFields(),l(document).on("tinymce-editor-init",function(t,e){l("#"+e.getContainer().id).find("iframe").addClass(WPGlobusAdmin.builder.translatableClass).css({width:""})})},start:function(){n.setLocationSearch();var a="#postdivrich",o=!0,t="#post-body-content";!1===WPGlobusAdmin.data.support.editor&&(o=!(a="#titlediv")),!1===WPGlobusAdmin.data.support.title&&(o=!1),l(t).prepend(l(".wpglobus-post-body-tabs-list")),l.each(WPGlobusAdmin.tabs,function(t,e){"default"===e?(l(a).wrap('<div id="tab-default"></div>'),o&&l(l("#titlediv")).insertBefore(a)):(l(a+"-"+e).wrap('<div id="tab-'+e+'"></div>'),o&&l(l("#titlediv-"+e)).insertBefore(a+"-"+e))}),l(t).addClass("wpglobus-post-body-tabs"),n.setMultilingualFields(),"post.php"===WPGlobusAdmin.page&&this.postEdit()},postEdit:function(){l(document).triggerHandler("wpglobus_after_post_edit")},ajaxPrefilter:function(){l.ajaxPrefilter(function(t,e,a){})},setMultilingualFields:function(){l.each(WPGlobusAdmin.builder.multilingualFields,function(t,e){var a=n.getFieldAttrs(e);"function"==typeof WPGlobusAdmin[a.fieldFunction]&&WPGlobusAdmin[a.fieldFunction](a)})},textField:function(t){var e,a=t.id,o="name",n=document.getElementsByName(a);if(0==n.length&&(o="id",n=document.getElementById(a)),null===n)return!0;("id"==o?l("#"+a):(e=(e=n[0].nodeName).toLowerCase(),l(e+'[name="'+a+'"]'))).addClass(WPGlobusAdmin.builder.translatableClass)},wysiwygField:function(a){l(document).on("wpglobus_wysiwyg_field",function(t,e){e.callback(a)})},fileField:function(t){},getFieldAttrs:function(t){var e={};return"string"==typeof t?e.id=t:"object"==typeof t&&(void 0!==t.id&&(e.id=t.id),void 0!==t.type&&(e.type=t.type,e.fieldFunction=t.type+"Field")),l.extend({},{id:!1,type:"text",fieldFunction:"textField"},e)}},(WPGlobusAdmin=l.extend({},WPGlobusAdmin,n)).init())});
|
|
trunk/includes/builders/class-wpglobus-builder-update-post.php
DELETED
@@ -1,149 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* File: class-wpglobus-builder-update-post.php
|
4 |
-
*
|
5 |
-
* @since 2.2.35
|
6 |
-
* @since 2.4.3 Added `wp_insert_post_data` filter.
|
7 |
-
*
|
8 |
-
* @package WPGlobus\Builders
|
9 |
-
* @author Alex Gor(alexgff)
|
10 |
-
*/
|
11 |
-
|
12 |
-
/**
|
13 |
-
* Class WPGlobus_Builder_Update_Post.
|
14 |
-
*/
|
15 |
-
if ( ! class_exists( 'WPGlobus_Builder_Update_Post' ) ) :
|
16 |
-
|
17 |
-
class WPGlobus_Builder_Update_Post {
|
18 |
-
|
19 |
-
/**
|
20 |
-
* Builder ID.
|
21 |
-
*/
|
22 |
-
protected $id = null;
|
23 |
-
|
24 |
-
/**
|
25 |
-
* Constructor.
|
26 |
-
*/
|
27 |
-
public function __construct( $id ) {
|
28 |
-
|
29 |
-
$this->id = $id;
|
30 |
-
|
31 |
-
/**
|
32 |
-
* Do not start for `gutenberg`.
|
33 |
-
* The block editor prohibits saving post with an empty post title from post edit page.
|
34 |
-
*/
|
35 |
-
if ( 'gutenberg' == $this->id ) {
|
36 |
-
return;
|
37 |
-
}
|
38 |
-
|
39 |
-
add_filter( 'wp_insert_post_empty_content', array( $this, 'filter__post_empty_content' ), 10, 2);
|
40 |
-
|
41 |
-
/**
|
42 |
-
* @since 2.4.3
|
43 |
-
* @todo incorrect the saving post in extra languages with priority = 10
|
44 |
-
*/
|
45 |
-
add_filter( 'wp_insert_post_data', array( $this, 'filter__wp_insert_post_data' ), 100, 2 );
|
46 |
-
}
|
47 |
-
|
48 |
-
/**
|
49 |
-
* Filters whether the post should be considered "empty".
|
50 |
-
*
|
51 |
-
* @see wp-includes\post.php
|
52 |
-
*
|
53 |
-
* @param bool $maybe_empty Whether the post should be considered "empty".
|
54 |
-
* @param array $postarr Array of post data.
|
55 |
-
*/
|
56 |
-
public function filter__post_empty_content( $maybe_empty, $postarr ) {
|
57 |
-
|
58 |
-
if ( WPGlobus::Config()->builder->is_default_language() ) {
|
59 |
-
return $maybe_empty;
|
60 |
-
}
|
61 |
-
|
62 |
-
/**
|
63 |
-
* Don't return a truthy value for extra language.
|
64 |
-
*/
|
65 |
-
return false;
|
66 |
-
}
|
67 |
-
|
68 |
-
/**
|
69 |
-
* Callback for 'wp_insert_post_data'.
|
70 |
-
*
|
71 |
-
* @since 2.4.3
|
72 |
-
* @param array $data
|
73 |
-
* @param array $postarr
|
74 |
-
*
|
75 |
-
* @return mixed
|
76 |
-
*/
|
77 |
-
public function filter__wp_insert_post_data( $data, $postarr ) {
|
78 |
-
|
79 |
-
/**
|
80 |
-
* Prevent to filter disabled post type.
|
81 |
-
*/
|
82 |
-
if ( in_array( $data['post_type'], WPGlobus::Config()->disabled_entities, true ) ) {
|
83 |
-
return $data;
|
84 |
-
}
|
85 |
-
|
86 |
-
global $wpdb;
|
87 |
-
$_post = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $wpdb->posts WHERE ID = %d AND post_type = %s LIMIT 1", $postarr['ID'], $postarr['post_type'] ) );
|
88 |
-
|
89 |
-
$fields = array();
|
90 |
-
if ( isset( $postarr['post_title'] ) ) {
|
91 |
-
$fields['post_title'] = $postarr['post_title'];
|
92 |
-
}
|
93 |
-
|
94 |
-
if ( isset( $postarr['post_content'] ) ) {
|
95 |
-
$fields['post_content'] = $postarr['post_content'];
|
96 |
-
}
|
97 |
-
|
98 |
-
if ( isset( $postarr['post_excerpt'] ) ) {
|
99 |
-
$fields['post_excerpt'] = $postarr['post_excerpt'];
|
100 |
-
}
|
101 |
-
|
102 |
-
$builder_language = WPGlobus::Config()->builder->get_language();
|
103 |
-
|
104 |
-
if ( empty( $builder_language ) ) {
|
105 |
-
|
106 |
-
if ( empty( $postarr[ WPGlobus::get_language_meta_key() ] ) ) {
|
107 |
-
$builder_language = WPGlobus::Config()->default_language;
|
108 |
-
} else {
|
109 |
-
$builder_language = $postarr[ WPGlobus::get_language_meta_key() ];
|
110 |
-
}
|
111 |
-
}
|
112 |
-
|
113 |
-
foreach ( $fields as $field => $value ) {
|
114 |
-
|
115 |
-
$tr = array();
|
116 |
-
|
117 |
-
foreach ( WPGlobus::Config()->enabled_languages as $lang ) :
|
118 |
-
|
119 |
-
if ( $lang === $builder_language ) {
|
120 |
-
|
121 |
-
$text = $value;
|
122 |
-
if ( WPGlobus_Core::has_translations( $value ) ) {
|
123 |
-
$text = WPGlobus_Core::text_filter( $value, $lang, WPGlobus::RETURN_EMPTY );
|
124 |
-
}
|
125 |
-
if ( ! empty( $text ) ) {
|
126 |
-
$tr[ $lang ] = $text;
|
127 |
-
}
|
128 |
-
} else {
|
129 |
-
if ( isset( $_post->$field ) ) {
|
130 |
-
$text = WPGlobus_Core::text_filter( $_post->$field, $lang, WPGlobus::RETURN_EMPTY );
|
131 |
-
if ( ! empty( $text ) ) {
|
132 |
-
$tr[ $lang ] = $text;
|
133 |
-
}
|
134 |
-
}
|
135 |
-
}
|
136 |
-
|
137 |
-
endforeach;
|
138 |
-
|
139 |
-
$data[ $field ] = WPGlobus_Utils::build_multilingual_string( $tr );
|
140 |
-
|
141 |
-
}
|
142 |
-
|
143 |
-
return $data;
|
144 |
-
}
|
145 |
-
} // class WPGlobus_Builder_Update_Post.
|
146 |
-
|
147 |
-
endif;
|
148 |
-
|
149 |
-
# --- EOF
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/includes/builders/class-wpglobus-builder.php
DELETED
@@ -1,424 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* File: class-wpglobus-builder.php
|
4 |
-
*
|
5 |
-
* @package WPGlobus\Builders
|
6 |
-
* @author Alex Gor(alexgff)
|
7 |
-
*/
|
8 |
-
|
9 |
-
/**
|
10 |
-
* Class WPGlobus_Builder.
|
11 |
-
*
|
12 |
-
* @since 1.9.17
|
13 |
-
*/
|
14 |
-
if ( ! class_exists( 'WPGlobus_Builder' ) ) :
|
15 |
-
|
16 |
-
class WPGlobus_Builder {
|
17 |
-
|
18 |
-
/**
|
19 |
-
* Current language of post.
|
20 |
-
*/
|
21 |
-
protected $language = null;
|
22 |
-
|
23 |
-
/**
|
24 |
-
* Builder ID.
|
25 |
-
*/
|
26 |
-
protected $id = null;
|
27 |
-
|
28 |
-
/**
|
29 |
-
* Array of activated builders.
|
30 |
-
*
|
31 |
-
* @since 1.9.17
|
32 |
-
* @access protected
|
33 |
-
* @var array
|
34 |
-
*/
|
35 |
-
// phpcs:ignore
|
36 |
-
//protected $builders = array(); TODO remove
|
37 |
-
|
38 |
-
/**
|
39 |
-
* @var array
|
40 |
-
* @todo Unused?
|
41 |
-
*/
|
42 |
-
protected $builder_post = null;
|
43 |
-
|
44 |
-
/**
|
45 |
-
* Constructor method.
|
46 |
-
*
|
47 |
-
* @since 1.9.17
|
48 |
-
*
|
49 |
-
* @param string $id The Builder ID, such as 'gutenberg'.
|
50 |
-
*/
|
51 |
-
public function __construct( $id ) {
|
52 |
-
|
53 |
-
$this->id = $id;
|
54 |
-
|
55 |
-
$this->set_current_language();
|
56 |
-
|
57 |
-
// phpcs:ignore
|
58 |
-
// if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
|
59 |
-
/**
|
60 |
-
* @todo Add the handling of AJAX.
|
61 |
-
*/
|
62 |
-
// }
|
63 |
-
|
64 |
-
if ( is_admin() ) {
|
65 |
-
|
66 |
-
add_action( 'redirect_post_location', array( $this, 'on__redirect' ), 5, 2 );
|
67 |
-
|
68 |
-
add_filter( 'admin_body_class', array( $this, 'filter__add_admin_body_class' ) );
|
69 |
-
|
70 |
-
/**
|
71 |
-
* Add builder/add-on label to admin bar.
|
72 |
-
*
|
73 |
-
* @since 1.9.27
|
74 |
-
*/
|
75 |
-
add_action( 'admin_bar_menu', array( $this, 'on__admin_bar_menu' ), 11 );
|
76 |
-
|
77 |
-
/**
|
78 |
-
* @see "{$field_no_prefix}_edit_pre" in wp-includes\post.php
|
79 |
-
*/
|
80 |
-
add_filter( 'content_edit_pre', array( $this, 'filter__content' ), 5, 2 );
|
81 |
-
add_filter( 'title_edit_pre', array( $this, 'filter__title' ), 5, 2 );
|
82 |
-
add_filter( 'excerpt_edit_pre', array( $this, 'filter__excerpt' ), 5, 2 );
|
83 |
-
|
84 |
-
}
|
85 |
-
|
86 |
-
/**
|
87 |
-
* Show language tabs in post.php page.
|
88 |
-
*
|
89 |
-
* @see_file wpglobus\includes\class-wpglobus.php
|
90 |
-
*/
|
91 |
-
add_filter( 'wpglobus_show_language_tabs', array( $this, 'filter__show_language_tabs' ), 5 );
|
92 |
-
|
93 |
-
}
|
94 |
-
|
95 |
-
/**
|
96 |
-
* Filter title.
|
97 |
-
*
|
98 |
-
* @param string $value The title.
|
99 |
-
* @param int $post_id Unused.
|
100 |
-
*
|
101 |
-
* @return string
|
102 |
-
*/
|
103 |
-
public function filter__title(
|
104 |
-
$value, /** @noinspection PhpUnusedParameterInspection */
|
105 |
-
$post_id
|
106 |
-
) {
|
107 |
-
$value = WPGlobus_Core::text_filter( $value, $this->get_current_language(), WPGlobus::RETURN_EMPTY );
|
108 |
-
|
109 |
-
return $value;
|
110 |
-
}
|
111 |
-
|
112 |
-
/**
|
113 |
-
* Filter content.
|
114 |
-
*
|
115 |
-
* @param string $content The content.
|
116 |
-
* @param int $post_id Post ID - Unused.
|
117 |
-
*
|
118 |
-
* @return string
|
119 |
-
*/
|
120 |
-
public function filter__content(
|
121 |
-
$content, /** @noinspection PhpUnusedParameterInspection */
|
122 |
-
$post_id
|
123 |
-
) {
|
124 |
-
$content = WPGlobus_Core::text_filter( $content, $this->get_current_language(), WPGlobus::RETURN_EMPTY );
|
125 |
-
|
126 |
-
return $content;
|
127 |
-
}
|
128 |
-
|
129 |
-
/**
|
130 |
-
* Filter excerpt.
|
131 |
-
*
|
132 |
-
* @param string $excerpt The excerpt.
|
133 |
-
* @param int $post_id Post ID - Unused.
|
134 |
-
*
|
135 |
-
* @return string
|
136 |
-
*/
|
137 |
-
public function filter__excerpt(
|
138 |
-
$excerpt, /** @noinspection PhpUnusedParameterInspection */
|
139 |
-
$post_id
|
140 |
-
) {
|
141 |
-
$excerpt = WPGlobus_Core::text_filter( $excerpt, $this->get_current_language(), WPGlobus::RETURN_EMPTY );
|
142 |
-
|
143 |
-
return $excerpt;
|
144 |
-
}
|
145 |
-
|
146 |
-
/**
|
147 |
-
* Redirect.
|
148 |
-
*
|
149 |
-
* @param string $location
|
150 |
-
* @param int $post_id Post ID - Unused.
|
151 |
-
*
|
152 |
-
* @return string
|
153 |
-
*/
|
154 |
-
public function on__redirect(
|
155 |
-
$location, /** @noinspection PhpUnusedParameterInspection */
|
156 |
-
$post_id
|
157 |
-
) {
|
158 |
-
/**
|
159 |
-
* Tested with:
|
160 |
-
* - Page Builder by SiteOrigin OK.
|
161 |
-
*/
|
162 |
-
return $location . '&language=' . $this->language;
|
163 |
-
}
|
164 |
-
|
165 |
-
/**
|
166 |
-
* Getter.
|
167 |
-
*
|
168 |
-
* @return null|string
|
169 |
-
*/
|
170 |
-
public function get_id() {
|
171 |
-
return $this->id;
|
172 |
-
}
|
173 |
-
|
174 |
-
/**
|
175 |
-
* Is this a "builder" post?
|
176 |
-
*
|
177 |
-
* @return bool
|
178 |
-
* @todo Unused?
|
179 |
-
*/
|
180 |
-
public function is_builder_post() {
|
181 |
-
if ( is_null( $this->builder_post ) ) {
|
182 |
-
return false;
|
183 |
-
}
|
184 |
-
|
185 |
-
return true;
|
186 |
-
}
|
187 |
-
|
188 |
-
/**
|
189 |
-
* Get hidden "wpglobus-language" field.
|
190 |
-
*
|
191 |
-
* @since 1.9.17
|
192 |
-
* @return string
|
193 |
-
*/
|
194 |
-
public function get_language_field() {
|
195 |
-
/**
|
196 |
-
* @see on_add_devmode_switcher() in wpglobus\includes\class-wpglobus.php
|
197 |
-
* @todo may be add special function to get hidden language field.
|
198 |
-
*/
|
199 |
-
return '<input type="hidden" id="' . esc_attr( WPGlobus::get_language_meta_key() ) . '" name="' . esc_attr( WPGlobus::get_language_meta_key() ) . '" value="' . esc_attr( $this->get_current_language() ) . '" />';
|
200 |
-
}
|
201 |
-
|
202 |
-
/**
|
203 |
-
* Return current language.
|
204 |
-
*
|
205 |
-
* @since 1.9.17
|
206 |
-
* @return string
|
207 |
-
*/
|
208 |
-
public function get_current_language() {
|
209 |
-
return $this->language;
|
210 |
-
}
|
211 |
-
|
212 |
-
/**
|
213 |
-
* Set current language.
|
214 |
-
*
|
215 |
-
* @since 1.9.17
|
216 |
-
* @return void
|
217 |
-
*/
|
218 |
-
public function set_current_language() {
|
219 |
-
|
220 |
-
if ( ! is_null( $this->language ) ) {
|
221 |
-
return;
|
222 |
-
}
|
223 |
-
|
224 |
-
/**
|
225 |
-
* Don't duplicate the defining of current language.
|
226 |
-
* Let's just get it from WPGlobus::Config()->builder.
|
227 |
-
*/
|
228 |
-
$language = WPGlobus::Config()->builder->get_language();
|
229 |
-
|
230 |
-
if ( $language ) {
|
231 |
-
// Language was set in WPGlobus_Config_Builder class.
|
232 |
-
$this->language = $language;
|
233 |
-
}
|
234 |
-
|
235 |
-
$post_id = 0;
|
236 |
-
if ( ! empty( $_REQUEST['post'] ) ) { // phpcs:ignore WordPress.CSRF.NonceVerification
|
237 |
-
$post_id = (int) $_REQUEST['post'];
|
238 |
-
} elseif ( ! empty( $_REQUEST['id'] ) ) { // phpcs:ignore WordPress.CSRF.NonceVerification
|
239 |
-
$post_id = (int) $_REQUEST['id'];
|
240 |
-
} elseif ( ! empty( $_REQUEST['post_ID'] ) ) { // phpcs:ignore WordPress.CSRF.NonceVerification
|
241 |
-
$post_id = (int) $_REQUEST['post_ID'];
|
242 |
-
}
|
243 |
-
|
244 |
-
if ( $post_id && ! is_null( $this->language ) ) {
|
245 |
-
update_post_meta( $post_id, WPGlobus::Config()->builder->get_language_meta_key(), $this->language );
|
246 |
-
}
|
247 |
-
|
248 |
-
}
|
249 |
-
|
250 |
-
/**
|
251 |
-
* Show language tabs on post.php page.
|
252 |
-
*
|
253 |
-
* @see_file includes\class-wpglobus.php
|
254 |
-
*
|
255 |
-
* @param bool $value
|
256 |
-
*
|
257 |
-
* @return bool
|
258 |
-
*/
|
259 |
-
public function filter__show_language_tabs(
|
260 |
-
/** @noinspection PhpUnusedParameterInspection */
|
261 |
-
$value
|
262 |
-
) {
|
263 |
-
|
264 |
-
global $pagenow;
|
265 |
-
|
266 |
-
$classes = array();
|
267 |
-
$classes['wpglobus-post-tab'] = 'wpglobus-post-tab';
|
268 |
-
$classes['ui-state-default'] = 'ui-state-default';
|
269 |
-
$classes['ui-corner-top'] = 'ui-corner-top';
|
270 |
-
$classes['ui-tabs-active'] = 'ui-tabs-active';
|
271 |
-
$classes['ui-tabs-loading'] = 'ui-tabs-loading';
|
272 |
-
|
273 |
-
$link_class = array();
|
274 |
-
$link_style = array();
|
275 |
-
$link_title = '';
|
276 |
-
if ( 'post-new.php' === $pagenow ) {
|
277 |
-
$link_style['cursor'] = 'cursor:not-allowed';
|
278 |
-
$link_title = esc_html__( 'Save draft before using extra language.', 'wpglobus' );
|
279 |
-
}
|
280 |
-
|
281 |
-
?>
|
282 |
-
<ul class="wpglobus-post-body-tabs-list">
|
283 |
-
<?php
|
284 |
-
$order = 0;
|
285 |
-
|
286 |
-
$get_array = $_GET; // phpcs:ignore WordPress.CSRF.NonceVerification
|
287 |
-
/**
|
288 |
-
* Unset unneeded elements.
|
289 |
-
*/
|
290 |
-
unset( $get_array['language'] );
|
291 |
-
unset( $get_array['message'] );
|
292 |
-
|
293 |
-
foreach ( WPGlobus::Config()->open_languages as $language ) {
|
294 |
-
|
295 |
-
$tab_suffix = WPGlobus::Config()->default_language === $language ? 'default' : $language;
|
296 |
-
|
297 |
-
$_classes = $classes;
|
298 |
-
|
299 |
-
$_link_class = $link_class;
|
300 |
-
$_link_style = $link_style;
|
301 |
-
|
302 |
-
if ( 'post-new.php' === $pagenow && WPGLobus::Config()->default_language === $language ) {
|
303 |
-
$_link_style['cursor'] = '';
|
304 |
-
}
|
305 |
-
|
306 |
-
$_link_class['tab-link-active'] = WPGlobus::Config()->builder->get_language() === $language ? 'wpglobus-tab-link-active' : '';
|
307 |
-
|
308 |
-
if ( $language === $this->language ) {
|
309 |
-
$_classes[] = 'ui-state-active';
|
310 |
-
}
|
311 |
-
|
312 |
-
$link = add_query_arg( array_merge( $get_array, array( 'language' => $language ) ), admin_url( $pagenow ) );
|
313 |
-
$_link_title = '';
|
314 |
-
if ( 'post-new.php' === $pagenow && WPGLobus::Config()->default_language !== $language ) {
|
315 |
-
$link = '#';
|
316 |
-
$_link_title = $link_title;
|
317 |
-
}
|
318 |
-
?>
|
319 |
-
<li id="link-tab-<?php echo esc_attr( $tab_suffix ); ?>"
|
320 |
-
data-language="<?php echo esc_attr( $language ); ?>"
|
321 |
-
data-order="<?php echo esc_attr( $order ); ?>"
|
322 |
-
class="<?php echo esc_attr( implode( ' ', $_classes ) ); ?>">
|
323 |
-
<!--<a href="#tab-<?php echo esc_attr( $tab_suffix ); ?>"><?php echo esc_html( WPGlobus::Config()->en_language_name[ $language ] ); ?></a>-->
|
324 |
-
<a style="<?php echo esc_attr( implode( ';', $_link_style ) ); ?>"
|
325 |
-
title="<?php echo esc_attr( $_link_title ); ?>"
|
326 |
-
class="<?php echo esc_attr( implode( ' ', $_link_class ) ); ?>"
|
327 |
-
href="<?php echo esc_url( $link ); ?>"><?php echo esc_html( WPGlobus::Config()->en_language_name[ $language ] ); ?></a>
|
328 |
-
</li>
|
329 |
-
<?php
|
330 |
-
$order++;
|
331 |
-
}
|
332 |
-
?>
|
333 |
-
</ul>
|
334 |
-
<?php
|
335 |
-
/**
|
336 |
-
* Return false to prevent output standard WPGlobus tabs.
|
337 |
-
*/
|
338 |
-
return false;
|
339 |
-
}
|
340 |
-
|
341 |
-
/**
|
342 |
-
* Add class to body in admin.
|
343 |
-
*
|
344 |
-
* @see admin_body_class filter
|
345 |
-
*
|
346 |
-
* @since 1.9.17
|
347 |
-
*
|
348 |
-
* @param string $classes
|
349 |
-
*
|
350 |
-
* @return string
|
351 |
-
*/
|
352 |
-
public function filter__add_admin_body_class( $classes ) {
|
353 |
-
return $classes . ' wpglobus-wp-admin-builder wpglobus-wp-admin-builder-' . $this->id;
|
354 |
-
}
|
355 |
-
|
356 |
-
/**
|
357 |
-
* Add builder label to admin bar.
|
358 |
-
*
|
359 |
-
* @since 1.9.27
|
360 |
-
*
|
361 |
-
* @param WP_Admin_Bar $wp_admin_bar
|
362 |
-
*/
|
363 |
-
public function on__admin_bar_menu( WP_Admin_Bar $wp_admin_bar ) {
|
364 |
-
|
365 |
-
global $pagenow;
|
366 |
-
|
367 |
-
if ( ! in_array( $pagenow, array( 'post.php', 'post-new.php', 'term.php' ), true ) ) {
|
368 |
-
return;
|
369 |
-
}
|
370 |
-
|
371 |
-
$_builder_label = esc_html__( 'Builder', 'wpglobus' ) . ': ';
|
372 |
-
if ( class_exists( 'WPGlobus_Builders' ) ) {
|
373 |
-
$_builder = WPGlobus_Builders::get_addon( $this->id );
|
374 |
-
|
375 |
-
if ( ! empty( $_builder['admin_bar_label'] ) ) {
|
376 |
-
$_builder_label = $_builder['admin_bar_label'] . ': ';
|
377 |
-
}
|
378 |
-
if ( empty( $_builder['admin_bar_builder_label'] ) ) {
|
379 |
-
$_builder_label .= $_builder['plugin_name'];
|
380 |
-
} else {
|
381 |
-
$_builder_label .= $_builder['admin_bar_builder_label'];
|
382 |
-
}
|
383 |
-
} else {
|
384 |
-
$_builder_label .= $this->id;
|
385 |
-
}
|
386 |
-
|
387 |
-
$wp_admin_bar->add_menu(
|
388 |
-
array(
|
389 |
-
'id' => 'wpglobus-builder-id',
|
390 |
-
'parent' => 'top-secondary',
|
391 |
-
'title' => '<span class="ab-label">' . $_builder_label . '</span>',
|
392 |
-
)
|
393 |
-
);
|
394 |
-
|
395 |
-
$_title = esc_html__( 'Сompatibility Settings', 'wpglobus' );
|
396 |
-
|
397 |
-
$_url = admin_url(
|
398 |
-
add_query_arg(
|
399 |
-
array(
|
400 |
-
'page' => 'wpglobus_options',
|
401 |
-
'tab' => 'compatibility',
|
402 |
-
),
|
403 |
-
'admin.php'
|
404 |
-
)
|
405 |
-
);
|
406 |
-
|
407 |
-
$wp_admin_bar->add_menu(
|
408 |
-
array(
|
409 |
-
'parent' => 'wpglobus-builder-id',
|
410 |
-
'id' => 'wpglobus-builder-compatibility-link',
|
411 |
-
'title' => '<span>' . $_title . '</span>',
|
412 |
-
'href' => $_url,
|
413 |
-
'meta' => array(
|
414 |
-
'_target' => 'blank',
|
415 |
-
'tabindex' => -1,
|
416 |
-
),
|
417 |
-
)
|
418 |
-
);
|
419 |
-
|
420 |
-
}
|
421 |
-
|
422 |
-
}
|
423 |
-
|
424 |
-
endif;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/includes/builders/class-wpglobus-builders.php
DELETED
@@ -1,1627 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* File: class-wpglobus-builders.php
|
4 |
-
*
|
5 |
-
* @package WPGlobus\Builders
|
6 |
-
* @author Alex Gor(alexgff)
|
7 |
-
*/
|
8 |
-
|
9 |
-
/**
|
10 |
-
* Elementor.
|
11 |
-
* @since 2.4.11
|
12 |
-
*/
|
13 |
-
use Elementor\Modules\Gutenberg;
|
14 |
-
|
15 |
-
if ( ! defined( 'ABSPATH' ) ) {
|
16 |
-
exit; // Exit if accessed directly.
|
17 |
-
}
|
18 |
-
|
19 |
-
/**
|
20 |
-
* Class WPGlobus_Builders.
|
21 |
-
*/
|
22 |
-
if ( ! class_exists( 'WPGlobus_Builders' ) ) :
|
23 |
-
|
24 |
-
class WPGlobus_Builders {
|
25 |
-
|
26 |
-
/**
|
27 |
-
* @var array
|
28 |
-
*/
|
29 |
-
protected static $attrs = array();
|
30 |
-
|
31 |
-
/**
|
32 |
-
* @var array
|
33 |
-
*/
|
34 |
-
protected static $admin_attrs = array();
|
35 |
-
|
36 |
-
/**
|
37 |
-
* @var array
|
38 |
-
*/
|
39 |
-
protected static $add_on = array();
|
40 |
-
|
41 |
-
/**
|
42 |
-
* @var string
|
43 |
-
* @since 2.2.11
|
44 |
-
*/
|
45 |
-
protected static $post_type = null;
|
46 |
-
|
47 |
-
/**
|
48 |
-
* @var array
|
49 |
-
* @since 2.2.24
|
50 |
-
*/
|
51 |
-
protected static $init_attrs = null;
|
52 |
-
|
53 |
-
/**
|
54 |
-
* @return array
|
55 |
-
*/
|
56 |
-
public static function get_addons() {
|
57 |
-
|
58 |
-
if ( ! empty( self::$add_on ) ) {
|
59 |
-
return self::$add_on;
|
60 |
-
}
|
61 |
-
|
62 |
-
global $wp_version;
|
63 |
-
|
64 |
-
self::$add_on['gutenberg'] = array(
|
65 |
-
'id' => 'gutenberg',
|
66 |
-
'role' => 'builder',
|
67 |
-
'admin_bar_label' => version_compare( $wp_version, '4.9.99', '>' ) ? 'Core' : 'Builder',
|
68 |
-
'supported_min_version' => '4.0.0',
|
69 |
-
'const' => 'GUTENBERG_VERSION',
|
70 |
-
'plugin_name' => 'Gutenberg',
|
71 |
-
'admin_bar_builder_label' => '',
|
72 |
-
'plugin_uri' => 'https://github.com/WordPress/gutenberg',
|
73 |
-
'path' => 'gutenberg/gutenberg.php',
|
74 |
-
'stage' => 'production',
|
75 |
-
);
|
76 |
-
|
77 |
-
self::$add_on['js_composer'] = array(
|
78 |
-
'id' => 'js_composer',
|
79 |
-
'role' => 'builder',
|
80 |
-
'supported_min_version' => '5.4.0',
|
81 |
-
'const' => 'WPB_VC_VERSION',
|
82 |
-
'plugin_name' => 'WPBakery Page Builder',
|
83 |
-
'admin_bar_builder_label' => 'WPBakery PB',
|
84 |
-
'plugin_uri' => 'https://wpbakery.com/',
|
85 |
-
'path' => 'js_composer/js_composer.php',
|
86 |
-
'stage' => 'production',
|
87 |
-
);
|
88 |
-
|
89 |
-
self::$add_on['elementor'] = array(
|
90 |
-
'id' => 'elementor',
|
91 |
-
'role' => 'builder',
|
92 |
-
'supported_min_version' => '2.5.14',
|
93 |
-
'const' => 'ELEMENTOR_VERSION',
|
94 |
-
'plugin_name' => 'Elementor',
|
95 |
-
'plugin_uri' => 'https://wordpress.org/plugins/elementor/',
|
96 |
-
'path' => 'elementor/elementor.php',
|
97 |
-
'stage' => 'beta',
|
98 |
-
'beta_version' => '3',
|
99 |
-
);
|
100 |
-
|
101 |
-
if ( file_exists( WP_PLUGIN_DIR . '/wordpress-seo-premium/wp-seo-premium.php' ) ) {
|
102 |
-
|
103 |
-
self::$add_on['yoast_seo'] = array(
|
104 |
-
'id' => 'yoast_seo',
|
105 |
-
'role' => 'builder',
|
106 |
-
'admin_bar_label' => 'Add-on',
|
107 |
-
'supported_min_version' => '7.7',
|
108 |
-
'const' => 'WPSEO_VERSION',
|
109 |
-
'plugin_name' => 'Yoast SEO Premium',
|
110 |
-
'plugin_uri' => 'https://yoast.com/wordpress/plugins/seo/',
|
111 |
-
'path' => 'wordpress-seo-premium/wp-seo-premium.php',
|
112 |
-
'stage' => 'production',
|
113 |
-
);
|
114 |
-
|
115 |
-
}
|
116 |
-
|
117 |
-
/**
|
118 |
-
* @since 2.3.11
|
119 |
-
*/
|
120 |
-
$_file = 'wordpress-seo/wp-seo.php';
|
121 |
-
$_plugin_name = 'Yoast SEO';
|
122 |
-
if ( defined( 'WPGLOBUS_YOAST_PLUGIN_FILE' ) ) {
|
123 |
-
$_file = WPGLOBUS_YOAST_PLUGIN_FILE;
|
124 |
-
$_plugin_name = 'Yoast SEO('.$_file.')';
|
125 |
-
}
|
126 |
-
|
127 |
-
if ( file_exists( WP_PLUGIN_DIR . '/' . $_file ) ) {
|
128 |
-
|
129 |
-
if ( ! defined( 'WPSEO_PREMIUM_PLUGIN_FILE' ) ) {
|
130 |
-
|
131 |
-
self::$add_on['yoast_seo'] = array(
|
132 |
-
'id' => 'yoast_seo',
|
133 |
-
'role' => 'builder',
|
134 |
-
'admin_bar_label' => 'Add-on',
|
135 |
-
'supported_min_version' => '7.7',
|
136 |
-
'const' => 'WPSEO_VERSION',
|
137 |
-
'plugin_name' => $_plugin_name,
|
138 |
-
'plugin_uri' => 'https://wordpress.org/plugins/wordpress-seo/',
|
139 |
-
'path' => $_file,
|
140 |
-
'stage' => 'production',
|
141 |
-
);
|
142 |
-
|
143 |
-
}
|
144 |
-
}
|
145 |
-
|
146 |
-
self::$add_on['woocommerce'] = array(
|
147 |
-
'id' => 'woocommerce',
|
148 |
-
'role' => 'add-on',
|
149 |
-
'config_file' => 'woocommerce.json',
|
150 |
-
'supported_min_version' => '3.5.1',
|
151 |
-
'const' => 'WC_PLUGIN_FILE',
|
152 |
-
'plugin_name' => 'WooCommerce',
|
153 |
-
'plugin_uri' => 'https://woocommerce.com',
|
154 |
-
'path' => 'woocommerce/woocommerce.php',
|
155 |
-
'stage' => 'production',
|
156 |
-
);
|
157 |
-
|
158 |
-
/**
|
159 |
-
* @since 2.3.0
|
160 |
-
*/
|
161 |
-
self::$add_on['pods'] = array(
|
162 |
-
'id' => 'pods',
|
163 |
-
'role' => 'builder',
|
164 |
-
'admin_bar_label' => 'Add-on',
|
165 |
-
'config_file' => 'pods.json',
|
166 |
-
'supported_min_version' => '2.7.16',
|
167 |
-
'const' => 'PODS_VERSION',
|
168 |
-
'plugin_name' => 'Pods-Custom Content Types and Fields',
|
169 |
-
'plugin_uri' => 'https://wordpress.org/plugins/pods/',
|
170 |
-
'path' => 'pods/init.php',
|
171 |
-
'stage' => 'production',
|
172 |
-
'admin_bar_builder_label' => 'Pods',
|
173 |
-
);
|
174 |
-
|
175 |
-
/**
|
176 |
-
* @since 2.4.3
|
177 |
-
*/
|
178 |
-
self::$add_on['rank_math_seo'] = array(
|
179 |
-
'id' => 'rank_math_seo',
|
180 |
-
'role' => 'builder',
|
181 |
-
'admin_bar_label' => 'Add-on',
|
182 |
-
'config_file' => 'rank-math-seo.json',
|
183 |
-
'supported_min_version' => '1.0.42',
|
184 |
-
'const' => 'RANK_MATH_VERSION',
|
185 |
-
'plugin_name' => 'Rank Math SEO',
|
186 |
-
'plugin_uri' => 'https://wordpress.org/plugins/seo-by-rank-math/',
|
187 |
-
'path' => 'seo-by-rank-math/rank-math.php',
|
188 |
-
'stage' => 'beta',
|
189 |
-
'admin_bar_builder_label' => 'Rank Math SEO',
|
190 |
-
);
|
191 |
-
|
192 |
-
/**
|
193 |
-
* self::$add_on['wp-subtitle'] = array(
|
194 |
-
* 'id' => 'wp-subtitle',
|
195 |
-
* 'role' => 'add-on',
|
196 |
-
* 'config_file' => 'wp-subtitle.json',
|
197 |
-
* 'supported_min_version' => '3.1',
|
198 |
-
* 'const' => 'WPSUBTITLE_DIR',
|
199 |
-
* 'plugin_name' => 'WP Subtitle',
|
200 |
-
* 'plugin_uri' => 'http://wordpress.org/plugins/wp-subtitle/',
|
201 |
-
* 'path' => 'wp-subtitle/wp-subtitle.php',
|
202 |
-
* 'stage' => 'production',
|
203 |
-
* );
|
204 |
-
* // */
|
205 |
-
|
206 |
-
/**
|
207 |
-
* self::$add_on['__test'] = array(
|
208 |
-
* 'id' => '__test',
|
209 |
-
* 'supported_min_version' => '1.0',
|
210 |
-
* 'const' => '__TEST_VERSION',
|
211 |
-
* 'plugin_name' => 'Test Add-on',
|
212 |
-
* 'plugin_uri' => '',
|
213 |
-
* 'path' => 'test-add-on/test-add-on.php',
|
214 |
-
* );
|
215 |
-
* // */
|
216 |
-
|
217 |
-
return self::$add_on;
|
218 |
-
}
|
219 |
-
|
220 |
-
/**
|
221 |
-
* @param bool $builder
|
222 |
-
*
|
223 |
-
* @return false|array
|
224 |
-
*/
|
225 |
-
public static function get_addon( $builder = false ) {
|
226 |
-
if ( ! $builder ) {
|
227 |
-
return false;
|
228 |
-
}
|
229 |
-
if ( isset( self::$add_on[ $builder ] ) ) {
|
230 |
-
return self::$add_on[ $builder ];
|
231 |
-
}
|
232 |
-
|
233 |
-
return false;
|
234 |
-
}
|
235 |
-
|
236 |
-
/**
|
237 |
-
* @param bool $init
|
238 |
-
* @param array $init_attrs added @since 2.2.24
|
239 |
-
*
|
240 |
-
* @return array|bool
|
241 |
-
*/
|
242 |
-
public static function get( $init = true, $init_attrs = array() ) {
|
243 |
-
|
244 |
-
// if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
|
245 |
-
//return false;
|
246 |
-
// }
|
247 |
-
|
248 |
-
/**
|
249 |
-
* @since 2.2.26
|
250 |
-
*/
|
251 |
-
if ( empty($init_attrs) ) {
|
252 |
-
return false;
|
253 |
-
}
|
254 |
-
|
255 |
-
/**
|
256 |
-
* @since 2.2.24
|
257 |
-
*/
|
258 |
-
self::$init_attrs = $init_attrs;
|
259 |
-
|
260 |
-
/**
|
261 |
-
* @since 2.2.24
|
262 |
-
*/
|
263 |
-
$post_types = $init_attrs['post_types'];
|
264 |
-
|
265 |
-
/** @global string $pagenow */
|
266 |
-
global $pagenow;
|
267 |
-
|
268 |
-
self::$attrs = array(
|
269 |
-
'id' => false,
|
270 |
-
'context' => 'add-on',
|
271 |
-
'version' => '',
|
272 |
-
'class' => '',
|
273 |
-
'post_type' => '',
|
274 |
-
'post_id' => '',
|
275 |
-
'is_admin' => true,
|
276 |
-
'pagenow' => $pagenow,
|
277 |
-
'builder_page' => false,
|
278 |
-
'doing_ajax' => WPGlobus_WP::is_doing_ajax(),
|
279 |
-
'language' => '',
|
280 |
-
'message' => '',
|
281 |
-
'ajax_actions' => '',
|
282 |
-
'builder_support' => true, // @since 2.4.12
|
283 |
-
);
|
284 |
-
|
285 |
-
self::$admin_attrs = array(
|
286 |
-
'multilingualFields' => array( 'post_title', 'excerpt' ),
|
287 |
-
'translatableClass' => 'wpglobus-translatable',
|
288 |
-
);
|
289 |
-
|
290 |
-
/**
|
291 |
-
* @since 2.2.11
|
292 |
-
*/
|
293 |
-
if ( in_array( $pagenow, array('post.php', 'post-new.php', 'media-new.php') ) ) {
|
294 |
-
|
295 |
-
/**
|
296 |
-
* @W.I.P @since 2.2.14
|
297 |
-
* if ( in_array( $pagenow, array('post.php', 'post-new.php', 'media-new.php', 'admin-ajax.php') ) ) {
|
298 |
-
*/
|
299 |
-
$post_type = self::get_post_type_2();
|
300 |
-
|
301 |
-
/**
|
302 |
-
* Filter for post types.
|
303 |
-
*
|
304 |
-
* @since 2.2.11
|
305 |
-
*
|
306 |
-
* @param array $post_types Array of post types.
|
307 |
-
* @param string $post_type Current post type.
|
308 |
-
*
|
309 |
-
* @return array
|
310 |
-
*/
|
311 |
-
$post_types = apply_filters( 'wpglobus_builders_post_types', $post_types, $post_type );
|
312 |
-
|
313 |
-
if ( ! array_key_exists( $post_type, $post_types ) ) {
|
314 |
-
return self::$attrs;
|
315 |
-
} else if ( ! $post_types[$post_type] ) {
|
316 |
-
return self::$attrs;
|
317 |
-
}
|
318 |
-
}
|
319 |
-
|
320 |
-
if ( $init ) {
|
321 |
-
|
322 |
-
//$builder = false;
|
323 |
-
|
324 |
-
self::get_addons();
|
325 |
-
|
326 |
-
/**
|
327 |
-
* @since 1.9.17
|
328 |
-
*/
|
329 |
-
$builder = self::is_gutenberg();
|
330 |
-
if ( $builder && $builder['builder_page'] ) {
|
331 |
-
return $builder;
|
332 |
-
}
|
333 |
-
|
334 |
-
/**
|
335 |
-
* JS Composer.
|
336 |
-
*
|
337 |
-
* @since 1.9.17
|
338 |
-
* @since 2.2.3 Start js_composer as a builder.
|
339 |
-
*/
|
340 |
-
if ( ! $builder || ! $builder['builder_page'] ) {
|
341 |
-
$builder = self::is_js_composer();
|
342 |
-
if ( $builder && $builder['builder_page'] ) {
|
343 |
-
return $builder;
|
344 |
-
}
|
345 |
-
}
|
346 |
-
|
347 |
-
/**
|
348 |
-
* Elementor.
|
349 |
-
*
|
350 |
-
* @since 1.9.17
|
351 |
-
*/
|
352 |
-
if ( ! $builder || ! $builder['builder_page'] ) {
|
353 |
-
$builder = self::is_elementor();
|
354 |
-
if ( $builder ) {
|
355 |
-
if ( $builder['is_admin'] ) {
|
356 |
-
if ( $builder['builder_page'] ) {
|
357 |
-
return $builder;
|
358 |
-
}
|
359 |
-
} else {
|
360 |
-
/** @noinspection PhpIncludeInspection */
|
361 |
-
include_once WPGlobus::$PLUGIN_DIR_PATH . 'includes/builders/elementor/class-wpglobus-elementor-front.php';
|
362 |
-
WPGlobus_Elementor_Front::init( $builder );
|
363 |
-
}
|
364 |
-
}
|
365 |
-
}
|
366 |
-
|
367 |
-
/**
|
368 |
-
* @since 1.9.17
|
369 |
-
* @W.I.P
|
370 |
-
*/
|
371 |
-
/*
|
372 |
-
$builder = self::is_siteorigin_panels();
|
373 |
-
if ( $builder ) {
|
374 |
-
return $builder;
|
375 |
-
}
|
376 |
-
// */
|
377 |
-
|
378 |
-
/**
|
379 |
-
* @since 1.9.17
|
380 |
-
*/
|
381 |
-
if ( ! $builder || ! $builder['builder_page'] ) {
|
382 |
-
$builder = self::is_yoast_seo();
|
383 |
-
if ( $builder && $builder['builder_page'] ) {
|
384 |
-
return $builder;
|
385 |
-
}
|
386 |
-
}
|
387 |
-
|
388 |
-
/**
|
389 |
-
* Pods – Custom Content Types and Fields.
|
390 |
-
*
|
391 |
-
* @since 2.3.0
|
392 |
-
*/
|
393 |
-
if ( ! $builder || ! $builder['builder_page'] ) {
|
394 |
-
$builder = self::is_pods();
|
395 |
-
if ( $builder && $builder['builder_page'] ) {
|
396 |
-
return $builder;
|
397 |
-
}
|
398 |
-
|
399 |
-
}
|
400 |
-
|
401 |
-
/**
|
402 |
-
* Rank Math SEO.
|
403 |
-
*
|
404 |
-
* @since 2.4.3
|
405 |
-
*/
|
406 |
-
if ( ! $builder || ! $builder['builder_page'] ) {
|
407 |
-
$builder = self::is_rank_math_seo();
|
408 |
-
if ( $builder && $builder['builder_page'] ) {
|
409 |
-
return $builder;
|
410 |
-
}
|
411 |
-
|
412 |
-
}
|
413 |
-
}
|
414 |
-
|
415 |
-
return self::$attrs;
|
416 |
-
|
417 |
-
}
|
418 |
-
|
419 |
-
/**
|
420 |
-
* Page Builder by SiteOrigin.
|
421 |
-
* @W.I.P
|
422 |
-
* https://wordpress.org/plugins/siteorigin-panels/
|
423 |
-
*/
|
424 |
-
protected static function is_siteorigin_panels() {}
|
425 |
-
|
426 |
-
/**
|
427 |
-
* Elementor Page Builder.
|
428 |
-
* https://wordpress.org/plugins/elementor/
|
429 |
-
*/
|
430 |
-
protected static function is_elementor() {
|
431 |
-
|
432 |
-
if ( ! defined( 'ELEMENTOR_VERSION' ) ) {
|
433 |
-
return false;
|
434 |
-
}
|
435 |
-
|
436 |
-
$__builder = self::get_addon( 'elementor' );
|
437 |
-
|
438 |
-
if ( ! $__builder ) {
|
439 |
-
return false;
|
440 |
-
}
|
441 |
-
|
442 |
-
/** @global string $pagenow */
|
443 |
-
global $pagenow;
|
444 |
-
|
445 |
-
$load_elementor = false;
|
446 |
-
|
447 |
-
if ( version_compare( ELEMENTOR_VERSION, $__builder['supported_min_version'], '<' ) ) {
|
448 |
-
|
449 |
-
$message = 'Unsupported Elementor version.';
|
450 |
-
|
451 |
-
$_attrs = array(
|
452 |
-
'id' => 'elementor',
|
453 |
-
'version' => ELEMENTOR_VERSION,
|
454 |
-
'class' => 'WPGlobus_Elementor',
|
455 |
-
'is_admin' => false,
|
456 |
-
'builder_page' => false,
|
457 |
-
'message' => $message,
|
458 |
-
);
|
459 |
-
|
460 |
-
$attrs = self::get_attrs( $_attrs );
|
461 |
-
|
462 |
-
return $attrs;
|
463 |
-
|
464 |
-
} else {
|
465 |
-
|
466 |
-
if ( in_array( $pagenow, array( 'admin-ajax.php', 'post.php', 'index.php', 'post-new.php' ), true ) ) {
|
467 |
-
|
468 |
-
/**
|
469 |
-
* Init current post type.
|
470 |
-
*/
|
471 |
-
$post_type = is_null(self::$post_type) ? '' : self::$post_type;
|
472 |
-
|
473 |
-
/**
|
474 |
-
* Init post ID.
|
475 |
-
*/
|
476 |
-
$post_id = '';
|
477 |
-
|
478 |
-
/**
|
479 |
-
* Init `builder_support`.
|
480 |
-
* @since 2.4.12
|
481 |
-
*/
|
482 |
-
$builder_support = true;
|
483 |
-
|
484 |
-
$ajax_actions = '';
|
485 |
-
$is_admin = true;
|
486 |
-
|
487 |
-
if ( 'admin-ajax.php' === $pagenow ) {
|
488 |
-
|
489 |
-
// phpcs:ignore WordPress.Security.NonceVerification.Recommended
|
490 |
-
if ( ! isset( $_REQUEST['action'] ) || 'elementor_ajax' !== $_REQUEST['action'] ) {
|
491 |
-
return false;
|
492 |
-
}
|
493 |
-
// phpcs:ignore WordPress.Security.NonceVerification.Recommended
|
494 |
-
if ( false !== strpos( $_REQUEST['actions'], 'save_builder' ) ) {
|
495 |
-
$ajax_actions = 'save_builder';
|
496 |
-
// phpcs:ignore WordPress.Security.NonceVerification.Recommended
|
497 |
-
} elseif ( false !== strpos( $_REQUEST['actions'], '"action":"render_widget"' ) ) {
|
498 |
-
$ajax_actions = 'render_widget';
|
499 |
-
} else {
|
500 |
-
return false;
|
501 |
-
}
|
502 |
-
$load_elementor = true;
|
503 |
-
// phpcs:ignore WordPress.Security.NonceVerification.Recommended
|
504 |
-
$post_id = sanitize_text_field( $_REQUEST['editor_post_id'] );
|
505 |
-
|
506 |
-
} elseif ( 'index.php' === $pagenow ) {
|
507 |
-
|
508 |
-
/**
|
509 |
-
* @todo remove after testing.
|
510 |
-
* if ( ! isset( $_GET['elementor-preview'] ) ) {
|
511 |
-
* return false;
|
512 |
-
* }
|
513 |
-
* // */
|
514 |
-
// @W.I.P @since 2.2.11
|
515 |
-
// [REQUEST_URI] => /?p=75&elementor-preview=75&ver=1561202861
|
516 |
-
|
517 |
-
$load_elementor = false;
|
518 |
-
$is_admin = false;
|
519 |
-
$builder_support = null; // @since 2.4.12
|
520 |
-
|
521 |
-
/**
|
522 |
-
* @todo Preview page for draft status.
|
523 |
-
* [REQUEST_URI] => /?p=75&elementor-preview=75&ver=1561202861
|
524 |
-
* @W.I.P
|
525 |
-
* @since 2.2.11 [REQUEST_URI] was changed to `?p=75&preview_id=75&preview_nonce=da660129a7&preview=true`.
|
526 |
-
*/
|
527 |
-
/*
|
528 |
-
if ( ! empty( $_GET['p'] ) ) {
|
529 |
-
$load_elementor = true;
|
530 |
-
$is_admin = true;
|
531 |
-
$post_id = sanitize_text_field( $_GET['p'] );
|
532 |
-
$post_type = self::get_post_type($post_id);
|
533 |
-
|
534 |
-
}
|
535 |
-
// */
|
536 |
-
|
537 |
-
} elseif ( 'post.php' === $pagenow ) {
|
538 |
-
|
539 |
-
$is_admin = true;
|
540 |
-
// phpcs:ignore WordPress.Security.NonceVerification.Recommended
|
541 |
-
if ( isset( $_GET['action'] ) && 'elementor' === $_GET['action'] ) {
|
542 |
-
//$is_admin = false;
|
543 |
-
$load_elementor = true;
|
544 |
-
}
|
545 |
-
|
546 |
-
/**
|
547 |
-
* $cpt_support = get_option( 'elementor_cpt_support', array('page', 'post') );
|
548 |
-
*
|
549 |
-
* @see_file elementor\includes\plugin.php
|
550 |
-
*/
|
551 |
-
$cpt_support = get_option( 'elementor_cpt_support', array( 'page', 'post' ) );
|
552 |
-
|
553 |
-
// phpcs:ignore WordPress.Security.NonceVerification.Recommended
|
554 |
-
if ( empty( $post_type ) && isset( $_GET['post_type'] ) ) {
|
555 |
-
/**
|
556 |
-
* For post-new.php page.
|
557 |
-
*/
|
558 |
-
// phpcs:ignore WordPress.Security.NonceVerification.Recommended
|
559 |
-
$post_type = sanitize_text_field( $_GET['post_type'] );
|
560 |
-
}
|
561 |
-
|
562 |
-
if ( empty( $post_type ) ) {
|
563 |
-
// phpcs:ignore WordPress.CSRF.NonceVerification
|
564 |
-
if ( isset( $_GET['post'] ) ) {
|
565 |
-
$post_type = self::get_post_type( $_GET['post'] ); // phpcs:ignore WordPress.CSRF.NonceVerification
|
566 |
-
} elseif ( isset( $_REQUEST['post_ID'] ) ) { // phpcs:ignore WordPress.CSRF.NonceVerification
|
567 |
-
$post_type = self::get_post_type( $_REQUEST['post_ID'] ); // phpcs:ignore WordPress.CSRF.NonceVerification
|
568 |
-
}
|
569 |
-
}
|
570 |
-
|
571 |
-
/**
|
572 |
-
* @since 2.4.12
|
573 |
-
*/
|
574 |
-
if ( isset( $_GET['post'] ) ) {
|
575 |
-
$post_id = sanitize_text_field( $_GET['post'] );
|
576 |
-
}
|
577 |
-
|
578 |
-
// if ( empty( $post_type ) ) {
|
579 |
-
/**
|
580 |
-
* Post type by default.
|
581 |
-
* If we can not define post type then we don't set it to default value.
|
582 |
-
* Because it may cause incorrect behavior later.
|
583 |
-
*/
|
584 |
-
//$post_type = 'post';
|
585 |
-
// }
|
586 |
-
|
587 |
-
if ( in_array( $post_type, $cpt_support, true ) ) {
|
588 |
-
$load_elementor = true;
|
589 |
-
}
|
590 |
-
|
591 |
-
/**
|
592 |
-
* @since 2.4.12
|
593 |
-
*/
|
594 |
-
if ( $load_elementor ) {
|
595 |
-
|
596 |
-
if ( ! empty($post_id) && (int) $post_id > 0 ) {
|
597 |
-
|
598 |
-
$wpglobus_elementor_support = get_post_meta( $post_id, '_wpglobus_elementor_support', true );
|
599 |
-
if ( 'off' === $wpglobus_elementor_support ) {
|
600 |
-
$builder_support = false;
|
601 |
-
}
|
602 |
-
|
603 |
-
if ( $builder_support ) {
|
604 |
-
|
605 |
-
$elementor_edit_mode = get_post_meta( $post_id, '_elementor_edit_mode', true );
|
606 |
-
|
607 |
-
if ( 'builder' !== $elementor_edit_mode ) {
|
608 |
-
/**
|
609 |
-
* Disable elementor support for post, that doesn't use elementor builder.
|
610 |
-
*/
|
611 |
-
$builder_support = false;
|
612 |
-
}
|
613 |
-
}
|
614 |
-
}
|
615 |
-
}
|
616 |
-
|
617 |
-
} else {
|
618 |
-
/**
|
619 |
-
* @todo may be use @see is_built_with_elementor() in elementor\core\base\document.php
|
620 |
-
*/
|
621 |
-
$load_elementor = true;
|
622 |
-
}
|
623 |
-
|
624 |
-
$_attrs = array(
|
625 |
-
'id' => 'elementor',
|
626 |
-
'version' => ELEMENTOR_VERSION,
|
627 |
-
'is_admin' => $is_admin,
|
628 |
-
'class' => 'WPGlobus_Elementor',
|
629 |
-
'post_type' => $post_type,
|
630 |
-
'post_id' => $post_id,
|
631 |
-
'builder_page' => false,
|
632 |
-
'ajax_actions' => $ajax_actions,
|
633 |
-
'post_css_meta_key' => '_wpglobus_elementor_css',
|
634 |
-
'post_support_meta_key' => '_wpglobus_elementor_support', // @since 2.4.12
|
635 |
-
'elementor_data_meta_key' => '_elementor_data',
|
636 |
-
'elementor_css_meta_key' => '_elementor_css',
|
637 |
-
'elementor_edit_mode_meta_key' => '_elementor_edit_mode', // @since 2.4.12
|
638 |
-
'elementor_css_print_method' => get_option('elementor_css_print_method', 'external'), // @since 2.2.31
|
639 |
-
);
|
640 |
-
|
641 |
-
if ( $load_elementor ) {
|
642 |
-
$_attrs['builder_page'] = true;
|
643 |
-
} else {
|
644 |
-
$_attrs['builder_page'] = false;
|
645 |
-
}
|
646 |
-
|
647 |
-
/**
|
648 |
-
* @since 2.4.12
|
649 |
-
*/
|
650 |
-
$_attrs['builder_support'] = $builder_support;
|
651 |
-
|
652 |
-
$attrs = self::get_attrs( $_attrs );
|
653 |
-
|
654 |
-
return $attrs;
|
655 |
-
}
|
656 |
-
}
|
657 |
-
|
658 |
-
return false;
|
659 |
-
}
|
660 |
-
|
661 |
-
/**
|
662 |
-
* WPBakery Page Builder.
|
663 |
-
* https://wpbakery.com/
|
664 |
-
*/
|
665 |
-
protected static function is_js_composer() {
|
666 |
-
|
667 |
-
if ( ! defined( 'WPB_VC_VERSION' ) ) {
|
668 |
-
return false;
|
669 |
-
}
|
670 |
-
|
671 |
-
/** @global string $pagenow */
|
672 |
-
global $pagenow;
|
673 |
-
|
674 |
-
/** @global wpdb $wpdb */
|
675 |
-
// global $wpdb;
|
676 |
-
|
677 |
-
if ( 'post.php' === $pagenow ) {
|
678 |
-
|
679 |
-
$_builder_page = true;
|
680 |
-
|
681 |
-
/**
|
682 |
-
* @see vc_editor_post_types() (js_composer\include\helpers\helpers_api.php) doesn't work here.
|
683 |
-
* so let's check the roles.
|
684 |
-
*/
|
685 |
-
$_opts = wp_roles()->roles;
|
686 |
-
|
687 |
-
if ( ! function_exists( 'wp_get_current_user' ) ) {
|
688 |
-
/** @noinspection PhpIncludeInspection */
|
689 |
-
require_once ABSPATH . WPINC . '/pluggable.php';
|
690 |
-
}
|
691 |
-
|
692 |
-
$_user = wp_get_current_user();
|
693 |
-
|
694 |
-
$post_id = WPGlobus_Utils::safe_get( 'post' );
|
695 |
-
|
696 |
-
if ( empty( $post_id ) ) {
|
697 |
-
/**
|
698 |
-
* Before update post we can get empty $_GET array.
|
699 |
-
* Let's check $_POST.
|
700 |
-
*/
|
701 |
-
// phpcs:ignore WordPress.Security.NonceVerification.Missing
|
702 |
-
$post_id = isset( $_POST['post_ID'] ) ? sanitize_text_field( $_POST['post_ID'] ) : '';
|
703 |
-
}
|
704 |
-
|
705 |
-
// if ( empty( $post_id ) ) {
|
706 |
-
// @todo add handling this case.
|
707 |
-
// }
|
708 |
-
|
709 |
-
// $_post_type = $wpdb->get_col( $wpdb->prepare( "SELECT post_type FROM {$wpdb->prefix}posts WHERE ID = %d", $post_id ) );
|
710 |
-
//
|
711 |
-
// $post_type = '';
|
712 |
-
// if ( ! empty( $_post_type[0] ) ) {
|
713 |
-
// $post_type = $_post_type[0];
|
714 |
-
// }
|
715 |
-
|
716 |
-
$post = get_post( $post_id );
|
717 |
-
$post_type = ( $post ? $post->post_type : '' );
|
718 |
-
|
719 |
-
if ( ! isset( $_opts[ $_user->roles[0] ]['capabilities']['vc_access_rules_post_types'] ) ) {
|
720 |
-
/**
|
721 |
-
* WPBakery Page Builder is available for pages only (settings were not saved yet).
|
722 |
-
*/
|
723 |
-
if ( 'page' !== $post_type ) {
|
724 |
-
$_builder_page = false;
|
725 |
-
}
|
726 |
-
} elseif ( empty( $_opts[ $_user->roles[0] ]['capabilities']['vc_access_rules_post_types'] ) ) {
|
727 |
-
/**
|
728 |
-
* Settings exist but set to False, so all post types are disabled in WPBakery Page Builder.
|
729 |
-
*/
|
730 |
-
$_builder_page = false;
|
731 |
-
|
732 |
-
} elseif ( true === $_opts[ $_user->roles[0] ]['capabilities']['vc_access_rules_post_types'] ) {
|
733 |
-
/**
|
734 |
-
* WPBakery Page Builder is available for pages only.
|
735 |
-
*/
|
736 |
-
if ( 'page' !== $post_type ) {
|
737 |
-
$_builder_page = false;
|
738 |
-
}
|
739 |
-
} elseif ( 'custom' === $_opts[ $_user->roles[0] ]['capabilities']['vc_access_rules_post_types'] ) {
|
740 |
-
|
741 |
-
/**
|
742 |
-
* Custom settings for post types in WPBakery Page Builder.
|
743 |
-
*/
|
744 |
-
if ( ! empty( $_opts[ $_user->roles[0] ]['capabilities'][ 'vc_access_rules_post_types/' . $post_type ] ) ) {
|
745 |
-
// Setting for this post type exists and set to True.
|
746 |
-
$_builder_page = true;
|
747 |
-
} else {
|
748 |
-
$_builder_page = false;
|
749 |
-
}
|
750 |
-
} else {
|
751 |
-
$_builder_page = false;
|
752 |
-
}
|
753 |
-
|
754 |
-
$_attrs = array(
|
755 |
-
'id' => 'js_composer',
|
756 |
-
'version' => WPB_VC_VERSION,
|
757 |
-
'class' => 'WPGlobus_JS_Composer',
|
758 |
-
'post_type' => $post_type,
|
759 |
-
'builder_page' => $_builder_page,
|
760 |
-
);
|
761 |
-
|
762 |
-
/**
|
763 |
-
* @since 2.2.11
|
764 |
-
* @W.I.P
|
765 |
-
*/
|
766 |
-
//self::$admin_attrs['multilingualFields'][] = 'wpb_visual_composer';
|
767 |
-
|
768 |
-
$attrs = self::get_attrs( $_attrs );
|
769 |
-
|
770 |
-
return $attrs;
|
771 |
-
|
772 |
-
}
|
773 |
-
|
774 |
-
return false;
|
775 |
-
}
|
776 |
-
|
777 |
-
/**
|
778 |
-
* Gutenberg.
|
779 |
-
*
|
780 |
-
* @since 1.9.17
|
781 |
-
*/
|
782 |
-
protected static function is_gutenberg() {
|
783 |
-
|
784 |
-
$load_gutenberg = false;
|
785 |
-
$message = '';
|
786 |
-
|
787 |
-
/** @global string $pagenow */
|
788 |
-
global $pagenow, $wp_version;
|
789 |
-
|
790 |
-
if ( version_compare( $wp_version, '4.9.99', '>' ) ) {
|
791 |
-
|
792 |
-
$context = 'core';
|
793 |
-
|
794 |
-
/**
|
795 |
-
* @since 2.0
|
796 |
-
*/
|
797 |
-
if ( 'post-new.php' === $pagenow ) {
|
798 |
-
|
799 |
-
/**
|
800 |
-
* Load specific language switcher for this page.
|
801 |
-
*
|
802 |
-
* @see get_switcher_box() in wpglobus\includes\builders\gutenberg\class-wpglobus-gutenberg.php
|
803 |
-
*/
|
804 |
-
//if ( ! isset( $_GET['classic-editor'] ) ) { // phpcs:ignore WordPress.CSRF.NonceVerification
|
805 |
-
// Start Gutenberg support if classic editor was not requested.
|
806 |
-
//$load_gutenberg = true;
|
807 |
-
//}
|
808 |
-
|
809 |
-
$load_gutenberg = true;
|
810 |
-
|
811 |
-
$load_gutenberg = self::get_3rd_party_status_for_gutenberg( $load_gutenberg );
|
812 |
-
|
813 |
-
} elseif ( 'index.php' === $pagenow ) {
|
814 |
-
|
815 |
-
/**
|
816 |
-
* When Update button was clicked.
|
817 |
-
*/
|
818 |
-
if ( ! is_admin() ) {
|
819 |
-
/**
|
820 |
-
* Gutenberg updates post as from front.
|
821 |
-
*
|
822 |
-
* @see $_SERVER['REQUEST_URI']
|
823 |
-
*/
|
824 |
-
//$actions = array( 'edit' );
|
825 |
-
// @todo check 'wp/v2/' in wp.api.versionString (JS).
|
826 |
-
|
827 |
-
// /wp-json/wp/v2/posts/
|
828 |
-
// /wp-json/wp/v2/pages/
|
829 |
-
/**
|
830 |
-
* We need define post type for correct work.
|
831 |
-
*
|
832 |
-
* @todo check
|
833 |
-
* /wp-json/wp/v2/taxonomies?context=edit
|
834 |
-
* /wp-json/wp/v2/taxonomies?context=edit&_locale=user
|
835 |
-
* /wp-json/wp/v2/types/wp_block?_locale=user
|
836 |
-
* /wp-json/wp/v2/blocks?per_page=100&_locale=user
|
837 |
-
*/
|
838 |
-
|
839 |
-
$_request_uri = explode( '/', $_SERVER['REQUEST_URI'] );
|
840 |
-
$post_id = end( $_request_uri );
|
841 |
-
$post_id = preg_replace( '/\?.*/', '', $post_id );
|
842 |
-
|
843 |
-
/**
|
844 |
-
* @todo @see https://wpglobus.freshdesk.com/a/tickets/4103
|
845 |
-
*/
|
846 |
-
|
847 |
-
/**
|
848 |
-
* @since 2.3.5 Added checking $_request_uri[4].
|
849 |
-
*/
|
850 |
-
$_continue = false;
|
851 |
-
if ( 0 !== (int) $post_id && ! empty($_request_uri[4]) ) {
|
852 |
-
|
853 |
-
$GLOBALS['WPGlobus']['builder'] = 'gutenberg';
|
854 |
-
$GLOBALS['WPGlobus']['context'] = $context;
|
855 |
-
$GLOBALS['WPGlobus']['post_id'] = $post_id;
|
856 |
-
switch ( $_request_uri[4] ) {
|
857 |
-
case 'posts':
|
858 |
-
$post_type = 'post';
|
859 |
-
break;
|
860 |
-
case 'pages':
|
861 |
-
$post_type = 'page';
|
862 |
-
break;
|
863 |
-
default:
|
864 |
-
$post_type = $_request_uri[4];
|
865 |
-
}
|
866 |
-
$GLOBALS['WPGlobus']['post_type'] = $post_type;
|
867 |
-
$_continue = true;
|
868 |
-
}
|
869 |
-
|
870 |
-
if ( false !== strpos( $_SERVER['REQUEST_URI'], 'wp/v2/posts' )
|
871 |
-
|| false !== strpos( $_SERVER['REQUEST_URI'], 'wp/v2/pages' )
|
872 |
-
|| $_continue ) {
|
873 |
-
$load_gutenberg = true;
|
874 |
-
}
|
875 |
-
}
|
876 |
-
} elseif ( 'post.php' === $pagenow ) {
|
877 |
-
|
878 |
-
$load_gutenberg = true;
|
879 |
-
|
880 |
-
$post_type = is_null(self::$post_type) ? '' : self::$post_type;
|
881 |
-
|
882 |
-
/**
|
883 |
-
* Check out $_POST['post_type'] to define post type.
|
884 |
-
*
|
885 |
-
* @since 2.1.6
|
886 |
-
*/
|
887 |
-
if ( empty( $post_type ) && ! empty( $_POST['post_type'] ) ) { // phpcs:ignore WordPress.CSRF.NonceVerification
|
888 |
-
$post_type = $_POST['post_type']; // phpcs:ignore WordPress.CSRF.NonceVerification
|
889 |
-
}
|
890 |
-
|
891 |
-
if ( empty( $post_type ) && ! empty( $_GET['post'] ) ) { // phpcs:ignore WordPress.CSRF.NonceVerification
|
892 |
-
$post_type = self::get_post_type( $_GET['post'] ); // phpcs:ignore WordPress.CSRF.NonceVerification
|
893 |
-
}
|
894 |
-
|
895 |
-
/**
|
896 |
-
* @todo don't check post type @since 2.1.2
|
897 |
-
*/
|
898 |
-
// if ( ! in_array( $post_type, array( 'post', 'page' ), true ) ) {
|
899 |
-
// $load_gutenberg = false;
|
900 |
-
// }
|
901 |
-
|
902 |
-
/**
|
903 |
-
* @since 2.2.24
|
904 |
-
*/
|
905 |
-
if ( ! self::use_block_editor_for_post_type($post_type) ) {
|
906 |
-
/**
|
907 |
-
* Don't start Block Editor support.
|
908 |
-
*/
|
909 |
-
return false;
|
910 |
-
|
911 |
-
}
|
912 |
-
|
913 |
-
$load_gutenberg = self::get_3rd_party_status_for_gutenberg( $load_gutenberg, $post_type );
|
914 |
-
|
915 |
-
}
|
916 |
-
|
917 |
-
$_attrs = array(
|
918 |
-
'id' => 'gutenberg',
|
919 |
-
'version' => $wp_version,
|
920 |
-
'class' => 'WPGlobus_Gutenberg',
|
921 |
-
'builder_page' => false,
|
922 |
-
'pagenow' => $pagenow,
|
923 |
-
'post_type' => empty( $post_type ) ? '' : $post_type,
|
924 |
-
'message' => $message,
|
925 |
-
'context' => $context,
|
926 |
-
);
|
927 |
-
|
928 |
-
if ( $load_gutenberg ) {
|
929 |
-
$_attrs['builder_page'] = true;
|
930 |
-
}
|
931 |
-
|
932 |
-
$attrs = self::get_attrs( $_attrs );
|
933 |
-
|
934 |
-
self::$add_on['gutenberg']['admin_bar_builder_label'] = 'Block Editor';
|
935 |
-
|
936 |
-
return $attrs;
|
937 |
-
|
938 |
-
}
|
939 |
-
|
940 |
-
if ( defined( 'GUTENBERG_VERSION' ) ) {
|
941 |
-
|
942 |
-
$__builder = self::get_addon( 'gutenberg' );
|
943 |
-
|
944 |
-
if ( ! $__builder ) {
|
945 |
-
return false;
|
946 |
-
}
|
947 |
-
|
948 |
-
if ( version_compare( GUTENBERG_VERSION, $__builder['supported_min_version'], '<' ) ) {
|
949 |
-
|
950 |
-
$message = 'Unsupported Gutenberg version.';
|
951 |
-
|
952 |
-
} else {
|
953 |
-
|
954 |
-
if ( self::is_gutenberg_ajax() ) {
|
955 |
-
|
956 |
-
$load_gutenberg = true;
|
957 |
-
|
958 |
-
} else {
|
959 |
-
|
960 |
-
if ( 'post-new.php' === $pagenow ) {
|
961 |
-
|
962 |
-
/**
|
963 |
-
* Load specific language switcher for this page.
|
964 |
-
*
|
965 |
-
* @see get_switcher_box() in wpglobus\includes\builders\gutenberg\class-wpglobus-gutenberg.php
|
966 |
-
*/
|
967 |
-
if ( ! isset( $_GET['classic-editor'] ) ) { // phpcs:ignore WordPress.CSRF.NonceVerification
|
968 |
-
// Start Gutenberg support if classic editor was not requested.
|
969 |
-
$load_gutenberg = true;
|
970 |
-
}
|
971 |
-
|
972 |
-
/**
|
973 |
-
* @since 1.9.30
|
974 |
-
*/
|
975 |
-
$load_gutenberg = self::get_3rd_party_status_for_gutenberg( $load_gutenberg );
|
976 |
-
|
977 |
-
} elseif ( 'index.php' === $pagenow ) {
|
978 |
-
|
979 |
-
/**
|
980 |
-
* When Update button was clicked.
|
981 |
-
*/
|
982 |
-
if ( ! is_admin() ) {
|
983 |
-
/**
|
984 |
-
* Gutenberg updates post as from front.
|
985 |
-
*
|
986 |
-
* @see $_SERVER['REQUEST_URI']
|
987 |
-
*/
|
988 |
-
//$actions = array( 'edit' );
|
989 |
-
// @todo check 'wp/v2/' in wp.api.versionString (JS).
|
990 |
-
|
991 |
-
// /wp-json/wp/v2/posts/
|
992 |
-
// /wp-json/wp/v2/pages/
|
993 |
-
// @todo check /wp-json/wp/v2/taxonomies?context=edit
|
994 |
-
if ( false !== strpos( $_SERVER['REQUEST_URI'], 'wp/v2/posts' )
|
995 |
-
|| false !== strpos( $_SERVER['REQUEST_URI'], 'wp/v2/pages' ) ) {
|
996 |
-
$load_gutenberg = true;
|
997 |
-
}
|
998 |
-
}
|
999 |
-
} elseif ( 'post.php' === $pagenow ) {
|
1000 |
-
|
1001 |
-
$load_gutenberg = true;
|
1002 |
-
|
1003 |
-
$actions = array( 'edit', 'editpost' );
|
1004 |
-
// phpcs:ignore WordPress.Security.NonceVerification.Recommended
|
1005 |
-
if ( ! empty( $_GET['action'] ) ) {
|
1006 |
-
// phpcs:ignore WordPress.Security.NonceVerification.Recommended
|
1007 |
-
if ( in_array( $_GET['action'], $actions, true ) ) {
|
1008 |
-
// phpcs:ignore WordPress.Security.NonceVerification.Recommended
|
1009 |
-
if ( array_key_exists( 'classic-editor', $_GET ) ) {
|
1010 |
-
$load_gutenberg = false;
|
1011 |
-
}
|
1012 |
-
// phpcs:ignore WordPress.Security.NonceVerification.Recommended
|
1013 |
-
if ( isset( $_GET['meta_box'] ) && 1 === (int) $_GET['meta_box'] ) {
|
1014 |
-
$load_gutenberg = true;
|
1015 |
-
}
|
1016 |
-
}
|
1017 |
-
} elseif ( ! empty( $_POST['action'] ) ) { // phpcs:ignore WordPress.CSRF.NonceVerification
|
1018 |
-
// phpcs:ignore WordPress.Security.NonceVerification.Missing
|
1019 |
-
if ( in_array( $_POST['action'], $actions, true ) ) {
|
1020 |
-
// phpcs:ignore WordPress.Security.NonceVerification.Missing
|
1021 |
-
if ( array_key_exists( 'classic-editor', $_POST ) ) {
|
1022 |
-
$load_gutenberg = false;
|
1023 |
-
}
|
1024 |
-
// phpcs:ignore WordPress.Security.NonceVerification.Missing
|
1025 |
-
if ( isset( $_POST['meta_box'] ) && 1 === (int) $_POST['meta_box'] ) {
|
1026 |
-
$load_gutenberg = true;
|
1027 |
-
}
|
1028 |
-
}
|
1029 |
-
}
|
1030 |
-
|
1031 |
-
$post_type = is_null(self::$post_type) ? '' : self::$post_type;
|
1032 |
-
|
1033 |
-
if ( empty($post_type) && ! empty( $_GET['post'] ) ) { // phpcs:ignore WordPress.CSRF.NonceVerification
|
1034 |
-
$post_type = self::get_post_type( $_GET['post'] ); // phpcs:ignore WordPress.CSRF.NonceVerification
|
1035 |
-
}
|
1036 |
-
|
1037 |
-
/**
|
1038 |
-
* Since 1.9.17 Gutenberg support will be start for posts and pages only.
|
1039 |
-
*/
|
1040 |
-
if ( ! in_array( $post_type, array( 'post', 'page' ), true ) ) {
|
1041 |
-
$load_gutenberg = false;
|
1042 |
-
}
|
1043 |
-
|
1044 |
-
/**
|
1045 |
-
* @since 1.9.30
|
1046 |
-
*/
|
1047 |
-
$load_gutenberg = self::get_3rd_party_status_for_gutenberg( $load_gutenberg );
|
1048 |
-
|
1049 |
-
}
|
1050 |
-
}
|
1051 |
-
}
|
1052 |
-
|
1053 |
-
$_attrs = array(
|
1054 |
-
'id' => 'gutenberg',
|
1055 |
-
'version' => GUTENBERG_VERSION,
|
1056 |
-
'class' => 'WPGlobus_Gutenberg',
|
1057 |
-
'builder_page' => false,
|
1058 |
-
'pagenow' => $pagenow,
|
1059 |
-
'post_type' => empty( $post_type ) ? '' : $post_type,
|
1060 |
-
'message' => $message,
|
1061 |
-
);
|
1062 |
-
|
1063 |
-
if ( $load_gutenberg ) {
|
1064 |
-
$_attrs['builder_page'] = true;
|
1065 |
-
}
|
1066 |
-
|
1067 |
-
$attrs = self::get_attrs( $_attrs );
|
1068 |
-
|
1069 |
-
return $attrs;
|
1070 |
-
|
1071 |
-
}
|
1072 |
-
|
1073 |
-
return $load_gutenberg;
|
1074 |
-
}
|
1075 |
-
|
1076 |
-
/**
|
1077 |
-
* @since 1.9.30
|
1078 |
-
*
|
1079 |
-
* @param bool $load_gutenberg
|
1080 |
-
* @param string $post_type @since 2.1.6
|
1081 |
-
*
|
1082 |
-
* @return bool
|
1083 |
-
*/
|
1084 |
-
protected static function get_3rd_party_status_for_gutenberg( $load_gutenberg, $post_type = '' ) {
|
1085 |
-
|
1086 |
-
if ( '' === $post_type ) {
|
1087 |
-
$post_type = self::get_post_type_2();
|
1088 |
-
}
|
1089 |
-
|
1090 |
-
if ( defined( 'WC_PLUGIN_FILE' ) ) {
|
1091 |
-
/**
|
1092 |
-
* WooCommerce.
|
1093 |
-
*/
|
1094 |
-
if ( 'product' === $post_type ) {
|
1095 |
-
|
1096 |
-
$load_gutenberg = false;
|
1097 |
-
|
1098 |
-
} elseif ( '' === $post_type ) {
|
1099 |
-
|
1100 |
-
if ( ! empty( $_POST['post_type'] ) ) { // phpcs:ignore WordPress.CSRF.NonceVerification
|
1101 |
-
$post_type = $_POST['post_type']; // phpcs:ignore WordPress.CSRF.NonceVerification
|
1102 |
-
}
|
1103 |
-
|
1104 |
-
if ( empty( $post_type ) && ! empty( $_GET['post'] ) ) { // phpcs:ignore WordPress.CSRF.NonceVerification
|
1105 |
-
$post_type = self::get_post_type( $_GET['post'] ); // phpcs:ignore WordPress.CSRF.NonceVerification
|
1106 |
-
}
|
1107 |
-
|
1108 |
-
if ( empty( $post_type ) && ! empty( $_GET['post_type'] ) ) { // phpcs:ignore WordPress.CSRF.NonceVerification
|
1109 |
-
$post_type = $_GET['post_type']; // phpcs:ignore WordPress.CSRF.NonceVerification
|
1110 |
-
}
|
1111 |
-
|
1112 |
-
if ( 'product' === $post_type ) {
|
1113 |
-
$load_gutenberg = false;
|
1114 |
-
}
|
1115 |
-
}
|
1116 |
-
}
|
1117 |
-
|
1118 |
-
/**
|
1119 |
-
* Elementor.
|
1120 |
-
*
|
1121 |
-
* @since 2.4.11
|
1122 |
-
* @see elementor\modules\gutenberg\module.php
|
1123 |
-
*/
|
1124 |
-
if ( defined( 'ELEMENTOR_VERSION' ) ) {
|
1125 |
-
$gutenberg_module = new Gutenberg\Module();
|
1126 |
-
if ( $gutenberg_module->is_active() ) {
|
1127 |
-
if ( isset($_GET['action']) && 'elementor' == $_GET['action'] ) {
|
1128 |
-
/**
|
1129 |
-
* Prevent init block editor support when elementor edit page is loading.
|
1130 |
-
*/
|
1131 |
-
return false;
|
1132 |
-
}
|
1133 |
-
}
|
1134 |
-
}
|
1135 |
-
|
1136 |
-
if ( function_exists( 'classic_editor_settings' ) ) {
|
1137 |
-
/**
|
1138 |
-
* @see ver.0.5 https://wordpress.org/plugins/classic-editor/#developers
|
1139 |
-
*/
|
1140 |
-
if ( isset( $_GET['classic-editor'] ) ) { // phpcs:ignore WordPress.CSRF.NonceVerification
|
1141 |
-
/**
|
1142 |
-
* Option 'Use the Block editor by default and include optional links back to the Classic editor' was selected.
|
1143 |
-
*/
|
1144 |
-
$load_gutenberg = false;
|
1145 |
-
} else {
|
1146 |
-
$classic_editor_replace = get_option( 'classic-editor-replace' );
|
1147 |
-
if ( empty( $classic_editor_replace ) || 'replace' === $classic_editor_replace ) {
|
1148 |
-
$load_gutenberg = false;
|
1149 |
-
}
|
1150 |
-
}
|
1151 |
-
}
|
1152 |
-
|
1153 |
-
if ( class_exists( 'Classic_Editor' ) ) {
|
1154 |
-
/** @global string $wp_version */
|
1155 |
-
global $wp_version;
|
1156 |
-
|
1157 |
-
if ( version_compare( $wp_version, '4.9.99', '>' ) ) { // phpcs:ignore Generic.CodeAnalysis.EmptyStatement
|
1158 |
-
// continue
|
1159 |
-
} else {
|
1160 |
-
/**
|
1161 |
-
* Incorrect work with WP 4.9
|
1162 |
-
*
|
1163 |
-
* @see https://wordpress.org/support/topic/does-nor-work-anymore-since-v-1-0/
|
1164 |
-
*/
|
1165 |
-
return $load_gutenberg;
|
1166 |
-
}
|
1167 |
-
|
1168 |
-
/**
|
1169 |
-
* ver.1.0 https://wordpress.org/plugins/classic-editor/
|
1170 |
-
*/
|
1171 |
-
if ( isset( $_GET['classic-editor'] ) ) { // phpcs:ignore WordPress.CSRF.NonceVerification
|
1172 |
-
/**
|
1173 |
-
* @todo
|
1174 |
-
* 1. set 'classic-editor-remember' as 'block-editor'.
|
1175 |
-
* 2. load your-site/wp-admin/post.php?post=POST_ID&action=edit&classic-editor.
|
1176 |
-
* 3. incorrect loading post page.
|
1177 |
-
*/
|
1178 |
-
//update_post_meta( POST_ID, 'classic-editor-remember', 'classic-editor' );
|
1179 |
-
|
1180 |
-
$load_gutenberg = false;
|
1181 |
-
} elseif ( isset( $_GET['classic-editor__forget'] ) ) { // phpcs:ignore WordPress.CSRF.NonceVerification
|
1182 |
-
$load_gutenberg = true;
|
1183 |
-
} else {
|
1184 |
-
$post_id = isset( $_GET['post'] ) ? (int) $_GET['post'] : 0; // phpcs:ignore WordPress.CSRF.NonceVerification
|
1185 |
-
|
1186 |
-
if ( 0 === $post_id ) {
|
1187 |
-
/**
|
1188 |
-
* We need to check $_POST when the saving post in 'classic-editor' mode.
|
1189 |
-
* As option we can use $_POST['classic-editor'], but now get 'classic-editor-remember' meta.
|
1190 |
-
*/
|
1191 |
-
$post_id = isset( $_POST['post_ID'] ) ? (int) $_POST['post_ID'] : 0; // phpcs:ignore WordPress.CSRF.NonceVerification
|
1192 |
-
}
|
1193 |
-
|
1194 |
-
if ( 0 !== $post_id ) {
|
1195 |
-
$classic_editor_remember = get_post_meta( $post_id, 'classic-editor-remember', true );
|
1196 |
-
if ( 'classic-editor' === $classic_editor_remember ) {
|
1197 |
-
$load_gutenberg = false;
|
1198 |
-
|
1199 |
-
return $load_gutenberg;
|
1200 |
-
} elseif ( 'block-editor' === $classic_editor_remember ) {
|
1201 |
-
$load_gutenberg = true;
|
1202 |
-
|
1203 |
-
return $load_gutenberg;
|
1204 |
-
}
|
1205 |
-
//else {
|
1206 |
-
/**
|
1207 |
-
* @todo meta doesn't exist?
|
1208 |
-
*/
|
1209 |
-
//}
|
1210 |
-
}
|
1211 |
-
|
1212 |
-
$classic_editor_replace = get_option( 'classic-editor-replace' );
|
1213 |
-
if ( empty( $classic_editor_replace ) || 'classic' === $classic_editor_replace ) {
|
1214 |
-
$load_gutenberg = false;
|
1215 |
-
} elseif ( 'block' === $classic_editor_replace ) {
|
1216 |
-
$load_gutenberg = true;
|
1217 |
-
} else {
|
1218 |
-
$load_gutenberg = false;
|
1219 |
-
|
1220 |
-
}
|
1221 |
-
}
|
1222 |
-
}
|
1223 |
-
|
1224 |
-
return $load_gutenberg;
|
1225 |
-
}
|
1226 |
-
|
1227 |
-
/**
|
1228 |
-
* Check for gutenberg ajax.
|
1229 |
-
*/
|
1230 |
-
protected static function is_gutenberg_ajax() {
|
1231 |
-
$result = false;
|
1232 |
-
|
1233 |
-
// phpcs:ignore WordPress.Security.NonceVerification.Missing
|
1234 |
-
if ( empty( $_POST ) || empty( $_POST['action'] ) ) {
|
1235 |
-
return $result;
|
1236 |
-
}
|
1237 |
-
|
1238 |
-
$actions = array( 'edit', 'editpost' );
|
1239 |
-
if ( in_array( $_POST['action'], $actions, true ) ) { // phpcs:ignore WordPress.CSRF.NonceVerification
|
1240 |
-
if ( array_key_exists( 'gutenberg_meta_boxes', $_POST ) ) { // phpcs:ignore WordPress.CSRF.NonceVerification
|
1241 |
-
$result = true;
|
1242 |
-
}
|
1243 |
-
}
|
1244 |
-
|
1245 |
-
return $result;
|
1246 |
-
}
|
1247 |
-
|
1248 |
-
/**
|
1249 |
-
* Check for Yoast SEO.
|
1250 |
-
*
|
1251 |
-
* @since 1.9.17
|
1252 |
-
*/
|
1253 |
-
protected static function is_yoast_seo() {
|
1254 |
-
|
1255 |
-
if ( defined( 'WPSEO_VERSION' ) ) {
|
1256 |
-
|
1257 |
-
/** @global string $pagenow */
|
1258 |
-
global $pagenow;
|
1259 |
-
|
1260 |
-
$wpseo_titles = get_option( 'wpseo_titles' );
|
1261 |
-
|
1262 |
-
if ( 'post.php' === $pagenow ) {
|
1263 |
-
|
1264 |
-
$post_type = is_null(self::$post_type) ? '' : self::$post_type;
|
1265 |
-
|
1266 |
-
if ( empty( $post_type ) && ! empty( $_GET['post'] ) ) { // phpcs:ignore WordPress.CSRF.NonceVerification
|
1267 |
-
$post_type = self::get_post_type( $_GET['post'] ); // phpcs:ignore WordPress.CSRF.NonceVerification
|
1268 |
-
}
|
1269 |
-
|
1270 |
-
if ( empty( $post_type ) ) {
|
1271 |
-
/**
|
1272 |
-
* Check $_REQUEST when post is updated.
|
1273 |
-
*/
|
1274 |
-
if ( ! empty( $_REQUEST['post_type'] ) ) { // phpcs:ignore WordPress.CSRF.NonceVerification
|
1275 |
-
$post_type = $_REQUEST['post_type']; // phpcs:ignore WordPress.CSRF.NonceVerification
|
1276 |
-
}
|
1277 |
-
}
|
1278 |
-
|
1279 |
-
$_attrs = array(
|
1280 |
-
'id' => 'yoast_seo',
|
1281 |
-
'version' => WPSEO_VERSION,
|
1282 |
-
'class' => 'WPGlobus_Yoast_SEO',
|
1283 |
-
'builder_page' => false,
|
1284 |
-
'post_type' => empty( $post_type ) ? '' : $post_type,
|
1285 |
-
);
|
1286 |
-
|
1287 |
-
if ( empty( $post_type ) ) {
|
1288 |
-
/**
|
1289 |
-
* @since 1.9.17 detect builder page using $pagenow.
|
1290 |
-
*/
|
1291 |
-
$_attrs['builder_page'] = true;
|
1292 |
-
} else {
|
1293 |
-
|
1294 |
-
if ( ! array_key_exists( 'display-metabox-pt-' . $post_type, $wpseo_titles ) ) {
|
1295 |
-
/**
|
1296 |
-
* @since 2.2.25
|
1297 |
-
*/
|
1298 |
-
$_attrs['builder_page'] = true;
|
1299 |
-
} elseif ( 0 === (int) $wpseo_titles[ 'display-metabox-pt-' . $post_type ] ) {
|
1300 |
-
$_attrs['builder_page'] = false;
|
1301 |
-
} else {
|
1302 |
-
$_attrs['builder_page'] = true;
|
1303 |
-
}
|
1304 |
-
|
1305 |
-
}
|
1306 |
-
|
1307 |
-
$attrs = self::get_attrs( $_attrs );
|
1308 |
-
|
1309 |
-
return $attrs;
|
1310 |
-
|
1311 |
-
} elseif ( 'term.php' === $pagenow ) {
|
1312 |
-
|
1313 |
-
$tax = empty( $_GET['taxonomy'] ) ? false : sanitize_text_field( wp_unslash( $_GET['taxonomy'] ) ); // phpcs:ignore WordPress.CSRF.NonceVerification
|
1314 |
-
|
1315 |
-
if ( $tax ) {
|
1316 |
-
|
1317 |
-
$_attrs = array(
|
1318 |
-
'id' => 'yoast_seo',
|
1319 |
-
'version' => WPSEO_VERSION,
|
1320 |
-
'class' => 'WPGlobus_Yoast_SEO',
|
1321 |
-
'builder_page' => false,
|
1322 |
-
'post_type' => '',
|
1323 |
-
'taxonomy' => $tax,
|
1324 |
-
);
|
1325 |
-
|
1326 |
-
self::$admin_attrs = array(
|
1327 |
-
'multilingualFields' => array( 'name', 'description_ifr' ),
|
1328 |
-
'translatableClass' => 'wpglobus-translatable',
|
1329 |
-
);
|
1330 |
-
|
1331 |
-
if ( isset( $wpseo_titles[ 'display-metabox-tax-' . $tax ] ) && 0 === (int) $wpseo_titles[ 'display-metabox-tax-' . $tax ] ) {
|
1332 |
-
$_attrs['builder_page'] = false;
|
1333 |
-
} else {
|
1334 |
-
$_attrs['builder_page'] = true;
|
1335 |
-
}
|
1336 |
-
|
1337 |
-
$attrs = self::get_attrs( $_attrs );
|
1338 |
-
|
1339 |
-
return $attrs;
|
1340 |
-
}
|
1341 |
-
} elseif ( 'edit-tags.php' === $pagenow ) {
|
1342 |
-
/**
|
1343 |
-
* Case when Update button was clicked on term.php page .
|
1344 |
-
*/
|
1345 |
-
// phpcs:ignore WordPress.Security.NonceVerification.Missing
|
1346 |
-
$tax = empty( $_POST['taxonomy'] ) ? false : sanitize_text_field( wp_unslash( $_POST['taxonomy'] ) );
|
1347 |
-
|
1348 |
-
if ( $tax ) {
|
1349 |
-
|
1350 |
-
$_attrs = array(
|
1351 |
-
'id' => 'yoast_seo',
|
1352 |
-
'version' => WPSEO_VERSION,
|
1353 |
-
'class' => 'WPGlobus_Yoast_SEO',
|
1354 |
-
'builder_page' => false,
|
1355 |
-
'post_type' => '',
|
1356 |
-
'taxonomy' => $tax,
|
1357 |
-
);
|
1358 |
-
|
1359 |
-
self::$admin_attrs = array(
|
1360 |
-
'multilingualFields' => array( 'name', 'description_ifr' ),
|
1361 |
-
'translatableClass' => 'wpglobus-translatable',
|
1362 |
-
);
|
1363 |
-
|
1364 |
-
if ( isset( $_POST['action'] ) && 'editedtag' === $_POST['action'] ) { // phpcs:ignore WordPress.CSRF.NonceVerification
|
1365 |
-
$_attrs['builder_page'] = true;
|
1366 |
-
}
|
1367 |
-
|
1368 |
-
$attrs = self::get_attrs( $_attrs );
|
1369 |
-
|
1370 |
-
return $attrs;
|
1371 |
-
}
|
1372 |
-
}
|
1373 |
-
}
|
1374 |
-
|
1375 |
-
return false;
|
1376 |
-
|
1377 |
-
}
|
1378 |
-
|
1379 |
-
/**
|
1380 |
-
* Check for Pods – Custom Content Types and Fields.
|
1381 |
-
*
|
1382 |
-
* @since 2.3.0
|
1383 |
-
*/
|
1384 |
-
protected static function is_pods() {
|
1385 |
-
|
1386 |
-
if ( ! defined( 'PODS_VERSION' ) ) {
|
1387 |
-
return false;
|
1388 |
-
}
|
1389 |
-
|
1390 |
-
$post_type = self::get_post_type_2();
|
1391 |
-
|
1392 |
-
$_attrs = array(
|
1393 |
-
'id' => 'pods',
|
1394 |
-
'version' => PODS_VERSION,
|
1395 |
-
'class' => 'WPGlobus_Pods',
|
1396 |
-
'builder_page' => false,
|
1397 |
-
'post_type' => empty( $post_type ) ? '' : $post_type,
|
1398 |
-
);
|
1399 |
-
|
1400 |
-
require_once 'pods/class-wpglobus-builder-pods.php';
|
1401 |
-
$_attrs = WPGlobus_Builder_Pods::get_attrs( self::get_attrs( $_attrs ) );
|
1402 |
-
|
1403 |
-
if ( ! $_attrs ) {
|
1404 |
-
return false;
|
1405 |
-
}
|
1406 |
-
|
1407 |
-
return $_attrs;
|
1408 |
-
}
|
1409 |
-
|
1410 |
-
/**
|
1411 |
-
* Check for Rank Math SEO Plugin.
|
1412 |
-
*
|
1413 |
-
* @since 2.4.3
|
1414 |
-
*/
|
1415 |
-
protected static function is_rank_math_seo() {
|
1416 |
-
|
1417 |
-
if ( ! defined( 'RANK_MATH_VERSION' ) ) {
|
1418 |
-
return false;
|
1419 |
-
}
|
1420 |
-
|
1421 |
-
$post_type = self::get_post_type_2();
|
1422 |
-
|
1423 |
-
$_attrs = array(
|
1424 |
-
'id' => 'rank_math_seo',
|
1425 |
-
'version' => RANK_MATH_VERSION,
|
1426 |
-
'class' => 'WPGlobus_RankMathSEO',
|
1427 |
-
'builder_page' => false,
|
1428 |
-
'post_type' => empty( $post_type ) ? '' : $post_type,
|
1429 |
-
'taxonomy' => ''
|
1430 |
-
);
|
1431 |
-
|
1432 |
-
require_once 'rank_math_seo/class-wpglobus-builder-rank_math_seo.php';
|
1433 |
-
$_attrs = WPGlobus_Builder_RankMathSEO::get_attrs( self::get_attrs( $_attrs ) );
|
1434 |
-
|
1435 |
-
if ( ! $_attrs ) {
|
1436 |
-
return false;
|
1437 |
-
}
|
1438 |
-
|
1439 |
-
return $_attrs;
|
1440 |
-
}
|
1441 |
-
|
1442 |
-
/**
|
1443 |
-
* Get attributes.
|
1444 |
-
*
|
1445 |
-
* @param array $attrs
|
1446 |
-
*
|
1447 |
-
* @return array
|
1448 |
-
*/
|
1449 |
-
protected static function get_attrs( $attrs ) {
|
1450 |
-
$_attrs = array_merge( self::$attrs, $attrs );
|
1451 |
-
// phpcs:ignore Generic.CodeAnalysis.EmptyStatement.DetectedIf
|
1452 |
-
if ( isset( $_attrs['is_admin'] ) && ! $_attrs['is_admin'] ) {
|
1453 |
-
// do nothing.
|
1454 |
-
} else {
|
1455 |
-
$_attrs = array_merge( $_attrs, self::$admin_attrs );
|
1456 |
-
}
|
1457 |
-
|
1458 |
-
if ( empty( $_attrs['post_id'] ) ) {
|
1459 |
-
if ( isset( $_GET['post'] ) && is_string( $_GET['post'] ) ) { // phpcs:ignore WordPress.CSRF.NonceVerification
|
1460 |
-
/**
|
1461 |
-
* With bulk action (trash, untrash) we get $_GET['post'] as array.
|
1462 |
-
*
|
1463 |
-
* @since WPGlobus 2.0 we are working with single post only.
|
1464 |
-
*/
|
1465 |
-
// phpcs:ignore WordPress.Security.NonceVerification.Recommended
|
1466 |
-
$_attrs['post_id'] = sanitize_text_field( $_GET['post'] );
|
1467 |
-
// phpcs:ignore WordPress.Security.NonceVerification.Recommended
|
1468 |
-
} elseif ( isset( $_REQUEST['post_ID'] ) && is_string( $_REQUEST['post_ID'] ) ) {
|
1469 |
-
// phpcs:ignore WordPress.Security.NonceVerification.Recommended
|
1470 |
-
$_attrs['post_id'] = sanitize_text_field( $_REQUEST['post_ID'] );
|
1471 |
-
// } else {
|
1472 |
-
// @todo Check additional ways to get post ID.
|
1473 |
-
}
|
1474 |
-
}
|
1475 |
-
|
1476 |
-
// @todo may be disable post type here.
|
1477 |
-
// $_attrs['builder_page'] = false;
|
1478 |
-
return $_attrs;
|
1479 |
-
}
|
1480 |
-
|
1481 |
-
/**
|
1482 |
-
* Get post type.
|
1483 |
-
*
|
1484 |
-
* @param string $id
|
1485 |
-
*
|
1486 |
-
* @return null|string
|
1487 |
-
*/
|
1488 |
-
protected static function get_post_type( $id = '' ) {
|
1489 |
-
|
1490 |
-
/**
|
1491 |
-
* Get post type.
|
1492 |
-
*
|
1493 |
-
* @since 2.2.11
|
1494 |
-
*/
|
1495 |
-
if ( ! is_null( self::$post_type ) ) {
|
1496 |
-
return self::$post_type;
|
1497 |
-
}
|
1498 |
-
|
1499 |
-
/**
|
1500 |
-
* @since 2.2.11
|
1501 |
-
* @W.I.P to use get_post_type_2()
|
1502 |
-
*/
|
1503 |
-
if ( 0 === (int) $id ) {
|
1504 |
-
return null;
|
1505 |
-
}
|
1506 |
-
|
1507 |
-
/** @global wpdb $wpdb */
|
1508 |
-
global $wpdb;
|
1509 |
-
|
1510 |
-
$post_type = $wpdb->get_var( $wpdb->prepare( "SELECT post_type FROM $wpdb->posts WHERE ID = %d", $id ) );
|
1511 |
-
|
1512 |
-
return $post_type;
|
1513 |
-
}
|
1514 |
-
|
1515 |
-
/**
|
1516 |
-
* Get post type 2.
|
1517 |
-
*
|
1518 |
-
* @since 2.2.11
|
1519 |
-
*/
|
1520 |
-
protected static function get_post_type_2() {
|
1521 |
-
|
1522 |
-
if ( ! is_null( self::$post_type ) ) {
|
1523 |
-
return self::$post_type;
|
1524 |
-
}
|
1525 |
-
|
1526 |
-
/** @global string $pagenow */
|
1527 |
-
global $pagenow;
|
1528 |
-
|
1529 |
-
$post_type = '';
|
1530 |
-
$post_id = '';
|
1531 |
-
|
1532 |
-
switch ($pagenow) {
|
1533 |
-
case 'media-new.php' :
|
1534 |
-
$post_type = 'attachment';
|
1535 |
-
break;
|
1536 |
-
case 'post-new.php':
|
1537 |
-
if ( isset( $_GET['post_type'] ) ) {
|
1538 |
-
// phpcs:ignore WordPress.Security.NonceVerification.Recommended
|
1539 |
-
$post_type = sanitize_text_field( $_GET['post_type'] );
|
1540 |
-
} else {
|
1541 |
-
$post_type = 'post';
|
1542 |
-
}
|
1543 |
-
break;
|
1544 |
-
/**
|
1545 |
-
* @W.I.P @since 2.2.14
|
1546 |
-
case 'admin-ajax.php' :
|
1547 |
-
$post_type = '';
|
1548 |
-
break;
|
1549 |
-
// */
|
1550 |
-
default:
|
1551 |
-
// post.php page.
|
1552 |
-
if ( isset( $_GET['post'] ) ) { // phpcs:ignore WordPress.CSRF.NonceVerification
|
1553 |
-
$post_id = $_GET['post']; // phpcs:ignore WordPress.CSRF.NonceVerification
|
1554 |
-
} else if ( isset( $_GET['post_id'] ) ) { // phpcs:ignore WordPress.CSRF.NonceVerification
|
1555 |
-
/**
|
1556 |
-
* For example when loading WPBakery PB's front editor.
|
1557 |
-
* @since 2.3.7
|
1558 |
-
*/
|
1559 |
-
$post_id = $_GET['post_id']; // phpcs:ignore WordPress.CSRF.NonceVerification
|
1560 |
-
} else if ( isset( $_REQUEST['post_ID'] ) ) { // phpcs:ignore WordPress.CSRF.NonceVerification
|
1561 |
-
/**
|
1562 |
-
* Case when Update button was clicked.
|
1563 |
-
*/
|
1564 |
-
$post_id = $_REQUEST['post_ID']; // phpcs:ignore WordPress.CSRF.NonceVerification
|
1565 |
-
}
|
1566 |
-
break;
|
1567 |
-
}
|
1568 |
-
|
1569 |
-
if ( ! empty($post_type) ) {
|
1570 |
-
self::$post_type = $post_type;
|
1571 |
-
return self::$post_type;
|
1572 |
-
}
|
1573 |
-
|
1574 |
-
if ( 0 === (int) $post_id ) {
|
1575 |
-
return false;
|
1576 |
-
}
|
1577 |
-
|
1578 |
-
/** @global wpdb $wpdb */
|
1579 |
-
global $wpdb;
|
1580 |
-
|
1581 |
-
self::$post_type = $wpdb->get_var( $wpdb->prepare( "SELECT post_type FROM $wpdb->posts WHERE ID = %d", $post_id ) );
|
1582 |
-
|
1583 |
-
return self::$post_type;
|
1584 |
-
}
|
1585 |
-
|
1586 |
-
/**
|
1587 |
-
* Check for post type supports.
|
1588 |
-
*
|
1589 |
-
* @since 2.2.24
|
1590 |
-
* @since 2.2.34 Fix with empty `show_in_rest`.
|
1591 |
-
*
|
1592 |
-
* @return bool
|
1593 |
-
*/
|
1594 |
-
protected static function use_block_editor_for_post_type($post_type) {
|
1595 |
-
|
1596 |
-
$_opts = get_option(self::$init_attrs['options']['register_post_types']);
|
1597 |
-
|
1598 |
-
if ( empty($_opts[$post_type]) ) {
|
1599 |
-
/**
|
1600 |
-
* We don't have info about post type.
|
1601 |
-
*/
|
1602 |
-
return true;
|
1603 |
-
}
|
1604 |
-
|
1605 |
-
if ( empty($_opts[$post_type]['features']['editor']) || (int) $_opts[$post_type]['features']['editor'] == 0 ) {
|
1606 |
-
/**
|
1607 |
-
* Don't start Block Editor support.
|
1608 |
-
* @see `use_block_editor_for_post_type()` in wp-admin\includes\post.php
|
1609 |
-
*/
|
1610 |
-
return false;
|
1611 |
-
}
|
1612 |
-
|
1613 |
-
if ( empty($_opts[$post_type]['show_in_rest']) || (int) $_opts[$post_type]['show_in_rest'] == 0 ) {
|
1614 |
-
/**
|
1615 |
-
* Don't start Block Editor support.
|
1616 |
-
* @see `use_block_editor_for_post_type()` in wp-admin\includes\post.php
|
1617 |
-
*/
|
1618 |
-
return false;
|
1619 |
-
}
|
1620 |
-
|
1621 |
-
return true;
|
1622 |
-
}
|
1623 |
-
}
|
1624 |
-
|
1625 |
-
endif;
|
1626 |
-
|
1627 |
-
# --- EOF
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/includes/builders/class-wpglobus-config-builder.php
DELETED
@@ -1,563 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* File: class-wpglobus-config-builder.php
|
4 |
-
*
|
5 |
-
* @package WPGlobus\Builders
|
6 |
-
* @author Alex Gor(alexgff)
|
7 |
-
*/
|
8 |
-
|
9 |
-
if ( ! class_exists( 'WPGlobus_Config_Builder' ) ) :
|
10 |
-
|
11 |
-
class WPGlobus_Config_Builder {
|
12 |
-
|
13 |
-
/**
|
14 |
-
* @var string|false
|
15 |
-
*/
|
16 |
-
protected $id = false;
|
17 |
-
|
18 |
-
protected $is_run = false;
|
19 |
-
|
20 |
-
/**
|
21 |
-
* May be to use "wpglobus_language" meta (reserved in WPGlobus).
|
22 |
-
*
|
23 |
-
* @todo remove after test
|
24 |
-
*/
|
25 |
-
//protected $language_meta_key = '_wpglobus_builder_language';
|
26 |
-
|
27 |
-
protected $language_cookie = 'wpglobus-builder-language';
|
28 |
-
|
29 |
-
protected $attrs = array();
|
30 |
-
|
31 |
-
protected $__class = null;
|
32 |
-
|
33 |
-
protected $__builder_page = false;
|
34 |
-
|
35 |
-
protected $__is_admin = false;
|
36 |
-
|
37 |
-
protected $language = false;
|
38 |
-
|
39 |
-
protected $default_language;
|
40 |
-
|
41 |
-
/**
|
42 |
-
* @since 2.2.11
|
43 |
-
*/
|
44 |
-
public $post_types = array();
|
45 |
-
|
46 |
-
/**
|
47 |
-
* Constructor.
|
48 |
-
*
|
49 |
-
* @param bool $init
|
50 |
-
* @param array $init_attrs
|
51 |
-
*/
|
52 |
-
public function __construct( $init = true, $init_attrs = array() ) {
|
53 |
-
|
54 |
-
if ( isset( $init_attrs['default_language'] ) ) {
|
55 |
-
$this->default_language = $init_attrs['default_language'];
|
56 |
-
}
|
57 |
-
|
58 |
-
/**
|
59 |
-
* @since 2.2.11
|
60 |
-
*/
|
61 |
-
if ( isset( $init_attrs['post_types'] ) ) {
|
62 |
-
$this->post_types = $init_attrs['post_types'];
|
63 |
-
}
|
64 |
-
|
65 |
-
if ( $init ) {
|
66 |
-
|
67 |
-
require_once dirname( __FILE__ ) . '/class-wpglobus-builders.php';
|
68 |
-
/**
|
69 |
-
* @since 2.2.24 added $init_attrs.
|
70 |
-
*/
|
71 |
-
$builder = WPGlobus_Builders::get(true, $init_attrs);
|
72 |
-
|
73 |
-
$this->id = $builder['id'];
|
74 |
-
unset( $builder['id'] );
|
75 |
-
|
76 |
-
if ( $this->id ) {
|
77 |
-
|
78 |
-
$this->attrs['version'] = null;
|
79 |
-
|
80 |
-
foreach ( $builder as $key => $value ) {
|
81 |
-
if ( 'class' === $key ) {
|
82 |
-
$this->__class = $value;
|
83 |
-
} elseif ( 'builder_page' === $key ) {
|
84 |
-
$this->__builder_page = $value;
|
85 |
-
} elseif ( 'is_admin' === $key ) {
|
86 |
-
$this->__is_admin = $value;
|
87 |
-
}
|
88 |
-
$this->attrs[ $key ] = $value;
|
89 |
-
}
|
90 |
-
|
91 |
-
$this->language = $this->get_language();
|
92 |
-
$this->attrs['language'] = $this->language;
|
93 |
-
|
94 |
-
} else {
|
95 |
-
unset( $this->attrs );
|
96 |
-
}
|
97 |
-
} else {
|
98 |
-
|
99 |
-
require_once dirname( __FILE__ ) . '/class-wpglobus-builders.php';
|
100 |
-
/** @noinspection PhpUnusedLocalVariableInspection */
|
101 |
-
$builder = WPGlobus_Builders::get( false );
|
102 |
-
|
103 |
-
}
|
104 |
-
|
105 |
-
}
|
106 |
-
|
107 |
-
/**
|
108 |
-
* Try to run builder.
|
109 |
-
*
|
110 |
-
* @param string $builder
|
111 |
-
* @param bool $set_run_flag
|
112 |
-
*
|
113 |
-
* @return bool
|
114 |
-
*/
|
115 |
-
public function maybe_run( $builder = '', $set_run_flag = false ) {
|
116 |
-
|
117 |
-
//if ( defined('DOING_AJAX') && DOING_AJAX ) {
|
118 |
-
//return false;
|
119 |
-
//}
|
120 |
-
|
121 |
-
if ( ! $this->id ) {
|
122 |
-
return false;
|
123 |
-
}
|
124 |
-
|
125 |
-
$check_run_flag = true;
|
126 |
-
|
127 |
-
if ( is_bool( $builder ) ) {
|
128 |
-
// phpcs:ignore Generic.CodeAnalysis.EmptyStatement.DetectedIF
|
129 |
-
if ( $builder ) {
|
130 |
-
// @todo
|
131 |
-
} else {
|
132 |
-
$check_run_flag = false;
|
133 |
-
$set_run_flag = false;
|
134 |
-
}
|
135 |
-
}
|
136 |
-
|
137 |
-
if ( $check_run_flag && $this->is_run ) {
|
138 |
-
/**
|
139 |
-
* Don't run again.
|
140 |
-
*/
|
141 |
-
return false;
|
142 |
-
}
|
143 |
-
|
144 |
-
if ( '' === $builder ) {
|
145 |
-
$builder = $this->id;
|
146 |
-
}
|
147 |
-
|
148 |
-
if ( ! $builder ) {
|
149 |
-
return false;
|
150 |
-
}
|
151 |
-
|
152 |
-
if ( $builder !== $this->id ) {
|
153 |
-
return false;
|
154 |
-
}
|
155 |
-
|
156 |
-
if ( $this->is_front() ) {
|
157 |
-
if ( $set_run_flag ) {
|
158 |
-
$this->is_run = true;
|
159 |
-
}
|
160 |
-
|
161 |
-
return true;
|
162 |
-
}
|
163 |
-
|
164 |
-
if ( $this->is_builder_page() ) {
|
165 |
-
if ( $set_run_flag ) {
|
166 |
-
$this->is_run = true;
|
167 |
-
}
|
168 |
-
|
169 |
-
return true;
|
170 |
-
}
|
171 |
-
|
172 |
-
return false;
|
173 |
-
|
174 |
-
}
|
175 |
-
|
176 |
-
/**
|
177 |
-
* Get attribute.
|
178 |
-
*
|
179 |
-
* @param string $attr
|
180 |
-
*
|
181 |
-
* @return bool|mixed
|
182 |
-
*/
|
183 |
-
public function get( $attr = 'id' ) {
|
184 |
-
if ( ! $this->id ) {
|
185 |
-
return false;
|
186 |
-
}
|
187 |
-
if ( 'id' === $attr ) {
|
188 |
-
return $this->get_id();
|
189 |
-
}
|
190 |
-
if ( ! empty( $this->attrs[ $attr ] ) ) {
|
191 |
-
return $this->attrs[ $attr ];
|
192 |
-
}
|
193 |
-
|
194 |
-
return false;
|
195 |
-
}
|
196 |
-
|
197 |
-
/**
|
198 |
-
* Set builder language.
|
199 |
-
*
|
200 |
-
* @param string $language
|
201 |
-
*/
|
202 |
-
public function set_language( $language = '' ) {
|
203 |
-
if ( ! empty( $language ) ) {
|
204 |
-
$this->language = $language;
|
205 |
-
$this->attrs['language'] = $this->language;
|
206 |
-
}
|
207 |
-
}
|
208 |
-
|
209 |
-
/**
|
210 |
-
* Get builder language.
|
211 |
-
*
|
212 |
-
* @param int|string $post_id
|
213 |
-
*
|
214 |
-
* @return array|bool|mixed|string
|
215 |
-
*/
|
216 |
-
public function get_language( $post_id = '' ) {
|
217 |
-
|
218 |
-
if ( ! $this->id ) {
|
219 |
-
return false;
|
220 |
-
}
|
221 |
-
|
222 |
-
if ( ! $this->is_builder_page() ) {
|
223 |
-
/**
|
224 |
-
* @todo maybe need to check the matching of $this->language and WPGlobus::Config()->language.
|
225 |
-
* @see Set language for builder in wpglobus\includes\class-wpglobus-config.php
|
226 |
-
*/
|
227 |
-
return $this->language;
|
228 |
-
}
|
229 |
-
|
230 |
-
if ( $this->language ) {
|
231 |
-
return $this->language;
|
232 |
-
}
|
233 |
-
|
234 |
-
/** @global string $pagenow */
|
235 |
-
global $pagenow;
|
236 |
-
|
237 |
-
if ( 'post-new.php' === $pagenow ) {
|
238 |
-
/**
|
239 |
-
* Correctly define language for the 'post-new.php' page.
|
240 |
-
*
|
241 |
-
* @since 2.1.1
|
242 |
-
*/
|
243 |
-
$this->language = $this->default_language;
|
244 |
-
|
245 |
-
return $this->language;
|
246 |
-
}
|
247 |
-
|
248 |
-
$post_id = (int) $post_id;
|
249 |
-
if ( ! $post_id ) {
|
250 |
-
// Post ID not passed..getting from global Post.
|
251 |
-
$global_post = get_post();
|
252 |
-
if ( $global_post instanceof WP_Post ) {
|
253 |
-
$post_id = $global_post->ID;
|
254 |
-
}
|
255 |
-
}
|
256 |
-
|
257 |
-
$language = false;
|
258 |
-
if ( $post_id ) {
|
259 |
-
$language = get_post_meta( $post_id, $this->get_language_meta_key(), true );
|
260 |
-
}
|
261 |
-
|
262 |
-
if ( ! $language ) {
|
263 |
-
|
264 |
-
if ( empty( $_REQUEST ) ) { // phpcs:ignore WordPress.CSRF.NonceVerification
|
265 |
-
|
266 |
-
if ( empty( $_SERVER['HTTP_REFERER'] ) ) {
|
267 |
-
/**
|
268 |
-
* @todo front-end? check it.
|
269 |
-
*/
|
270 |
-
return false;
|
271 |
-
|
272 |
-
} elseif ( false !== strpos( $_SERVER['HTTP_REFERER'], 'language=' ) ) {
|
273 |
-
$language = explode( 'language=', $_SERVER['HTTP_REFERER'] );
|
274 |
-
$language = $language[1];
|
275 |
-
}
|
276 |
-
} else {
|
277 |
-
|
278 |
-
if ( ! empty( $_REQUEST['language'] ) ) { // phpcs:ignore WordPress.CSRF.NonceVerification
|
279 |
-
$language = sanitize_text_field( $_REQUEST['language'] );
|
280 |
-
}
|
281 |
-
|
282 |
-
if ( isset( $_REQUEST[ WPGlobus::get_language_meta_key() ] ) ) { // phpcs:ignore WordPress.CSRF.NonceVerification
|
283 |
-
$language = sanitize_text_field( $_REQUEST[ WPGlobus::get_language_meta_key() ] );
|
284 |
-
}
|
285 |
-
}
|
286 |
-
}
|
287 |
-
|
288 |
-
if ( ! $language ) {
|
289 |
-
|
290 |
-
if ( isset( $_REQUEST['post'] ) && 0 !== (int) $_REQUEST['post'] ) { // phpcs:ignore WordPress.CSRF.NonceVerification
|
291 |
-
|
292 |
-
$language = get_post_meta( $_REQUEST['post'], $this->get_language_meta_key(), true ); // phpcs:ignore WordPress.CSRF.NonceVerification
|
293 |
-
|
294 |
-
} elseif ( isset( $_REQUEST['id'] ) && 0 !== (int) $_REQUEST['id'] ) { // phpcs:ignore WordPress.CSRF.NonceVerification
|
295 |
-
|
296 |
-
/**
|
297 |
-
* Case when post in draft status is autosaved.
|
298 |
-
*/
|
299 |
-
$language = get_post_meta( $_REQUEST['id'], $this->get_language_meta_key(), true ); // phpcs:ignore WordPress.CSRF.NonceVerification
|
300 |
-
|
301 |
-
} elseif ( isset( $_SERVER['REQUEST_URI'] ) ) {
|
302 |
-
|
303 |
-
/**
|
304 |
-
* See also the Update action in @see \WPGlobus_Builders
|
305 |
-
*/
|
306 |
-
$_continue = false;
|
307 |
-
|
308 |
-
/**
|
309 |
-
* @since 2.5.17 Check $GLOBALS['WPGlobus'] for an array to prevent an occurring error `Cannot use object of type WPGlobus as array`.
|
310 |
-
* @todo In a rare case (so far only one) $GLOBALS['WPGlobus'] defined as object. Need an investigation.
|
311 |
-
*/
|
312 |
-
if ( isset( $GLOBALS['WPGlobus'] ) &&
|
313 |
-
is_array( $GLOBALS['WPGlobus'] ) &&
|
314 |
-
! empty( $GLOBALS['WPGlobus']['post_type'] )
|
315 |
-
)
|
316 |
-
{
|
317 |
-
$_continue = true;
|
318 |
-
}
|
319 |
-
if ( false !== strpos( $_SERVER['REQUEST_URI'], '/wp-json/wp/v2/posts/' )
|
320 |
-
|| false !== strpos( $_SERVER['REQUEST_URI'], '/wp-json/wp/v2/pages/' )
|
321 |
-
|| $_continue ) {
|
322 |
-
/**
|
323 |
-
* Case when post status was changed ( draft->publish or publish->draft ) in Gutenberg.
|
324 |
-
*
|
325 |
-
* @see \WPGlobus_Builders::is_gutenberg()
|
326 |
-
*/
|
327 |
-
if ( isset( $GLOBALS['WPGlobus'] ) && ! empty( $GLOBALS['WPGlobus']['post_id'] ) ) {
|
328 |
-
$post_id = $GLOBALS['WPGlobus']['post_id'];
|
329 |
-
} else {
|
330 |
-
$_request_uri = explode( '/', $_SERVER['REQUEST_URI'] );
|
331 |
-
|
332 |
-
$post_id = end( $_request_uri );
|
333 |
-
$post_id = preg_replace( '/\?.*/', '', $post_id );
|
334 |
-
}
|
335 |
-
|
336 |
-
if ( 0 !== (int) $post_id ) {
|
337 |
-
$language = get_post_meta( $post_id, $this->get_language_meta_key(), true ); // phpcs:ignore WordPress.CSRF.NonceVerification
|
338 |
-
}
|
339 |
-
}
|
340 |
-
}
|
341 |
-
}
|
342 |
-
|
343 |
-
if ( ! $language ) {
|
344 |
-
if ( $this->get_post_id() ) {
|
345 |
-
$language = get_post_meta( $this->get_post_id(), $this->get_language_meta_key(), true );
|
346 |
-
}
|
347 |
-
}
|
348 |
-
|
349 |
-
if ( ! $language && ! empty( $this->default_language ) ) {
|
350 |
-
/**
|
351 |
-
* Possible options when the language is not defined:
|
352 |
-
* - new post, post-new.php page;
|
353 |
-
*/
|
354 |
-
$language = $this->default_language;
|
355 |
-
/**
|
356 |
-
* @todo test point if was incorrect setting of $language.
|
357 |
-
*/
|
358 |
-
|
359 |
-
}
|
360 |
-
|
361 |
-
$this->language = $language;
|
362 |
-
|
363 |
-
return $language;
|
364 |
-
|
365 |
-
}
|
366 |
-
|
367 |
-
/**
|
368 |
-
* Check if builder is run.
|
369 |
-
*/
|
370 |
-
public function is_run() {
|
371 |
-
if ( ! $this->id ) {
|
372 |
-
return false;
|
373 |
-
}
|
374 |
-
|
375 |
-
return $this->is_run;
|
376 |
-
}
|
377 |
-
|
378 |
-
/**
|
379 |
-
* Check if builder is run.
|
380 |
-
*/
|
381 |
-
public function is_running() {
|
382 |
-
return $this->is_run();
|
383 |
-
}
|
384 |
-
|
385 |
-
/**
|
386 |
-
* Check if builder is in admin.
|
387 |
-
*/
|
388 |
-
public function is_admin() {
|
389 |
-
if ( ! $this->id ) {
|
390 |
-
return false;
|
391 |
-
}
|
392 |
-
|
393 |
-
return $this->__is_admin;
|
394 |
-
}
|
395 |
-
|
396 |
-
/**
|
397 |
-
* Check if builder is in front.
|
398 |
-
*/
|
399 |
-
public function is_front() {
|
400 |
-
if ( ! $this->id ) {
|
401 |
-
return false;
|
402 |
-
}
|
403 |
-
|
404 |
-
return ! $this->__is_admin;
|
405 |
-
}
|
406 |
-
|
407 |
-
/**
|
408 |
-
* Get builder ID.
|
409 |
-
*/
|
410 |
-
public function get_id() {
|
411 |
-
return $this->id;
|
412 |
-
}
|
413 |
-
|
414 |
-
/**
|
415 |
-
* Get post ID.
|
416 |
-
*/
|
417 |
-
public function get_post_id() {
|
418 |
-
if ( isset( $this->attrs['post_id'] ) && (int) $this->attrs['post_id'] > 0 ) {
|
419 |
-
return $this->attrs['post_id'];
|
420 |
-
}
|
421 |
-
|
422 |
-
return false;
|
423 |
-
}
|
424 |
-
|
425 |
-
/**
|
426 |
-
* Get builder class.
|
427 |
-
*/
|
428 |
-
public function get_class() {
|
429 |
-
if ( ! $this->id ) {
|
430 |
-
return false;
|
431 |
-
}
|
432 |
-
|
433 |
-
return $this->__class;
|
434 |
-
}
|
435 |
-
|
436 |
-
/**
|
437 |
-
*
|
438 |
-
*/
|
439 |
-
public function get_language_meta_key() {
|
440 |
-
if ( ! $this->id ) {
|
441 |
-
return false;
|
442 |
-
}
|
443 |
-
|
444 |
-
return WPGlobus::get_language_meta_key();
|
445 |
-
}
|
446 |
-
|
447 |
-
/**
|
448 |
-
*
|
449 |
-
*/
|
450 |
-
public function get_cookie_name() {
|
451 |
-
if ( ! $this->id ) {
|
452 |
-
return false;
|
453 |
-
}
|
454 |
-
|
455 |
-
return $this->language_cookie;
|
456 |
-
}
|
457 |
-
|
458 |
-
/**
|
459 |
-
* @param string $cookie_name
|
460 |
-
*
|
461 |
-
* @return bool|null
|
462 |
-
*/
|
463 |
-
public function get_cookie( $cookie_name = '' ) {
|
464 |
-
|
465 |
-
if ( ! $this->id ) {
|
466 |
-
return false;
|
467 |
-
}
|
468 |
-
|
469 |
-
static $_cookie_value = null;
|
470 |
-
|
471 |
-
if ( is_null( $_cookie_value ) ) {
|
472 |
-
if ( empty( $cookie_name ) ) {
|
473 |
-
$cookie_name = $this->get_cookie_name();
|
474 |
-
}
|
475 |
-
if ( empty( $_COOKIE[ $cookie_name ] ) ) {
|
476 |
-
$_cookie_value = false;
|
477 |
-
} else {
|
478 |
-
$_cookie_value = $_COOKIE[ $cookie_name ];
|
479 |
-
}
|
480 |
-
}
|
481 |
-
|
482 |
-
return $_cookie_value;
|
483 |
-
}
|
484 |
-
|
485 |
-
/**
|
486 |
-
* Check if current page is builder's page.
|
487 |
-
*/
|
488 |
-
public function is_builder_page() {
|
489 |
-
if ( ! $this->id ) {
|
490 |
-
return false;
|
491 |
-
}
|
492 |
-
|
493 |
-
return $this->__builder_page;
|
494 |
-
}
|
495 |
-
|
496 |
-
/**
|
497 |
-
* Get all builder data.
|
498 |
-
*/
|
499 |
-
public function get_data() {
|
500 |
-
|
501 |
-
if ( ! $this->id ) {
|
502 |
-
return false;
|
503 |
-
}
|
504 |
-
|
505 |
-
$data = array();
|
506 |
-
$data['id'] = $this->get_id();
|
507 |
-
|
508 |
-
if ( empty( $data['id'] ) ) {
|
509 |
-
return false;
|
510 |
-
}
|
511 |
-
|
512 |
-
if ( ! empty( $this->attrs ) ) {
|
513 |
-
foreach ( $this->attrs as $key => $value ) {
|
514 |
-
$data[ $key ] = $value;
|
515 |
-
}
|
516 |
-
}
|
517 |
-
|
518 |
-
$data['language'] = $this->get_language();
|
519 |
-
|
520 |
-
return $data;
|
521 |
-
|
522 |
-
}
|
523 |
-
|
524 |
-
/**
|
525 |
-
* If $this->default_language was not set, returns `null`.
|
526 |
-
* If the language is equal to the default_language, returns `true`,
|
527 |
-
* otherwise it returns `false`.
|
528 |
-
*
|
529 |
-
* @since 2.2.6
|
530 |
-
*
|
531 |
-
* @return null|boolean
|
532 |
-
*/
|
533 |
-
public function is_default_language() {
|
534 |
-
|
535 |
-
if ( empty( $this->default_language ) ) {
|
536 |
-
return null;
|
537 |
-
}
|
538 |
-
if ( $this->language === $this->default_language ) {
|
539 |
-
return true;
|
540 |
-
}
|
541 |
-
|
542 |
-
return false;
|
543 |
-
}
|
544 |
-
|
545 |
-
/**
|
546 |
-
* Set multilingual fields.
|
547 |
-
*
|
548 |
-
* @param array $multilingual_fields
|
549 |
-
*/
|
550 |
-
public function set_multilingual_fields( $multilingual_fields ) {
|
551 |
-
|
552 |
-
if ( ! isset( $this->attrs ) ) {
|
553 |
-
return;
|
554 |
-
}
|
555 |
-
|
556 |
-
if ( is_array( $multilingual_fields ) && ! empty( $multilingual_fields ) ) {
|
557 |
-
$this->attrs['multilingualFields'] = array_merge( $this->attrs['multilingualFields'], $multilingual_fields );
|
558 |
-
}
|
559 |
-
}
|
560 |
-
|
561 |
-
}
|
562 |
-
|
563 |
-
endif;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/includes/builders/elementor/class-wpglobus-elementor-front.php
DELETED
@@ -1,516 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* File: class-wpglobus-elementor-front.php
|
4 |
-
*
|
5 |
-
* @package WPGlobus\Builders\Elementor
|
6 |
-
* @author Alex Gor(alexgff)
|
7 |
-
*/
|
8 |
-
|
9 |
-
/**
|
10 |
-
* @see elementor\core\files\css\post.php
|
11 |
-
*/
|
12 |
-
use Elementor\Core\Files\CSS\Post as Post_CSS;
|
13 |
-
/**
|
14 |
-
* @since 2.5.5
|
15 |
-
* @see elementor\core\files\css\post-preview.php
|
16 |
-
*/
|
17 |
-
use Elementor\Core\Files\CSS\Post_Preview as Post_Preview;
|
18 |
-
/**
|
19 |
-
* @since 2.5.5
|
20 |
-
* @see elementor\core\kits\manager.php
|
21 |
-
*/
|
22 |
-
use Elementor\Core\Kits\Manager as Manager;
|
23 |
-
|
24 |
-
if ( ! class_exists( 'WPGlobus_Elementor_Front' ) ) :
|
25 |
-
|
26 |
-
/**
|
27 |
-
* Class WPGlobus_Elementor_Front.
|
28 |
-
*/
|
29 |
-
class WPGlobus_Elementor_Front {
|
30 |
-
|
31 |
-
public static $file_prefix = 'post-';
|
32 |
-
|
33 |
-
/**
|
34 |
-
* @since 2.1.15
|
35 |
-
*/
|
36 |
-
protected static $post_css_meta_key = null;
|
37 |
-
|
38 |
-
/**
|
39 |
-
* @since 2.1.15
|
40 |
-
*/
|
41 |
-
protected static $elementor_data_meta_key = null;
|
42 |
-
|
43 |
-
/**
|
44 |
-
* @since 2.1.15
|
45 |
-
*/
|
46 |
-
protected static $elementor_css_meta_key = null;
|
47 |
-
|
48 |
-
/**
|
49 |
-
* @since 2.4.12
|
50 |
-
*/
|
51 |
-
protected static $elementor_edit_mode_meta_key = null;
|
52 |
-
|
53 |
-
/**
|
54 |
-
* @since 2.4.12
|
55 |
-
*/
|
56 |
-
protected static $post_elementor_support_meta_key = null;
|
57 |
-
|
58 |
-
/**
|
59 |
-
* @since 2.4.12
|
60 |
-
*/
|
61 |
-
protected static $post_elementor_support = null;
|
62 |
-
|
63 |
-
/**
|
64 |
-
* Init.
|
65 |
-
*/
|
66 |
-
public static function init($attrs) {
|
67 |
-
|
68 |
-
if ( ! empty($attrs['post_css_meta_key']) ) {
|
69 |
-
self::$post_css_meta_key = $attrs['post_css_meta_key'];
|
70 |
-
}
|
71 |
-
|
72 |
-
if ( ! empty($attrs['elementor_data_meta_key']) ) {
|
73 |
-
self::$elementor_data_meta_key = $attrs['elementor_data_meta_key'];
|
74 |
-
}
|
75 |
-
|
76 |
-
if ( ! empty($attrs['elementor_css_meta_key']) ) {
|
77 |
-
self::$elementor_css_meta_key = $attrs['elementor_css_meta_key'];
|
78 |
-
}
|
79 |
-
|
80 |
-
/**
|
81 |
-
* @since 2.4.12
|
82 |
-
*/
|
83 |
-
if ( ! empty($attrs['elementor_edit_mode_meta_key']) ) {
|
84 |
-
self::$elementor_edit_mode_meta_key = $attrs['elementor_edit_mode_meta_key'];
|
85 |
-
}
|
86 |
-
|
87 |
-
/**
|
88 |
-
* @since 2.4.12
|
89 |
-
*/
|
90 |
-
if ( ! empty($attrs['post_support_meta_key']) ) {
|
91 |
-
self::$post_elementor_support_meta_key = $attrs['post_support_meta_key'];
|
92 |
-
}
|
93 |
-
|
94 |
-
add_filter( 'get_post_metadata', array( __CLASS__, 'filter__get_metadata' ), 5, 4 );
|
95 |
-
|
96 |
-
/**
|
97 |
-
* @since 2.1.15
|
98 |
-
*/
|
99 |
-
add_filter( 'update_post_metadata', array( __CLASS__, 'filter__update_metadata' ), 5, 5 );
|
100 |
-
|
101 |
-
/**
|
102 |
-
* @since 2.1.15
|
103 |
-
*/
|
104 |
-
add_action( 'wp_enqueue_scripts', array( __CLASS__, 'on__enqueue_styles' ), 20 );
|
105 |
-
|
106 |
-
/**
|
107 |
-
* @since 2.5.5
|
108 |
-
* @see `do_action` in elementor\includes\frontend.php
|
109 |
-
* @see callback function name and using it in elementor\core\kits\manager.php
|
110 |
-
*/
|
111 |
-
add_action( 'elementor/frontend/after_enqueue_styles', array( __CLASS__, 'frontend_before_enqueue_styles' ), 0 );
|
112 |
-
|
113 |
-
/**
|
114 |
-
* @since 2.1.13
|
115 |
-
* @see elementor\core\files\base.php
|
116 |
-
*/
|
117 |
-
add_action( 'elementor/files/file_name', array( __CLASS__, 'filter__elementor_files_file_name' ), 5, 4 );
|
118 |
-
|
119 |
-
/**
|
120 |
-
* @since 2.2.11
|
121 |
-
* @W.I.P
|
122 |
-
* @todo maybe we need to use these filters.
|
123 |
-
*/
|
124 |
-
//add_filter( 'elementor/editor/localize_settings', array( __CLASS__, 'filter__localize_settings' ), 10, 2 );
|
125 |
-
//add_action( 'elementor/editor/after_enqueue_scripts', array( __CLASS__, 'filter__localize_settings' ) );
|
126 |
-
|
127 |
-
/**
|
128 |
-
* @since 2.3.6
|
129 |
-
*/
|
130 |
-
add_filter( 'wpglobus_plus_publish_template_include_handler', array( __CLASS__, 'filter__template_include_handler' ) );
|
131 |
-
|
132 |
-
/**
|
133 |
-
* @since 2.4.12
|
134 |
-
*/
|
135 |
-
add_action( 'template_include', array( __CLASS__, 'on__template_include' ) );
|
136 |
-
}
|
137 |
-
|
138 |
-
/**
|
139 |
-
* @since 2.4.12
|
140 |
-
*/
|
141 |
-
public static function is_builder_support() {
|
142 |
-
if ( is_null( self::$post_elementor_support ) || self::$post_elementor_support ) {
|
143 |
-
return true;
|
144 |
-
}
|
145 |
-
return false;
|
146 |
-
}
|
147 |
-
|
148 |
-
/**
|
149 |
-
* @since 2.4.12
|
150 |
-
*/
|
151 |
-
public static function on__template_include( $template ) {
|
152 |
-
|
153 |
-
if ( ! is_singular() ) {
|
154 |
-
return $template;
|
155 |
-
}
|
156 |
-
|
157 |
-
if ( is_null( self::$post_elementor_support ) ) {
|
158 |
-
|
159 |
-
/** @global WP_Post $post */
|
160 |
-
global $post;
|
161 |
-
|
162 |
-
$_support = get_post_meta( $post->ID, self::$post_elementor_support_meta_key, true );
|
163 |
-
|
164 |
-
if ( 'off' === $_support ) {
|
165 |
-
self::$post_elementor_support = false;
|
166 |
-
} else {
|
167 |
-
self::$post_elementor_support = true;
|
168 |
-
}
|
169 |
-
|
170 |
-
if ( self::$post_elementor_support ) {
|
171 |
-
|
172 |
-
$_support = get_post_meta( $post->ID, self::$elementor_edit_mode_meta_key, true );
|
173 |
-
|
174 |
-
if ( 'builder' !== $_support ) {
|
175 |
-
/**
|
176 |
-
* Disable elementor support for post, that doesn't use elementor builder.
|
177 |
-
*/
|
178 |
-
self::$post_elementor_support = false;
|
179 |
-
}
|
180 |
-
}
|
181 |
-
}
|
182 |
-
|
183 |
-
return $template;
|
184 |
-
}
|
185 |
-
|
186 |
-
/**
|
187 |
-
* @since 2.5.5
|
188 |
-
*/
|
189 |
-
public static function frontend_before_enqueue_styles() {
|
190 |
-
|
191 |
-
if ( WPGlobus::Config()->language == WPGlobus::Config()->default_language ) {
|
192 |
-
return;
|
193 |
-
}
|
194 |
-
|
195 |
-
if ( ! self::is_builder_support() ) {
|
196 |
-
return;
|
197 |
-
}
|
198 |
-
|
199 |
-
$manager = new Manager();
|
200 |
-
|
201 |
-
$kit = $manager->get_kit_for_frontend();
|
202 |
-
|
203 |
-
if ( $kit ) {
|
204 |
-
if ( $kit->is_autosave() ) {
|
205 |
-
$css_file = Post_Preview::create( $kit->get_id() );
|
206 |
-
} else {
|
207 |
-
$css_file = Post_CSS::create( $kit->get_id() );
|
208 |
-
}
|
209 |
-
|
210 |
-
$handle = 'elementor-post-' . $css_file->get_post_id() .'-' . WPGlobus::Config()->language;
|
211 |
-
|
212 |
-
$url = $css_file->get_url();
|
213 |
-
|
214 |
-
/**
|
215 |
-
* @since 2.5.5 @W.I.P `enqueue` doesn't work here.
|
216 |
-
* @see `frontend_before_enqueue_styles` in elementor\core\kits\manager.php.
|
217 |
-
*/
|
218 |
-
// $css_file->enqueue();
|
219 |
-
|
220 |
-
wp_register_style(
|
221 |
-
$handle,
|
222 |
-
$url,
|
223 |
-
array(),
|
224 |
-
'wpglobus-' . WPGLOBUS_VERSION
|
225 |
-
|
226 |
-
);
|
227 |
-
wp_enqueue_style($handle);
|
228 |
-
}
|
229 |
-
}
|
230 |
-
|
231 |
-
/**
|
232 |
-
* @since 2.1.15
|
233 |
-
*/
|
234 |
-
public static function on__enqueue_styles() {
|
235 |
-
|
236 |
-
if ( WPGlobus::Config()->language == WPGlobus::Config()->default_language ) {
|
237 |
-
return;
|
238 |
-
}
|
239 |
-
|
240 |
-
/**
|
241 |
-
* @since 2.4.12
|
242 |
-
*/
|
243 |
-
if ( ! self::is_builder_support() ) {
|
244 |
-
return;
|
245 |
-
}
|
246 |
-
|
247 |
-
$css_file = new Post_CSS( get_the_ID() );
|
248 |
-
|
249 |
-
/**
|
250 |
-
* @see elementor\core\files\css\post.php
|
251 |
-
*/
|
252 |
-
$handle = 'elementor-post-' . $css_file->get_post_id() .'-' . WPGlobus::Config()->language;
|
253 |
-
|
254 |
-
/**
|
255 |
-
* @see elementor\core\files\base.php
|
256 |
-
*/
|
257 |
-
$url = $css_file->get_url();
|
258 |
-
|
259 |
-
wp_register_style(
|
260 |
-
$handle,
|
261 |
-
$url,
|
262 |
-
array(),
|
263 |
-
'wpglobus-' . WPGLOBUS_VERSION
|
264 |
-
|
265 |
-
);
|
266 |
-
wp_enqueue_style($handle);
|
267 |
-
}
|
268 |
-
|
269 |
-
/**
|
270 |
-
* Filters the file name.
|
271 |
-
*
|
272 |
-
* @since 2.1.13
|
273 |
-
* @since 2.3.3 Handle multiple file names.
|
274 |
-
*
|
275 |
-
* @param string $file_name CSS file name.
|
276 |
-
* @param object $instance The file instance, which inherits Elementor\Core\Files
|
277 |
-
*/
|
278 |
-
public static function filter__elementor_files_file_name( $file_name, $instance ) {
|
279 |
-
|
280 |
-
if ( WPGlobus::Config()->language == WPGlobus::Config()->default_language ) {
|
281 |
-
return $file_name;
|
282 |
-
}
|
283 |
-
|
284 |
-
if ( false === strpos( $file_name, self::$file_prefix ) ) {
|
285 |
-
return $file_name;
|
286 |
-
}
|
287 |
-
|
288 |
-
/**
|
289 |
-
* @since 2.4.12
|
290 |
-
*/
|
291 |
-
if ( ! self::is_builder_support() ) {
|
292 |
-
return $file_name;
|
293 |
-
}
|
294 |
-
|
295 |
-
/**
|
296 |
-
* @since 2.3.3 @W.I.P May be check out for global post ID.
|
297 |
-
*/
|
298 |
-
//global $post;
|
299 |
-
//if ( ! $post instanceof WP_Post ) {
|
300 |
-
//return $file_name;
|
301 |
-
//}
|
302 |
-
//$file_unique_part = str_replace( self::$file_prefix, '', $file_name );
|
303 |
-
//if ( false === strpos( $file_unique_part, $post->ID . '.' ) ) {
|
304 |
-
//return $file_name;
|
305 |
-
//}
|
306 |
-
|
307 |
-
static $_file_names = null;
|
308 |
-
|
309 |
-
if ( ! is_null( $_file_names ) && ! empty( $_file_names[$file_name] ) ) {
|
310 |
-
return $_file_names[$file_name];
|
311 |
-
}
|
312 |
-
|
313 |
-
$_file_name = $file_name;
|
314 |
-
if ( false !== strpos( $file_name, '.css' ) ) {
|
315 |
-
$_file_name = str_replace( '.css', '-' . WPGlobus::Config()->language . '.css', $file_name );
|
316 |
-
}
|
317 |
-
|
318 |
-
$_file_names[$file_name] = $_file_name;
|
319 |
-
|
320 |
-
return $_file_name;
|
321 |
-
}
|
322 |
-
|
323 |
-
/**
|
324 |
-
* Get meta callback.
|
325 |
-
*
|
326 |
-
* @scope front.
|
327 |
-
* @param $check
|
328 |
-
* @param $object_id
|
329 |
-
* @param $meta_key
|
330 |
-
* @param $single
|
331 |
-
*
|
332 |
-
* @return string
|
333 |
-
*/
|
334 |
-
public static function filter__get_metadata(
|
335 |
-
$check, $object_id, $meta_key, /** @noinspection PhpUnusedParameterInspection */
|
336 |
-
$single
|
337 |
-
) {
|
338 |
-
|
339 |
-
if ( self::$elementor_data_meta_key === $meta_key ) {
|
340 |
-
|
341 |
-
$meta_cache = wp_cache_get( $object_id, 'post_meta' );
|
342 |
-
|
343 |
-
if ( isset( $meta_cache[ $meta_key ] ) && isset( $meta_cache[ $meta_key ][0] ) ) {
|
344 |
-
|
345 |
-
/** @noinspection PhpUnusedLocalVariableInspection */
|
346 |
-
$_value = '';
|
347 |
-
|
348 |
-
if ( WPGlobus_Core::has_translations( $meta_cache[ $meta_key ][0] ) ) {
|
349 |
-
$_value = WPGlobus_Core::text_filter( $meta_cache[ $meta_key ][0], WPGlobus::Config()->language );
|
350 |
-
} else {
|
351 |
-
$_value = $meta_cache[ $meta_key ][0];
|
352 |
-
}
|
353 |
-
|
354 |
-
return $_value;
|
355 |
-
|
356 |
-
}
|
357 |
-
|
358 |
-
} elseif ( self::$elementor_css_meta_key === $meta_key ) {
|
359 |
-
|
360 |
-
if ( WPGlobus::Config()->language == WPGlobus::Config()->default_language ) {
|
361 |
-
return $check;
|
362 |
-
}
|
363 |
-
|
364 |
-
$meta_cache = wp_cache_get( $object_id, 'post_meta' );
|
365 |
-
|
366 |
-
if ( isset( $meta_cache[ self::$post_css_meta_key ] ) && isset( $meta_cache[ self::$post_css_meta_key ][0] ) ) {
|
367 |
-
|
368 |
-
$_value = '';
|
369 |
-
|
370 |
-
$has_translations = WPGlobus_Core::has_translations( $meta_cache[ self::$post_css_meta_key ][0] );
|
371 |
-
|
372 |
-
if ( $has_translations ) {
|
373 |
-
$_value = WPGlobus_Core::text_filter( $meta_cache[ self::$post_css_meta_key ][0], WPGlobus::Config()->language, WPGlobus::RETURN_EMPTY );
|
374 |
-
}
|
375 |
-
|
376 |
-
if ( ! empty($_value) ) {
|
377 |
-
$_value = maybe_unserialize( $_value );
|
378 |
-
|
379 |
-
/**
|
380 |
-
* @todo may be better return value for default language.
|
381 |
-
*/
|
382 |
-
//if ( isset( $meta_cache[ self::$elementor_css_meta_key ] ) && isset( $meta_cache[ self::$elementor_css_meta_key ][0] ) ) {
|
383 |
-
//$_value = maybe_unserialize( $meta_cache[ self::$elementor_css_meta_key ] );
|
384 |
-
//}
|
385 |
-
}
|
386 |
-
|
387 |
-
return $_value;
|
388 |
-
}
|
389 |
-
|
390 |
-
}
|
391 |
-
|
392 |
-
return $check;
|
393 |
-
}
|
394 |
-
|
395 |
-
/**
|
396 |
-
* @since 2.1.15
|
397 |
-
*/
|
398 |
-
public static function filter__update_metadata( $check, $object_id, $meta_key, $meta_value, $prev_value ) {
|
399 |
-
|
400 |
-
if ( self::$elementor_css_meta_key != $meta_key ) {
|
401 |
-
return $check;
|
402 |
-
}
|
403 |
-
|
404 |
-
if ( WPGlobus::Config()->language == WPGlobus::Config()->default_language ) {
|
405 |
-
return $check;
|
406 |
-
}
|
407 |
-
|
408 |
-
$meta_cache = wp_cache_get( $object_id, 'post_meta' );
|
409 |
-
|
410 |
-
if ( isset( $meta_cache[ self::$post_css_meta_key ] ) && isset( $meta_cache[ self::$post_css_meta_key ][0] ) ) {
|
411 |
-
|
412 |
-
$new_value = $check;
|
413 |
-
$_tr = array();
|
414 |
-
|
415 |
-
foreach( WPGlobus::Config()->enabled_languages as $language ) {
|
416 |
-
$_s = WPGlobus_Core::text_filter( $meta_cache[ self::$post_css_meta_key ][0], $language, WPGlobus::RETURN_EMPTY );
|
417 |
-
if ( ! empty( $_s ) ) {
|
418 |
-
$_tr[$language] = $_s;
|
419 |
-
}
|
420 |
-
}
|
421 |
-
|
422 |
-
/**
|
423 |
-
* Fix for $meta_value[0].
|
424 |
-
*/
|
425 |
-
$meta_value[0] = '';
|
426 |
-
|
427 |
-
$_tr[WPGlobus::Config()->language] = maybe_serialize($meta_value);
|
428 |
-
$new_value = WPGlobus_Utils::build_multilingual_string($_tr);
|
429 |
-
|
430 |
-
if ( $new_value != $check ) {
|
431 |
-
|
432 |
-
global $wpdb;
|
433 |
-
|
434 |
-
$meta_value = $new_value;
|
435 |
-
$table = _get_meta_table('post');
|
436 |
-
$data = compact( 'meta_value' );
|
437 |
-
$where = array(
|
438 |
-
'post_id' => $object_id,
|
439 |
-
'meta_key' => self::$post_css_meta_key
|
440 |
-
);
|
441 |
-
|
442 |
-
$result = $wpdb->update( $table, $data, $where );
|
443 |
-
|
444 |
-
if ( ! $result ) {
|
445 |
-
return false;
|
446 |
-
}
|
447 |
-
|
448 |
-
}
|
449 |
-
|
450 |
-
return $new_value;
|
451 |
-
|
452 |
-
} else {
|
453 |
-
|
454 |
-
/**
|
455 |
-
* $meta_cache[ $meta_key ] is undefined.
|
456 |
-
*/
|
457 |
-
|
458 |
-
global $wpdb;
|
459 |
-
|
460 |
-
$_tr = array();
|
461 |
-
$_tr[WPGlobus::Config()->language] = maybe_serialize($meta_value);
|
462 |
-
$new_value = WPGlobus_Utils::build_multilingual_string($_tr);
|
463 |
-
|
464 |
-
$table = _get_meta_table('post');
|
465 |
-
|
466 |
-
$result = $wpdb->insert(
|
467 |
-
$table,
|
468 |
-
array(
|
469 |
-
'post_id' => $object_id,
|
470 |
-
'meta_key' => self::$post_css_meta_key,
|
471 |
-
'meta_value' => $new_value
|
472 |
-
),
|
473 |
-
array(
|
474 |
-
'%d',
|
475 |
-
'%s',
|
476 |
-
'%s'
|
477 |
-
)
|
478 |
-
);
|
479 |
-
|
480 |
-
if ( ! $result ) {
|
481 |
-
return false;
|
482 |
-
}
|
483 |
-
|
484 |
-
return $new_value;
|
485 |
-
}
|
486 |
-
|
487 |
-
return $check;
|
488 |
-
|
489 |
-
}
|
490 |
-
|
491 |
-
/**
|
492 |
-
* @since 2.3.6
|
493 |
-
*/
|
494 |
-
public static function filter__template_include_handler($handler) {
|
495 |
-
|
496 |
-
/**
|
497 |
-
* @W.I.P @since 2.4.12 Do we need to check is_builder_support?
|
498 |
-
*/
|
499 |
-
//if ( ! self::is_builder_support() ) {
|
500 |
-
//return $handler;
|
501 |
-
//}
|
502 |
-
|
503 |
-
/**
|
504 |
-
* Don't fire `template_include` filter with active Elementor
|
505 |
-
* to prevent `The preview could not be loaded` for language in draft status.
|
506 |
-
*/
|
507 |
-
if ( empty( $_GET['elementor-preview'] ) ) {
|
508 |
-
return $handler;
|
509 |
-
}
|
510 |
-
return false;
|
511 |
-
}
|
512 |
-
} // end class WPGlobus_Elementor_Front.
|
513 |
-
|
514 |
-
endif;
|
515 |
-
|
516 |
-
# --- EOF
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/includes/builders/elementor/class-wpglobus-elementor-update-post.php
DELETED
@@ -1,118 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* File: class-wpglobus-elementor-update-post.php
|
4 |
-
*
|
5 |
-
* @package WPGlobus\Builders\Elementor
|
6 |
-
* @author Alex Gor(alexgff)
|
7 |
-
*/
|
8 |
-
|
9 |
-
/**
|
10 |
-
* Class WPGlobus_elementor_Update_Post.
|
11 |
-
*/
|
12 |
-
if ( ! class_exists( 'WPGlobus_elementor_Update_Post' ) ) :
|
13 |
-
|
14 |
-
// phpcs:ignore PEAR.NamingConventions
|
15 |
-
class WPGlobus_elementor_Update_Post extends WPGlobus_Builder_Update_Post {
|
16 |
-
|
17 |
-
/**
|
18 |
-
* Constructor.
|
19 |
-
*/
|
20 |
-
public function __construct() {
|
21 |
-
|
22 |
-
parent::__construct( 'elementor' );
|
23 |
-
|
24 |
-
/**
|
25 |
-
* @see_file wpglobus\includes\class-wpglobus.php
|
26 |
-
*/
|
27 |
-
remove_action( 'wp_insert_post_data', array( 'WPGlobus', 'on_save_post_data' ), 10 );
|
28 |
-
|
29 |
-
/**
|
30 |
-
* @todo incorrect the saving post in extra languages with priority = 10
|
31 |
-
*/
|
32 |
-
add_filter( 'wp_insert_post_data', array( $this, 'filter__wp_insert_post_data' ), 100, 2 );
|
33 |
-
|
34 |
-
}
|
35 |
-
|
36 |
-
/**
|
37 |
-
* Callback for 'wp_insert_post_data'.
|
38 |
-
*
|
39 |
-
* @param array $data
|
40 |
-
* @param array $postarr
|
41 |
-
*
|
42 |
-
* @return mixed
|
43 |
-
*/
|
44 |
-
public function filter__wp_insert_post_data( $data, $postarr ) {
|
45 |
-
|
46 |
-
/**
|
47 |
-
* Prevent to filter disabled post type.
|
48 |
-
*
|
49 |
-
* @since 2.1.4
|
50 |
-
*/
|
51 |
-
if ( in_array( $data['post_type'], WPGlobus::Config()->disabled_entities, true ) ) {
|
52 |
-
return $data;
|
53 |
-
}
|
54 |
-
|
55 |
-
global $wpdb;
|
56 |
-
$_post = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $wpdb->posts WHERE ID = %d AND post_type = %s LIMIT 1", $postarr['ID'], $postarr['post_type'] ) );
|
57 |
-
|
58 |
-
$fields = array();
|
59 |
-
if ( isset( $postarr['post_title'] ) ) {
|
60 |
-
$fields['post_title'] = $postarr['post_title'];
|
61 |
-
}
|
62 |
-
|
63 |
-
if ( isset( $postarr['post_content'] ) ) {
|
64 |
-
$fields['post_content'] = $postarr['post_content'];
|
65 |
-
}
|
66 |
-
|
67 |
-
if ( isset( $postarr['post_excerpt'] ) ) {
|
68 |
-
$fields['post_excerpt'] = $postarr['post_excerpt'];
|
69 |
-
}
|
70 |
-
|
71 |
-
$builder_language = WPGlobus::Config()->builder->get_language();
|
72 |
-
|
73 |
-
if ( empty( $builder_language ) ) {
|
74 |
-
|
75 |
-
if ( empty( $postarr[ WPGlobus::get_language_meta_key() ] ) ) {
|
76 |
-
$builder_language = WPGlobus::Config()->default_language;
|
77 |
-
} else {
|
78 |
-
$builder_language = $postarr[ WPGlobus::get_language_meta_key() ];
|
79 |
-
}
|
80 |
-
}
|
81 |
-
|
82 |
-
foreach ( $fields as $field => $value ) {
|
83 |
-
|
84 |
-
$tr = array();
|
85 |
-
|
86 |
-
foreach ( WPGlobus::Config()->enabled_languages as $lang ) :
|
87 |
-
|
88 |
-
if ( $lang === $builder_language ) {
|
89 |
-
|
90 |
-
$text = $value;
|
91 |
-
if ( WPGlobus_Core::has_translations( $value ) ) {
|
92 |
-
$text = WPGlobus_Core::text_filter( $value, $lang, WPGlobus::RETURN_EMPTY );
|
93 |
-
}
|
94 |
-
if ( ! empty( $text ) ) {
|
95 |
-
$tr[ $lang ] = $text;
|
96 |
-
}
|
97 |
-
} else {
|
98 |
-
if ( isset( $_post->$field ) ) {
|
99 |
-
$text = WPGlobus_Core::text_filter( $_post->$field, $lang, WPGlobus::RETURN_EMPTY );
|
100 |
-
if ( ! empty( $text ) ) {
|
101 |
-
$tr[ $lang ] = $text;
|
102 |
-
}
|
103 |
-
}
|
104 |
-
}
|
105 |
-
|
106 |
-
endforeach;
|
107 |
-
|
108 |
-
$data[ $field ] = WPGlobus_Utils::build_multilingual_string( $tr );
|
109 |
-
|
110 |
-
}
|
111 |
-
|
112 |
-
return $data;
|
113 |
-
|
114 |
-
}
|
115 |
-
|
116 |
-
}
|
117 |
-
|
118 |
-
endif;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/includes/builders/elementor/class-wpglobus-elementor.php
DELETED
@@ -1,687 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* File: class-wpglobus-elementor.php
|
4 |
-
*
|
5 |
-
* @since 2.2.31 We are providing support for `External File` only. @see elementor\core\files\css\base.php::use_external_file().
|
6 |
-
* @since 2.4.12 Disable elementor support for post, that doesn't use elementor builder.
|
7 |
-
Add submit box switcher to ON/OFF elementor's support.
|
8 |
-
*
|
9 |
-
* @package WPGlobus\Builders\Elementor
|
10 |
-
* @author Alex Gor(alexgff)
|
11 |
-
*/
|
12 |
-
|
13 |
-
if ( file_exists( WP_PLUGIN_DIR . '/elementor/core/files/manager.php' ) ) {
|
14 |
-
require_once( WP_PLUGIN_DIR . '/elementor/core/files/manager.php' );
|
15 |
-
}
|
16 |
-
|
17 |
-
if ( ! class_exists( 'WPGlobus_Elementor' ) ) :
|
18 |
-
|
19 |
-
/**
|
20 |
-
* Class WPGlobus_Elementor.
|
21 |
-
*/
|
22 |
-
class WPGlobus_Elementor extends WPGlobus_Builder {
|
23 |
-
|
24 |
-
protected $base_redirect_url = '';
|
25 |
-
|
26 |
-
protected $post_content = null;
|
27 |
-
|
28 |
-
/**
|
29 |
-
* @since 2.1.15
|
30 |
-
*/
|
31 |
-
protected static $post_css_meta_key = null;
|
32 |
-
|
33 |
-
/**
|
34 |
-
* @since 2.1.15
|
35 |
-
*/
|
36 |
-
protected static $elementor_data_meta_key = null;
|
37 |
-
|
38 |
-
/**
|
39 |
-
* @since 2.4.12
|
40 |
-
*/
|
41 |
-
protected static $elementor_edit_mode_meta_key = null;
|
42 |
-
|
43 |
-
/**
|
44 |
-
* @since 2.4.12
|
45 |
-
*/
|
46 |
-
protected static $post_elementor_support_meta_key = null;
|
47 |
-
|
48 |
-
/**
|
49 |
-
* @since 2.4.12
|
50 |
-
*/
|
51 |
-
protected static $post_elementor_support_get_key = 'wpglobus-elementor-support';
|
52 |
-
|
53 |
-
/**
|
54 |
-
* @since 2.4.12
|
55 |
-
*/
|
56 |
-
protected static $post_elementor_support = null;
|
57 |
-
|
58 |
-
/**
|
59 |
-
* Constructor.
|
60 |
-
*/
|
61 |
-
public function __construct() {
|
62 |
-
|
63 |
-
parent::__construct( 'elementor' );
|
64 |
-
|
65 |
-
$_post_css_meta_key = WPGlobus::Config()->builder->get('post_css_meta_key');
|
66 |
-
if ( ! empty( $_post_css_meta_key ) ) {
|
67 |
-
self::$post_css_meta_key = $_post_css_meta_key;
|
68 |
-
}
|
69 |
-
|
70 |
-
/**
|
71 |
-
* @since 2.4.12
|
72 |
-
*/
|
73 |
-
$_post_support_meta_key = WPGlobus::Config()->builder->get('post_support_meta_key');
|
74 |
-
if ( ! empty( $_post_support_meta_key ) ) {
|
75 |
-
self::$post_elementor_support_meta_key = $_post_support_meta_key;
|
76 |
-
}
|
77 |
-
|
78 |
-
$_elementor_data_meta_key = WPGlobus::Config()->builder->get('elementor_data_meta_key');
|
79 |
-
if ( ! empty( $_elementor_data_meta_key ) ) {
|
80 |
-
self::$elementor_data_meta_key = $_elementor_data_meta_key;
|
81 |
-
}
|
82 |
-
|
83 |
-
/**
|
84 |
-
* @since 2.4.12
|
85 |
-
*/
|
86 |
-
$_elementor_edit_mode_meta_key = WPGlobus::Config()->builder->get('elementor_edit_mode_meta_key');
|
87 |
-
if ( ! empty( $_elementor_edit_mode_meta_key ) ) {
|
88 |
-
self::$elementor_edit_mode_meta_key = $_elementor_edit_mode_meta_key;
|
89 |
-
}
|
90 |
-
|
91 |
-
if ( isset( $_GET['action'] ) && 'elementor' === $_GET['action'] ) { // phpcs:ignore WordPress.CSRF.NonceVerification
|
92 |
-
/**
|
93 |
-
* @see wp-includes/revision.php
|
94 |
-
*/
|
95 |
-
$post_id = $_GET['post']; // phpcs:ignore WordPress.CSRF.NonceVerification
|
96 |
-
if ( (int) $post_id > 0 ) {
|
97 |
-
$revision = wp_get_post_autosave( $post_id );
|
98 |
-
if ( is_object( $revision ) ) {
|
99 |
-
wp_delete_post_revision( $revision->ID );
|
100 |
-
}
|
101 |
-
}
|
102 |
-
}
|
103 |
-
|
104 |
-
/**
|
105 |
-
* @see wpglobus\includes\class-wpglobus.php
|
106 |
-
*
|
107 |
-
* @since 2.4.12
|
108 |
-
*/
|
109 |
-
add_action( 'wpglobus_submitbox_action', array( $this, 'on__submitbox_switcher' ) );
|
110 |
-
|
111 |
-
/**
|
112 |
-
* @see_file wpglobus\includes\class-wpglobus.php
|
113 |
-
* @todo remove after test.
|
114 |
-
*/
|
115 |
-
remove_action( 'wp_insert_post_data', array( 'WPGlobus', 'on_save_post_data' ), 10 );
|
116 |
-
|
117 |
-
add_filter( 'get_post_metadata', array( $this, 'filter__post_metadata' ), 13, 4 );
|
118 |
-
|
119 |
-
// @todo may be need this filter for admin, @see includes\builders\elementor\class-wpglobus-elementor-front.php
|
120 |
-
//add_filter( 'update_post_metadata', array( $this, 'filter__update_metadata' ), 5, 5 );
|
121 |
-
|
122 |
-
/**
|
123 |
-
* Elementor editor footer.
|
124 |
-
*
|
125 |
-
* @see_file elementor\includes\editor.php
|
126 |
-
*/
|
127 |
-
add_action( 'elementor/editor/footer', array( $this, 'on__elementor_footer' ), 100 );
|
128 |
-
|
129 |
-
/**
|
130 |
-
* @since 2.2.11
|
131 |
-
* @W.I.P
|
132 |
-
* @see meta classic-editor-remember = block-editor OR classic-editor
|
133 |
-
* @todo maybe to use `wp_footer` action instead of `elementor/editor/footer`.
|
134 |
-
*/
|
135 |
-
//add_action( 'wp_footer', array( $this, 'on__elementor_footer' ), 100 );
|
136 |
-
|
137 |
-
/**
|
138 |
-
* @since 2.2.11
|
139 |
-
* @W.I.P
|
140 |
-
* @todo maybe useful
|
141 |
-
*/
|
142 |
-
//add_filter( 'elementor/editor/localize_settings', array( $this, 'on__localize_settings' ), 10, 2 );
|
143 |
-
//add_action( 'elementor/editor/after_enqueue_scripts', array( $this, 'on__localize_settings' ) );
|
144 |
-
|
145 |
-
/**
|
146 |
-
* AJAX handling.
|
147 |
-
*/
|
148 |
-
if ( defined('DOING_AJAX') && DOING_AJAX ) {
|
149 |
-
if ( 'elementor_ajax' == $_POST['action'] && false !== strpos($_POST['actions'], '"action":"save_builder"') ) {
|
150 |
-
if ( class_exists( '\Elementor\Core\Files\Manager' ) ) {
|
151 |
-
/**
|
152 |
-
* Clear Elementor cache and WPGlobus css meta.
|
153 |
-
* @since 2.1.15
|
154 |
-
*/
|
155 |
-
$_fm = new \Elementor\Core\Files\Manager;
|
156 |
-
$_fm->clear_cache();
|
157 |
-
if ( ! is_null(self::$post_css_meta_key) ) {
|
158 |
-
update_post_meta( WPGlobus::Config()->builder->get('post_id'), self::$post_css_meta_key, '' );
|
159 |
-
}
|
160 |
-
}
|
161 |
-
}
|
162 |
-
}
|
163 |
-
|
164 |
-
if ( is_admin() ) {
|
165 |
-
|
166 |
-
/**
|
167 |
-
* @since 2.2.31
|
168 |
-
*/
|
169 |
-
add_action( 'admin_notices', array( $this, 'on__admin_notice' ) );
|
170 |
-
|
171 |
-
add_filter( 'the_post', array( $this, 'filter__the_post' ), 5 );
|
172 |
-
|
173 |
-
/**
|
174 |
-
* @see_file elementor\core\base\document.php
|
175 |
-
*/
|
176 |
-
add_filter( 'elementor/document/urls/edit', array( $this, 'filter__url' ), 5, 2 );
|
177 |
-
|
178 |
-
/**
|
179 |
-
* @see_file elementor\core\base\document.php
|
180 |
-
*/
|
181 |
-
add_filter( 'elementor/document/urls/exit_to_dashboard', array( $this, 'filter__url' ), 5, 2 );
|
182 |
-
|
183 |
-
/**
|
184 |
-
* Filter Preview Button link in elementor side panel.
|
185 |
-
*
|
186 |
-
* @see_file elementor\core\base\document.php
|
187 |
-
*/
|
188 |
-
add_filter( 'elementor/document/urls/wp_preview', array( $this, 'filter__preview_url' ), 5, 2 );
|
189 |
-
|
190 |
-
/**
|
191 |
-
* Filter for URL in elementor-preview-iframe.
|
192 |
-
*
|
193 |
-
* @see_file elementor\core\base\document.php
|
194 |
-
*/
|
195 |
-
add_filter( 'elementor/document/urls/preview', array( $this, 'filter__preview_url' ), 5, 2 );
|
196 |
-
|
197 |
-
/**
|
198 |
-
* Filters the editor localized settings.
|
199 |
-
*
|
200 |
-
* @since 2.2.6
|
201 |
-
*
|
202 |
-
* @see_file elementor\includes\editor.php
|
203 |
-
*/
|
204 |
-
add_filter( 'elementor/editor/localize_settings', array( $this, 'filter__localize_settings' ), 5, 2 );
|
205 |
-
}
|
206 |
-
|
207 |
-
}
|
208 |
-
|
209 |
-
/**
|
210 |
-
* @since 2.4.12
|
211 |
-
*/
|
212 |
-
public function on__submitbox_switcher( $post ) {
|
213 |
-
|
214 |
-
if ( ! $post instanceof WP_Post ) {
|
215 |
-
return;
|
216 |
-
}
|
217 |
-
|
218 |
-
if ( 'builder' !== get_post_meta( $post->ID, $this->get_elementor_edit_mode_meta_key(), true ) ) {
|
219 |
-
/**
|
220 |
-
* Disable elementor support for post, that doesn't use elementor builder.
|
221 |
-
*/
|
222 |
-
self::$post_elementor_support = false;
|
223 |
-
return;
|
224 |
-
}
|
225 |
-
|
226 |
-
if ( ! empty( $_GET[ self::$post_elementor_support_get_key ] ) ) {
|
227 |
-
$current_mode = sanitize_text_field( $_GET[ self::$post_elementor_support_get_key ] );
|
228 |
-
if ( in_array( $current_mode, array('on', 'off') ) ) {
|
229 |
-
update_post_meta( $post->ID, self::$post_elementor_support_meta_key, $current_mode );
|
230 |
-
}
|
231 |
-
}
|
232 |
-
|
233 |
-
$elementor_support = get_post_meta( $post->ID, self::$post_elementor_support_meta_key, true );
|
234 |
-
|
235 |
-
if ( 'off' === $elementor_support ) {
|
236 |
-
self::$post_elementor_support = false;
|
237 |
-
} else {
|
238 |
-
$elementor_support = 'on';
|
239 |
-
self::$post_elementor_support = true;
|
240 |
-
}
|
241 |
-
|
242 |
-
// "Reverse" logic here. It's the mode to turn to, not the current one.
|
243 |
-
$switch_to_mode = 'off';
|
244 |
-
if ( 'off' === $elementor_support ) {
|
245 |
-
$switch_to_mode = 'on';
|
246 |
-
}
|
247 |
-
|
248 |
-
if ( 'off' === $elementor_support ) {
|
249 |
-
// Translators: ON/OFF status of WPGlobus on the edit pages.
|
250 |
-
$status_text = __( 'OFF', 'wpglobus' );
|
251 |
-
$toggle_text = __( 'Turn on', 'wpglobus' );
|
252 |
-
$highlight_class = 'wp-ui-text-notification';
|
253 |
-
} else {
|
254 |
-
// Translators: ON/OFF status of WPGlobus on the edit pages.
|
255 |
-
$status_text = __( 'ON', 'wpglobus' );
|
256 |
-
$toggle_text = __( 'Turn off', 'wpglobus' );
|
257 |
-
$highlight_class = 'wp-ui-text-highlight';
|
258 |
-
}
|
259 |
-
|
260 |
-
$query_string = explode( '&', $_SERVER['QUERY_STRING'] );
|
261 |
-
|
262 |
-
foreach ( $query_string as $key => $_q ) {
|
263 |
-
if ( false !== strpos( $_q, 'wpglobus=' ) ) {
|
264 |
-
unset( $query_string[ $key ] );
|
265 |
-
}
|
266 |
-
}
|
267 |
-
|
268 |
-
$query = implode( '&', $query_string );
|
269 |
-
|
270 |
-
$url = admin_url(
|
271 |
-
add_query_arg(
|
272 |
-
array( self::$post_elementor_support_get_key => $switch_to_mode ),
|
273 |
-
'post.php?' . $query
|
274 |
-
)
|
275 |
-
);
|
276 |
-
|
277 |
-
?>
|
278 |
-
<div class="misc-pub-section wpglobus-elementor-support-switch">
|
279 |
-
<span id="wpglobus-elementor-support-raw" style="margin-right: 2px;"
|
280 |
-
class="dashicons dashicons-admin-site <?php echo esc_attr( $highlight_class ); ?>"></span>
|
281 |
-
<?php esc_html_e( 'Elementor', 'wpglobus' ); ?>:
|
282 |
-
<strong class="<?php echo esc_attr( $highlight_class ); ?>"><?php echo esc_html( $status_text ); ?></strong>
|
283 |
-
<a class="button button-small" style="margin:-3px 0 0 3px;"
|
284 |
-
href="<?php echo esc_url( $url ); ?>"><?php echo esc_html( $toggle_text ); ?></a>
|
285 |
-
</div>
|
286 |
-
<?php
|
287 |
-
}
|
288 |
-
|
289 |
-
/**
|
290 |
-
* @since 2.4.12
|
291 |
-
*/
|
292 |
-
public function is_elementor_support() {
|
293 |
-
|
294 |
-
if ( is_null( self::$post_elementor_support ) ) {
|
295 |
-
|
296 |
-
global $post;
|
297 |
-
|
298 |
-
$elementor_support = get_post_meta( $post->ID, self::$post_elementor_support_meta_key, true );
|
299 |
-
|
300 |
-
if ( 'off' === $elementor_support ) {
|
301 |
-
self::$post_elementor_support = false;
|
302 |
-
} else {
|
303 |
-
self::$post_elementor_support = true;
|
304 |
-
}
|
305 |
-
}
|
306 |
-
|
307 |
-
if ( self::$post_elementor_support ) {
|
308 |
-
return true;
|
309 |
-
}
|
310 |
-
|
311 |
-
return false;
|
312 |
-
}
|
313 |
-
|
314 |
-
/**
|
315 |
-
* @since 2.4.12
|
316 |
-
*/
|
317 |
-
public function get_elementor_edit_mode_meta_key() {
|
318 |
-
return self::$elementor_edit_mode_meta_key;
|
319 |
-
}
|
320 |
-
|
321 |
-
/**
|
322 |
-
* Localize editor settings.
|
323 |
-
*
|
324 |
-
* Filters the editor localized settings.
|
325 |
-
*
|
326 |
-
* @since 2.2.6
|
327 |
-
*
|
328 |
-
* @param array $localized_settings Localized settings.
|
329 |
-
* @param int $post_id The ID of the current post being edited.
|
330 |
-
*
|
331 |
-
* @return array
|
332 |
-
*/
|
333 |
-
public function filter__localize_settings( $localized_settings, $post_id ) {
|
334 |
-
|
335 |
-
if ( WPGlobus::Config()->builder->is_default_language() ) {
|
336 |
-
return $localized_settings;
|
337 |
-
}
|
338 |
-
|
339 |
-
/**
|
340 |
-
* @since 2.4.12
|
341 |
-
*/
|
342 |
-
if ( ! $this->is_elementor_support() ) {
|
343 |
-
return $localized_settings;
|
344 |
-
}
|
345 |
-
|
346 |
-
/**
|
347 |
-
* @since 2.2.31
|
348 |
-
*/
|
349 |
-
if ( 'external' !== WPGlobus::Config()->builder->get('elementor_css_print_method') ) {
|
350 |
-
return $localized_settings;
|
351 |
-
}
|
352 |
-
|
353 |
-
$url = get_permalink( $post_id );
|
354 |
-
|
355 |
-
$localized_settings['document']['urls']['permalink'] = WPGlobus_Utils::localize_url( $url, WPGlobus::Config()->builder->get_language() );
|
356 |
-
|
357 |
-
return $localized_settings;
|
358 |
-
}
|
359 |
-
|
360 |
-
/**
|
361 |
-
* To avoid output content with language marks from $post->post_content field on elementor builder page
|
362 |
-
* if "_elementor_data" meta has not content in extra language.
|
363 |
-
*
|
364 |
-
* @param WP_Post $object
|
365 |
-
*
|
366 |
-
* @return WP_Post
|
367 |
-
*/
|
368 |
-
public function filter__the_post( $object ) {
|
369 |
-
|
370 |
-
if ( 'post.php' !== WPGlobus::Config()->builder->get( 'pagenow' ) ) {
|
371 |
-
return $object;
|
372 |
-
}
|
373 |
-
|
374 |
-
/**
|
375 |
-
* @since 2.4.12
|
376 |
-
*/
|
377 |
-
if ( ! $this->is_elementor_support() ) {
|
378 |
-
return $object;
|
379 |
-
}
|
380 |
-
|
381 |
-
if ( is_null( $this->post_content ) ) {
|
382 |
-
$this->post_content = $object->post_content;
|
383 |
-
}
|
384 |
-
|
385 |
-
$_post = clone( $object );
|
386 |
-
$_post->post_content = WPGlobus_Core::text_filter( $this->post_content, WPGlobus::Config()->builder->get_language(), WPGlobus::RETURN_EMPTY );
|
387 |
-
|
388 |
-
/**
|
389 |
-
* @see \wp-includes\cache.php
|
390 |
-
*/
|
391 |
-
wp_cache_replace( $object->ID, $_post, 'posts' );
|
392 |
-
|
393 |
-
return $object;
|
394 |
-
}
|
395 |
-
|
396 |
-
/**
|
397 |
-
* @todo W.I.P
|
398 |
-
*/
|
399 |
-
public static function filter__update_metadata( $check, $object_id, $meta_key, $meta_value, $prev_value ) {
|
400 |
-
if ( '_elementor_css' != $meta_key ) {
|
401 |
-
return $check;
|
402 |
-
}
|
403 |
-
return $check;
|
404 |
-
}
|
405 |
-
|
406 |
-
/**
|
407 |
-
* Get meta callback.
|
408 |
-
*
|
409 |
-
* @param $check
|
410 |
-
* @param $object_id
|
411 |
-
* @param $meta_key
|
412 |
-
* @param $single
|
413 |
-
*
|
414 |
-
* @return string
|
415 |
-
*/
|
416 |
-
public static function filter__post_metadata(
|
417 |
-
$check, $object_id, $meta_key, /** @noinspection PhpUnusedParameterInspection */
|
418 |
-
$single
|
419 |
-
) {
|
420 |
-
|
421 |
-
if ( self::$elementor_data_meta_key === $meta_key ) {
|
422 |
-
|
423 |
-
$meta_cache = wp_cache_get( $object_id, 'post_meta' );
|
424 |
-
|
425 |
-
if ( is_admin() ) {
|
426 |
-
|
427 |
-
if ( isset( $meta_cache[ $meta_key ] ) && isset( $meta_cache[ $meta_key ][0] ) ) {
|
428 |
-
|
429 |
-
$_value = '';
|
430 |
-
|
431 |
-
if ( WPGlobus_Core::has_translations( $meta_cache[ $meta_key ][0] ) ) {
|
432 |
-
$_value = WPGlobus_Core::text_filter( $meta_cache[ $meta_key ][0], WPGlobus::Config()->builder->get_language() );
|
433 |
-
} else {
|
434 |
-
$_value = $meta_cache[ $meta_key ][0];
|
435 |
-
}
|
436 |
-
|
437 |
-
return $_value;
|
438 |
-
|
439 |
-
}
|
440 |
-
} else {
|
441 |
-
|
442 |
-
/**
|
443 |
-
* scope front.
|
444 |
-
*/
|
445 |
-
|
446 |
-
if ( isset( $meta_cache[ $meta_key ] ) && isset( $meta_cache[ $meta_key ][0] ) ) {
|
447 |
-
|
448 |
-
/** @noinspection PhpUnusedLocalVariableInspection */
|
449 |
-
$_value = '';
|
450 |
-
|
451 |
-
if ( WPGlobus_Core::has_translations( $meta_cache[ $meta_key ][0] ) ) {
|
452 |
-
//$_value = WPGlobus_Core::text_filter( $meta_cache[ $meta_key ][0], WPGlobus::Config()->builder->get_language(), WPGlobus::RETURN_EMPTY );
|
453 |
-
/**
|
454 |
-
* We can get current language from WPGlobus::Config().
|
455 |
-
*
|
456 |
-
* @todo just for testing purposes.
|
457 |
-
*/
|
458 |
-
//$_value = WPGlobus_Core::text_filter( $meta_cache[ $meta_key ][0], WPGlobus::Config()->language );
|
459 |
-
|
460 |
-
$_value = WPGlobus_Core::text_filter( $meta_cache[ $meta_key ][0], WPGlobus::Config()->builder->get_language() );
|
461 |
-
} else {
|
462 |
-
$_value = $meta_cache[ $meta_key ][0];
|
463 |
-
}
|
464 |
-
|
465 |
-
return $_value;
|
466 |
-
|
467 |
-
}
|
468 |
-
}
|
469 |
-
}
|
470 |
-
|
471 |
-
return $check;
|
472 |
-
|
473 |
-
}
|
474 |
-
|
475 |
-
/**
|
476 |
-
* Elementor editor footer.
|
477 |
-
*
|
478 |
-
* Fires on Elementor editor before closing the body tag.
|
479 |
-
* Used to prints scripts or any other HTML before closing the body tag.
|
480 |
-
*/
|
481 |
-
public function on__elementor_footer() {
|
482 |
-
|
483 |
-
/**
|
484 |
-
* @since 2.4.12
|
485 |
-
*/
|
486 |
-
if ( ! $this->is_elementor_support() ) {
|
487 |
-
return;
|
488 |
-
}
|
489 |
-
|
490 |
-
/**
|
491 |
-
* @since 2.2.31
|
492 |
-
*/
|
493 |
-
if ( 'external' != WPGlobus::Config()->builder->get('elementor_css_print_method') ) {
|
494 |
-
return;
|
495 |
-
}
|
496 |
-
|
497 |
-
$this->base_redirect_url = str_replace( array( '&language=' . WPGlobus::Config()->builder->get_language() ), '', $this->base_redirect_url );
|
498 |
-
$this->base_redirect_url = str_replace( '&action=edit', '&action=elementor', $this->base_redirect_url );
|
499 |
-
?>
|
500 |
-
<div id="wpglobus-elementor-wrapper">
|
501 |
-
<div class="elementor-panel-menu-item" id="wpglobus-elementor-panel-menu-item" style="cursor:auto;">
|
502 |
-
<div class="elementor-panel-menu-item-icon">
|
503 |
-
<i class="fa fa-globe"></i>
|
504 |
-
</div>
|
505 |
-
<div class="elementor-panel-menu-item-title" id="wpglobus-elementor-selector-box"
|
506 |
-
style="padding-top:0;">
|
507 |
-
<span id="wpglobus-elementor-selector-title"
|
508 |
-
style="cursor:pointer;"><?php esc_html_e( 'WPGlobus languages', 'wpglobus' ); ?></span>
|
509 |
-
<ul id="wpglobus-elementor-selector" style="display:none;margin:10px;" class="hidden">
|
510 |
-
<?php
|
511 |
-
foreach ( WPGlobus::Config()->enabled_languages as $language ) {
|
512 |
-
$_current = '';
|
513 |
-
if ( $language == WPGlobus::Config()->builder->get_language() ) {
|
514 |
-
$_current = esc_html__( 'current', 'wpglobus' );
|
515 |
-
$_current = ' - ' . $_current;
|
516 |
-
}
|
517 |
-
?>
|
518 |
-
<li style="margin-bottom:10px;cursor:auto;">
|
519 |
-
<a href="<?php echo esc_url( $this->base_redirect_url . '&language=' . $language ); ?>"><?php echo esc_html( WPGlobus::Config()->en_language_name[ $language ] . " ($language)" ); echo $_current; ?></a>
|
520 |
-
</li>
|
521 |
-
<?php
|
522 |
-
}
|
523 |
-
?>
|
524 |
-
</ul>
|
525 |
-
</div>
|
526 |
-
</div>
|
527 |
-
</div>
|
528 |
-
<?php // phpcs:disable ?>
|
529 |
-
<script type='text/javascript'>
|
530 |
-
/* <![CDATA[ */
|
531 |
-
var WPGlobusTimeID;
|
532 |
-
WPGlobusTimeID = setInterval(function(){
|
533 |
-
if ( jQuery("#elementor-panel-header-menu-button").length === 0 || 'undefined' === typeof elementor.config.version ) {
|
534 |
-
return;
|
535 |
-
}
|
536 |
-
clearInterval(WPGlobusTimeID);
|
537 |
-
var wpglobusElementorPanelMenu = jQuery("#wpglobus-elementor-wrapper").html();
|
538 |
-
jQuery(document).on('click', "#elementor-panel-header-menu-button", function () {
|
539 |
-
if ( elementor.config.version[0] == '3' ) {
|
540 |
-
jQuery(".elementor-panel-menu-item-exit-to-dashboard").before(wpglobusElementorPanelMenu);
|
541 |
-
} else {
|
542 |
-
jQuery(".elementor-panel-menu-item").eq(7).after(wpglobusElementorPanelMenu);
|
543 |
-
}
|
544 |
-
});
|
545 |
-
jQuery(document).on('click', "#wpglobus-elementor-selector-title", function () {
|
546 |
-
var $t = jQuery("#wpglobus-elementor-selector");
|
547 |
-
$t.toggleClass('hidden');
|
548 |
-
if ($t.hasClass('hidden')) {
|
549 |
-
$t.css({'display': 'none'});
|
550 |
-
jQuery('#wpglobus-elementor-selector-box').css({'padding-top': '0'});
|
551 |
-
} else {
|
552 |
-
jQuery('#wpglobus-elementor-selector-box').css({'padding-top': '10px'});
|
553 |
-
$t.css({'display': 'block'});
|
554 |
-
}
|
555 |
-
});
|
556 |
-
}, 500);
|
557 |
-
/* ]]> */
|
558 |
-
</script>
|
559 |
-
<?php // phpcs:enable ?>
|
560 |
-
<?php
|
561 |
-
}
|
562 |
-
|
563 |
-
/**
|
564 |
-
* Document edit url.
|
565 |
-
*
|
566 |
-
* Filters the document edit url.
|
567 |
-
*
|
568 |
-
* @param string $url The edit url.
|
569 |
-
* @param mixed $instance The document instance.
|
570 |
-
*
|
571 |
-
* @return string
|
572 |
-
*/
|
573 |
-
public function filter__url(
|
574 |
-
$url,
|
575 |
-
/**
|
576 |
-
* Unused.
|
577 |
-
*
|
578 |
-
* @noinspection PhpUnusedParameterInspection
|
579 |
-
*/
|
580 |
-
$instance
|
581 |
-
) {
|
582 |
-
|
583 |
-
/**
|
584 |
-
* @since 2.4.12
|
585 |
-
*/
|
586 |
-
if ( ! $this->is_elementor_support() ) {
|
587 |
-
return $url;
|
588 |
-
}
|
589 |
-
|
590 |
-
if ( 'external' === WPGlobus::Config()->builder->get('elementor_css_print_method') ) {
|
591 |
-
if ( false === strpos( $url, 'language' ) ) {
|
592 |
-
$url = $url . '&language=' . WPGlobus::Config()->builder->get_language();
|
593 |
-
}
|
594 |
-
} else {
|
595 |
-
if ( false === strpos( $url, 'language' ) ) {
|
596 |
-
$url = $url . '&language=' . WPGlobus::Config()->default_language;
|
597 |
-
}
|
598 |
-
}
|
599 |
-
|
600 |
-
$this->base_redirect_url = $url;
|
601 |
-
|
602 |
-
return $url;
|
603 |
-
}
|
604 |
-
|
605 |
-
/**
|
606 |
-
* Document "WordPress preview" URL.
|
607 |
-
*
|
608 |
-
* Filters the WordPress preview URL.
|
609 |
-
*
|
610 |
-
* @param string $url WordPress preview URL.
|
611 |
-
* @param mixed $instance The document instance.
|
612 |
-
*
|
613 |
-
* @return string
|
614 |
-
*/
|
615 |
-
public function filter__preview_url(
|
616 |
-
$url,
|
617 |
-
/**
|
618 |
-
* Unused.
|
619 |
-
*
|
620 |
-
* @noinspection PhpUnusedParameterInspection
|
621 |
-
*/
|
622 |
-
$instance
|
623 |
-
) {
|
624 |
-
|
625 |
-
/**
|
626 |
-
* @since 2.4.12
|
627 |
-
*/
|
628 |
-
if ( ! $this->is_elementor_support() ) {
|
629 |
-
return $url;
|
630 |
-
}
|
631 |
-
|
632 |
-
/**
|
633 |
-
* @since 2.2.31
|
634 |
-
*/
|
635 |
-
if ( 'external' !== WPGlobus::Config()->builder->get('elementor_css_print_method') ) {
|
636 |
-
return $url;
|
637 |
-
}
|
638 |
-
|
639 |
-
$url = WPGlobus_Utils::localize_url( $url, WPGlobus::Config()->builder->get_language() );
|
640 |
-
|
641 |
-
return $url;
|
642 |
-
}
|
643 |
-
|
644 |
-
/**
|
645 |
-
* Prints admin screen notices.
|
646 |
-
*
|
647 |
-
* @since 2.2.31
|
648 |
-
*/
|
649 |
-
public function on__admin_notice() {
|
650 |
-
|
651 |
-
if ( 'post.php' != WPGlobus::Config()->builder->get('pagenow') ) {
|
652 |
-
return;
|
653 |
-
}
|
654 |
-
|
655 |
-
/**
|
656 |
-
* @since 2.4.12
|
657 |
-
*/
|
658 |
-
if ( ! $this->is_elementor_support() ) {
|
659 |
-
return;
|
660 |
-
}
|
661 |
-
|
662 |
-
if ( 'external' == WPGlobus::Config()->builder->get('elementor_css_print_method') ) {
|
663 |
-
return;
|
664 |
-
}
|
665 |
-
|
666 |
-
$_url = add_query_arg(
|
667 |
-
array(
|
668 |
-
'page' => 'elementor#tab-advanced',
|
669 |
-
),
|
670 |
-
admin_url( 'admin.php' )
|
671 |
-
);
|
672 |
-
|
673 |
-
echo '<div class="notice error"><p>';
|
674 |
-
printf(
|
675 |
-
esc_html__( 'WPGlobus provides multilingual support for Elementor only when the option %1$s%2$s%3$s is set to %4$s.', 'wpglobus' ),
|
676 |
-
'<a href="'.$_url.'" target="_blank">',
|
677 |
-
'<strong>CSS Print Method</strong>',
|
678 |
-
'</a>',
|
679 |
-
'<strong>External File</strong>'
|
680 |
-
);
|
681 |
-
echo '</p></div>';
|
682 |
-
}
|
683 |
-
}
|
684 |
-
|
685 |
-
endif;
|
686 |
-
|
687 |
-
# --- EOF
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/includes/builders/elementor/readme.txt
DELETED
@@ -1,8 +0,0 @@
|
|
1 |
-
/**
|
2 |
-
* File: readme.txt
|
3 |
-
*
|
4 |
-
* @package WPGlobus\Builders\Elementor
|
5 |
-
* @author Alex Gor(alexgff)
|
6 |
-
*/
|
7 |
-
|
8 |
-
The handling of post meta fields @see wpglobus\configs\elementor.json
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/includes/builders/gutenberg/assets/css/dist/wpglobus-block-editor.css
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
.edit-post-pinned-plugins .components-icon-button.is-toggled svg.dashicons-admin-site,.edit-post-pinned-plugins .components-icon-button.is-toggled svg.dashicons-admin-site *{fill:#0000ff !important;display:none}.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) svg.dashicons-admin-site,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) svg.dashicons-admin-site *{fill:#0000ff;display:none}.edit-post-pinned-plugins .wpglobus-switcher-button{border-color:#cccccc;border-radius:3px}.wpglobus-block-editor-panel__notice{border-left:0}.wpglobus-block-editor-panel__notice .components-notice__content{margin-top:0;margin-bottom:0;color:#000;font-weight:500}.edit-post-layout .wpglobus-block-editor-panel__notice.components-notice{min-height:0}.edit-post-layout .wpglobus-block-editor-panel__settings-link{float:right;margin-bottom:10px}.edit-post-layout .wpglobus-block-editor-panel__info{float:left;margin-bottom:10px}.edit-post-layout .wpglobus-block-editor-panel__flag{vertical-align:middle}
|
2 |
-
|
3 |
-
/*# sourceMappingURL=wpglobus-block-editor.css.map */
|
|
|
|
|
|
trunk/includes/builders/gutenberg/assets/css/dist/wpglobus-block-editor.css.map
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
{"version":3,"sources":["wpglobus-block-editor.scss"],"names":[],"mappings":"AAAA,8KAEE,uBAAwB,CACxB,YAAa,CACd,0LAIC,YAAa,CACb,YAAa,CACd,oDAGC,oBAAqB,CACrB,iBAAkB,CACnB,qCAGC,aAAc,CACf,iEAGC,YAAa,CACb,eAAgB,CAChB,UAAW,CACX,eAAgB,CACjB,yEAGC,YAAa,CACd,8DAGC,WAAY,CACZ,kBAAmB,CACpB,qDAGC,UAAW,CACX,kBAAmB,CACpB,qDAGC,qBAAsB","file":"wpglobus-block-editor.css"}
|
|
trunk/includes/builders/gutenberg/assets/css/dist/wpglobus-block-editor.scss
DELETED
@@ -1,45 +0,0 @@
|
|
1 |
-
.edit-post-pinned-plugins .components-icon-button.is-toggled svg.dashicons-admin-site,
|
2 |
-
.edit-post-pinned-plugins .components-icon-button.is-toggled svg.dashicons-admin-site * {
|
3 |
-
fill: #0000ff !important;
|
4 |
-
display: none;
|
5 |
-
}
|
6 |
-
|
7 |
-
.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) svg.dashicons-admin-site,
|
8 |
-
.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) svg.dashicons-admin-site * {
|
9 |
-
fill: #0000ff;
|
10 |
-
display: none;
|
11 |
-
}
|
12 |
-
|
13 |
-
.edit-post-pinned-plugins .wpglobus-switcher-button {
|
14 |
-
border-color: #cccccc;
|
15 |
-
border-radius: 3px;
|
16 |
-
}
|
17 |
-
|
18 |
-
.wpglobus-block-editor-panel__notice {
|
19 |
-
border-left: 0;
|
20 |
-
}
|
21 |
-
|
22 |
-
.wpglobus-block-editor-panel__notice .components-notice__content {
|
23 |
-
margin-top: 0;
|
24 |
-
margin-bottom: 0;
|
25 |
-
color: #000;
|
26 |
-
font-weight: 500;
|
27 |
-
}
|
28 |
-
|
29 |
-
.edit-post-layout .wpglobus-block-editor-panel__notice.components-notice {
|
30 |
-
min-height: 0;
|
31 |
-
}
|
32 |
-
|
33 |
-
.edit-post-layout .wpglobus-block-editor-panel__settings-link {
|
34 |
-
float: right;
|
35 |
-
margin-bottom: 10px;
|
36 |
-
}
|
37 |
-
|
38 |
-
.edit-post-layout .wpglobus-block-editor-panel__info {
|
39 |
-
float: left;
|
40 |
-
margin-bottom: 10px;
|
41 |
-
}
|
42 |
-
|
43 |
-
.edit-post-layout .wpglobus-block-editor-panel__flag {
|
44 |
-
vertical-align: middle;
|
45 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/includes/builders/gutenberg/assets/css/dist/wpglobus-switcher.css
DELETED
@@ -1,116 +0,0 @@
|
|
1 |
-
.edit-post-pinned-plugins .components-icon-button.is-toggled svg.dashicons-admin-site,
|
2 |
-
.edit-post-pinned-plugins .components-icon-button.is-toggled svg.dashicons-admin-site *{fill:#0000ff !important;display:none}
|
3 |
-
.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) svg.dashicons-admin-site,
|
4 |
-
.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) svg.dashicons-admin-site *{fill:#0000ff;display:none}
|
5 |
-
.edit-post-pinned-plugins .wpglobus-switcher-button{border-color:#cccccc;border-radius:3px}
|
6 |
-
.edit-post-layout .wpglobus-switcher-panel__notice.components-notice{min-height:0}
|
7 |
-
.edit-post-layout .wpglobus-switcher-panel__settings-link{float:right;margin-bottom:10px}
|
8 |
-
.edit-post-layout .wpglobus-switcher-panel__info{float:left;margin-bottom:10px}
|
9 |
-
.edit-post-layout .wpglobus-switcher-panel__flag{vertical-align:middle}
|
10 |
-
.wpglobus-switcher-panel__notice{border-left:0}
|
11 |
-
.wpglobus-switcher-panel__notice .components-notice__content{margin-top:0;margin-bottom:0;color:#000;font-weight:500}
|
12 |
-
.wpglobus-switcher-panel__body .components-base-control__help{margin-top:10px}
|
13 |
-
.wpglobus-switcher-panel__body.is-opened{padding-top:0;padding-bottom:3em;}
|
14 |
-
.wpglobus-switcher-components-panel .wpglobus-switcher-message {
|
15 |
-
z-index:10;width:90%;position:absolute;border:2px solid #ff8100;margin:5px 10px;padding:5px;border-radius:6px;background-color:#ff8100;
|
16 |
-
font-size:14px;color:#000;font-weight:500;text-align:center;
|
17 |
-
}
|
18 |
-
.wpglobus-switcher-pulsate-radio-on {
|
19 |
-
-webkit-animation: pulsate-radio-on 0.3s ease-in-out both;
|
20 |
-
animation: pulsate-radio-on 0.3s ease-in-out both;
|
21 |
-
}
|
22 |
-
.wpglobus-switcher-pulsate-radio-off {
|
23 |
-
-webkit-animation: pulsate-radio-off 0.3s ease-in-out both;
|
24 |
-
animation: pulsate-radio-off 0.3s ease-in-out both;
|
25 |
-
}
|
26 |
-
.wpglobus-switcher-pulsate-radio {
|
27 |
-
-webkit-animation: pulsate-radio 0.5s ease-in-out infinite both;
|
28 |
-
animation: pulsate-radio 0.5s ease-in-out infinite both;
|
29 |
-
}
|
30 |
-
/** animation pulsate-radio-on */
|
31 |
-
@-webkit-keyframes pulsate-radio-on {
|
32 |
-
0% {
|
33 |
-
-webkit-transform: scale(0);
|
34 |
-
transform: scale(0);
|
35 |
-
}
|
36 |
-
50% {
|
37 |
-
-webkit-transform: scale(0.7);
|
38 |
-
transform: scale(0.7);
|
39 |
-
}
|
40 |
-
100% {
|
41 |
-
-webkit-transform: scale(1.1);
|
42 |
-
transform: scale(1.1);
|
43 |
-
}
|
44 |
-
}
|
45 |
-
@keyframes pulsate-radio-on {
|
46 |
-
0% {
|
47 |
-
-webkit-transform: scale(0);
|
48 |
-
transform: scale(0);
|
49 |
-
}
|
50 |
-
50% {
|
51 |
-
-webkit-transform: scale(0.7);
|
52 |
-
transform: scale(0.7);
|
53 |
-
}
|
54 |
-
100% {
|
55 |
-
-webkit-transform: scale(1.1);
|
56 |
-
transform: scale(1.1);
|
57 |
-
}
|
58 |
-
}
|
59 |
-
/** animation pulsate-radio-off */
|
60 |
-
@-webkit-keyframes pulsate-radio-off {
|
61 |
-
0% {
|
62 |
-
-webkit-transform: scale(1.1);
|
63 |
-
transform: scale(1.1);
|
64 |
-
}
|
65 |
-
50% {
|
66 |
-
-webkit-transform: scale(0.7);
|
67 |
-
transform: scale(0.7);
|
68 |
-
}
|
69 |
-
100% {
|
70 |
-
-webkit-transform: scale(0);
|
71 |
-
transform: scale(0);
|
72 |
-
}
|
73 |
-
}
|
74 |
-
@keyframes pulsate-radio-off {
|
75 |
-
0% {
|
76 |
-
-webkit-transform: scale(1.1);
|
77 |
-
transform: scale(1.1);
|
78 |
-
}
|
79 |
-
50% {
|
80 |
-
-webkit-transform: scale(0.7);
|
81 |
-
transform: scale(0.7);
|
82 |
-
}
|
83 |
-
100% {
|
84 |
-
-webkit-transform: scale(0);
|
85 |
-
transform: scale(0);
|
86 |
-
}
|
87 |
-
}
|
88 |
-
/** animation pulsate-radio */
|
89 |
-
@-webkit-keyframes pulsate-radio {
|
90 |
-
0% {
|
91 |
-
-webkit-transform: scale(1.1);
|
92 |
-
transform: scale(1.1);
|
93 |
-
}
|
94 |
-
50% {
|
95 |
-
-webkit-transform: scale(0.7);
|
96 |
-
transform: scale(0.7);
|
97 |
-
}
|
98 |
-
100% {
|
99 |
-
-webkit-transform: scale(1.1);
|
100 |
-
transform: scale(1.1);
|
101 |
-
}
|
102 |
-
}
|
103 |
-
@keyframes pulsate-radio {
|
104 |
-
0% {
|
105 |
-
-webkit-transform: scale(1.1);
|
106 |
-
transform: scale(1.1);
|
107 |
-
}
|
108 |
-
50% {
|
109 |
-
-webkit-transform: scale(0.7);
|
110 |
-
transform: scale(0.7);
|
111 |
-
}
|
112 |
-
100% {
|
113 |
-
-webkit-transform: scale(1.1);
|
114 |
-
transform: scale(1.1);
|
115 |
-
}
|
116 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/includes/builders/gutenberg/assets/css/wpglobus-gutenberg.css
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
.wpglobus-selector-grid{display:grid;grid-template-columns:40% 60%;place-items:center;grid-gap:0}.wpglobus-selector-grid .wpglobus-gutenberg-selector-column-2{width:90px}.wpglobus-gutenberg-selector-box{margin-left:220px}@media screen and (max-width: 599px){.wpglobus-gutenberg-selector-box{margin-left:40px}}@media screen and (max-width: 700px){.wpglobus-gutenberg-selector-column-1{height:25px;width:25px}.wpglobus-gutenberg-selector-column-2{display:none}}
|
2 |
-
|
3 |
-
/*# sourceMappingURL=wpglobus-gutenberg.css.map */
|
|
|
|
|
|
trunk/includes/builders/gutenberg/assets/css/wpglobus-gutenberg.css.map
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
{"version":3,"sources":["wpglobus-gutenberg.scss"],"names":[],"mappings":"AAAA,wBACE,YAAa,CACb,6BAA8B,CAC9B,kBAAmB,CACnB,UAAW,CACZ,8DAGC,UAAW,CACZ,iCAGC,iBAAkB,CACnB,qCAGC,iCACE,gBAAiB,CAClB,CAGH,qCACE,sCACE,WAAY,CACZ,UAAW,CACZ,sCAEC,YAAa,CACd","file":"wpglobus-gutenberg.css"}
|
|
trunk/includes/builders/gutenberg/assets/css/wpglobus-gutenberg.scss
DELETED
@@ -1,30 +0,0 @@
|
|
1 |
-
.wpglobus-selector-grid {
|
2 |
-
display: grid;
|
3 |
-
grid-template-columns: 40% 60%;
|
4 |
-
place-items: center;
|
5 |
-
grid-gap: 0;
|
6 |
-
}
|
7 |
-
|
8 |
-
.wpglobus-selector-grid .wpglobus-gutenberg-selector-column-2 {
|
9 |
-
width: 90px;
|
10 |
-
}
|
11 |
-
|
12 |
-
.wpglobus-gutenberg-selector-box {
|
13 |
-
margin-left: 220px;
|
14 |
-
}
|
15 |
-
|
16 |
-
@media screen and (max-width: 599px) {
|
17 |
-
.wpglobus-gutenberg-selector-box {
|
18 |
-
margin-left: 40px;
|
19 |
-
}
|
20 |
-
}
|
21 |
-
|
22 |
-
@media screen and (max-width: 700px) {
|
23 |
-
.wpglobus-gutenberg-selector-column-1 {
|
24 |
-
height: 25px;
|
25 |
-
width: 25px;
|
26 |
-
}
|
27 |
-
.wpglobus-gutenberg-selector-column-2 {
|
28 |
-
display: none;
|
29 |
-
}
|
30 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/includes/builders/gutenberg/assets/js/dist/wpglobus-block-editor.js
DELETED
@@ -1,607 +0,0 @@
|
|
1 |
-
/******/ (function(modules) { // webpackBootstrap
|
2 |
-
/******/ // The module cache
|
3 |
-
/******/ var installedModules = {};
|
4 |
-
/******/
|
5 |
-
/******/ // The require function
|
6 |
-
/******/ function __webpack_require__(moduleId) {
|
7 |
-
/******/
|
8 |
-
/******/ // Check if module is in cache
|
9 |
-
/******/ if(installedModules[moduleId]) {
|
10 |
-
/******/ return installedModules[moduleId].exports;
|
11 |
-
/******/ }
|
12 |
-
/******/ // Create a new module (and put it into the cache)
|
13 |
-
/******/ var module = installedModules[moduleId] = {
|
14 |
-
/******/ i: moduleId,
|
15 |
-
/******/ l: false,
|
16 |
-
/******/ exports: {}
|
17 |
-
/******/ };
|
18 |
-
/******/
|
19 |
-
/******/ // Execute the module function
|
20 |
-
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
|
21 |
-
/******/
|
22 |
-
/******/ // Flag the module as loaded
|
23 |
-
/******/ module.l = true;
|
24 |
-
/******/
|
25 |
-
/******/ // Return the exports of the module
|
26 |
-
/******/ return module.exports;
|
27 |
-
/******/ }
|
28 |
-
/******/
|
29 |
-
/******/
|
30 |
-
/******/ // expose the modules object (__webpack_modules__)
|
31 |
-
/******/ __webpack_require__.m = modules;
|
32 |
-
/******/
|
33 |
-
/******/ // expose the module cache
|
34 |
-
/******/ __webpack_require__.c = installedModules;
|
35 |
-
/******/
|
36 |
-
/******/ // define getter function for harmony exports
|
37 |
-
/******/ __webpack_require__.d = function(exports, name, getter) {
|
38 |
-
/******/ if(!__webpack_require__.o(exports, name)) {
|
39 |
-
/******/ Object.defineProperty(exports, name, {
|
40 |
-
/******/ configurable: false,
|
41 |
-
/******/ enumerable: true,
|
42 |
-
/******/ get: getter
|
43 |
-
/******/ });
|
44 |
-
/******/ }
|
45 |
-
/******/ };
|
46 |
-
/******/
|
47 |
-
/******/ // getDefaultExport function for compatibility with non-harmony modules
|
48 |
-
/******/ __webpack_require__.n = function(module) {
|
49 |
-
/******/ var getter = module && module.__esModule ?
|
50 |
-
/******/ function getDefault() { return module['default']; } :
|
51 |
-
/******/ function getModuleExports() { return module; };
|
52 |
-
/******/ __webpack_require__.d(getter, 'a', getter);
|
53 |
-
/******/ return getter;
|
54 |
-
/******/ };
|
55 |
-
/******/
|
56 |
-
/******/ // Object.prototype.hasOwnProperty.call
|
57 |
-
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
|
58 |
-
/******/
|
59 |
-
/******/ // __webpack_public_path__
|
60 |
-
/******/ __webpack_require__.p = "";
|
61 |
-
/******/
|
62 |
-
/******/ // Load entry module and return exports
|
63 |
-
/******/ return __webpack_require__(__webpack_require__.s = 41);
|
64 |
-
/******/ })
|
65 |
-
/************************************************************************/
|
66 |
-
/******/ ([
|
67 |
-
/* 0 */
|
68 |
-
/***/ (function(module, exports) {
|
69 |
-
|
70 |
-
eval("var core = module.exports = { version: '2.6.5' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMC5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fY29yZS5qcz8xNWUwIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBjb3JlID0gbW9kdWxlLmV4cG9ydHMgPSB7IHZlcnNpb246ICcyLjYuNScgfTtcbmlmICh0eXBlb2YgX19lID09ICdudW1iZXInKSBfX2UgPSBjb3JlOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVuZGVmXG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fY29yZS5qc1xuLy8gbW9kdWxlIGlkID0gMFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///0\n");
|
71 |
-
|
72 |
-
/***/ }),
|
73 |
-
/* 1 */
|
74 |
-
/***/ (function(module, exports) {
|
75 |
-
|
76 |
-
eval("// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fZ2xvYmFsLmpzP2VjYWIiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvaXNzdWVzLzg2I2lzc3VlY29tbWVudC0xMTU3NTkwMjhcbnZhciBnbG9iYWwgPSBtb2R1bGUuZXhwb3J0cyA9IHR5cGVvZiB3aW5kb3cgIT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93Lk1hdGggPT0gTWF0aFxuICA/IHdpbmRvdyA6IHR5cGVvZiBzZWxmICE9ICd1bmRlZmluZWQnICYmIHNlbGYuTWF0aCA9PSBNYXRoID8gc2VsZlxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tbmV3LWZ1bmNcbiAgOiBGdW5jdGlvbigncmV0dXJuIHRoaXMnKSgpO1xuaWYgKHR5cGVvZiBfX2cgPT0gJ251bWJlcicpIF9fZyA9IGdsb2JhbDsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bmRlZlxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2dsb2JhbC5qc1xuLy8gbW9kdWxlIGlkID0gMVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///1\n");
|
77 |
-
|
78 |
-
/***/ }),
|
79 |
-
/* 2 */
|
80 |
-
/***/ (function(module, exports) {
|
81 |
-
|
82 |
-
eval("var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMi5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9faGFzLmpzPzBmNjIiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIGhhc093blByb3BlcnR5ID0ge30uaGFzT3duUHJvcGVydHk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCwga2V5KSB7XG4gIHJldHVybiBoYXNPd25Qcm9wZXJ0eS5jYWxsKGl0LCBrZXkpO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19oYXMuanNcbi8vIG1vZHVsZSBpZCA9IDJcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///2\n");
|
83 |
-
|
84 |
-
/***/ }),
|
85 |
-
/* 3 */
|
86 |
-
/***/ (function(module, exports, __webpack_require__) {
|
87 |
-
|
88 |
-
eval("var anObject = __webpack_require__(10);\nvar IE8_DOM_DEFINE = __webpack_require__(31);\nvar toPrimitive = __webpack_require__(18);\nvar dP = Object.defineProperty;\n\nexports.f = __webpack_require__(4) ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fb2JqZWN0LWRwLmpzPzdhZjAiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi9fYW4tb2JqZWN0Jyk7XG52YXIgSUU4X0RPTV9ERUZJTkUgPSByZXF1aXJlKCcuL19pZTgtZG9tLWRlZmluZScpO1xudmFyIHRvUHJpbWl0aXZlID0gcmVxdWlyZSgnLi9fdG8tcHJpbWl0aXZlJyk7XG52YXIgZFAgPSBPYmplY3QuZGVmaW5lUHJvcGVydHk7XG5cbmV4cG9ydHMuZiA9IHJlcXVpcmUoJy4vX2Rlc2NyaXB0b3JzJykgPyBPYmplY3QuZGVmaW5lUHJvcGVydHkgOiBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0eShPLCBQLCBBdHRyaWJ1dGVzKSB7XG4gIGFuT2JqZWN0KE8pO1xuICBQID0gdG9QcmltaXRpdmUoUCwgdHJ1ZSk7XG4gIGFuT2JqZWN0KEF0dHJpYnV0ZXMpO1xuICBpZiAoSUU4X0RPTV9ERUZJTkUpIHRyeSB7XG4gICAgcmV0dXJuIGRQKE8sIFAsIEF0dHJpYnV0ZXMpO1xuICB9IGNhdGNoIChlKSB7IC8qIGVtcHR5ICovIH1cbiAgaWYgKCdnZXQnIGluIEF0dHJpYnV0ZXMgfHwgJ3NldCcgaW4gQXR0cmlidXRlcykgdGhyb3cgVHlwZUVycm9yKCdBY2Nlc3NvcnMgbm90IHN1cHBvcnRlZCEnKTtcbiAgaWYgKCd2YWx1ZScgaW4gQXR0cmlidXRlcykgT1tQXSA9IEF0dHJpYnV0ZXMudmFsdWU7XG4gIHJldHVybiBPO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3QtZHAuanNcbi8vIG1vZHVsZSBpZCA9IDNcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///3\n");
|
89 |
-
|
90 |
-
/***/ }),
|
91 |
-
/* 4 */
|
92 |
-
/***/ (function(module, exports, __webpack_require__) {
|
93 |
-
|
94 |
-
eval("// Thank's IE8 for his funny defineProperty\nmodule.exports = !__webpack_require__(11)(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNC5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fZGVzY3JpcHRvcnMuanM/Zjg0ZCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGFuaydzIElFOCBmb3IgaGlzIGZ1bm55IGRlZmluZVByb3BlcnR5XG5tb2R1bGUuZXhwb3J0cyA9ICFyZXF1aXJlKCcuL19mYWlscycpKGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2EnLCB7IGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gNzsgfSB9KS5hICE9IDc7XG59KTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19kZXNjcmlwdG9ycy5qc1xuLy8gbW9kdWxlIGlkID0gNFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///4\n");
|
95 |
-
|
96 |
-
/***/ }),
|
97 |
-
/* 5 */
|
98 |
-
/***/ (function(module, exports, __webpack_require__) {
|
99 |
-
|
100 |
-
eval("var global = __webpack_require__(1);\nvar core = __webpack_require__(0);\nvar ctx = __webpack_require__(30);\nvar hide = __webpack_require__(6);\nvar has = __webpack_require__(2);\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && has(exports, key)) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fZXhwb3J0LmpzPzkwY2QiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4vX2dsb2JhbCcpO1xudmFyIGNvcmUgPSByZXF1aXJlKCcuL19jb3JlJyk7XG52YXIgY3R4ID0gcmVxdWlyZSgnLi9fY3R4Jyk7XG52YXIgaGlkZSA9IHJlcXVpcmUoJy4vX2hpZGUnKTtcbnZhciBoYXMgPSByZXF1aXJlKCcuL19oYXMnKTtcbnZhciBQUk9UT1RZUEUgPSAncHJvdG90eXBlJztcblxudmFyICRleHBvcnQgPSBmdW5jdGlvbiAodHlwZSwgbmFtZSwgc291cmNlKSB7XG4gIHZhciBJU19GT1JDRUQgPSB0eXBlICYgJGV4cG9ydC5GO1xuICB2YXIgSVNfR0xPQkFMID0gdHlwZSAmICRleHBvcnQuRztcbiAgdmFyIElTX1NUQVRJQyA9IHR5cGUgJiAkZXhwb3J0LlM7XG4gIHZhciBJU19QUk9UTyA9IHR5cGUgJiAkZXhwb3J0LlA7XG4gIHZhciBJU19CSU5EID0gdHlwZSAmICRleHBvcnQuQjtcbiAgdmFyIElTX1dSQVAgPSB0eXBlICYgJGV4cG9ydC5XO1xuICB2YXIgZXhwb3J0cyA9IElTX0dMT0JBTCA/IGNvcmUgOiBjb3JlW25hbWVdIHx8IChjb3JlW25hbWVdID0ge30pO1xuICB2YXIgZXhwUHJvdG8gPSBleHBvcnRzW1BST1RPVFlQRV07XG4gIHZhciB0YXJnZXQgPSBJU19HTE9CQUwgPyBnbG9iYWwgOiBJU19TVEFUSUMgPyBnbG9iYWxbbmFtZV0gOiAoZ2xvYmFsW25hbWVdIHx8IHt9KVtQUk9UT1RZUEVdO1xuICB2YXIga2V5LCBvd24sIG91dDtcbiAgaWYgKElTX0dMT0JBTCkgc291cmNlID0gbmFtZTtcbiAgZm9yIChrZXkgaW4gc291cmNlKSB7XG4gICAgLy8gY29udGFpbnMgaW4gbmF0aXZlXG4gICAgb3duID0gIUlTX0ZPUkNFRCAmJiB0YXJnZXQgJiYgdGFyZ2V0W2tleV0gIT09IHVuZGVmaW5lZDtcbiAgICBpZiAob3duICYmIGhhcyhleHBvcnRzLCBrZXkpKSBjb250aW51ZTtcbiAgICAvLyBleHBvcnQgbmF0aXZlIG9yIHBhc3NlZFxuICAgIG91dCA9IG93biA/IHRhcmdldFtrZXldIDogc291cmNlW2tleV07XG4gICAgLy8gcHJldmVudCBnbG9iYWwgcG9sbHV0aW9uIGZvciBuYW1lc3BhY2VzXG4gICAgZXhwb3J0c1trZXldID0gSVNfR0xPQkFMICYmIHR5cGVvZiB0YXJnZXRba2V5XSAhPSAnZnVuY3Rpb24nID8gc291cmNlW2tleV1cbiAgICAvLyBiaW5kIHRpbWVycyB0byBnbG9iYWwgZm9yIGNhbGwgZnJvbSBleHBvcnQgY29udGV4dFxuICAgIDogSVNfQklORCAmJiBvd24gPyBjdHgob3V0LCBnbG9iYWwpXG4gICAgLy8gd3JhcCBnbG9iYWwgY29uc3RydWN0b3JzIGZvciBwcmV2ZW50IGNoYW5nZSB0aGVtIGluIGxpYnJhcnlcbiAgICA6IElTX1dSQVAgJiYgdGFyZ2V0W2tleV0gPT0gb3V0ID8gKGZ1bmN0aW9uIChDKSB7XG4gICAgICB2YXIgRiA9IGZ1bmN0aW9uIChhLCBiLCBjKSB7XG4gICAgICAgIGlmICh0aGlzIGluc3RhbmNlb2YgQykge1xuICAgICAgICAgIHN3aXRjaCAoYXJndW1lbnRzLmxlbmd0aCkge1xuICAgICAgICAgICAgY2FzZSAwOiByZXR1cm4gbmV3IEMoKTtcbiAgICAgICAgICAgIGNhc2UgMTogcmV0dXJuIG5ldyBDKGEpO1xuICAgICAgICAgICAgY2FzZSAyOiByZXR1cm4gbmV3IEMoYSwgYik7XG4gICAgICAgICAgfSByZXR1cm4gbmV3IEMoYSwgYiwgYyk7XG4gICAgICAgIH0gcmV0dXJuIEMuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgIH07XG4gICAgICBGW1BST1RPVFlQRV0gPSBDW1BST1RPVFlQRV07XG4gICAgICByZXR1cm4gRjtcbiAgICAvLyBtYWtlIHN0YXRpYyB2ZXJzaW9ucyBmb3IgcHJvdG90eXBlIG1ldGhvZHNcbiAgICB9KShvdXQpIDogSVNfUFJPVE8gJiYgdHlwZW9mIG91dCA9PSAnZnVuY3Rpb24nID8gY3R4KEZ1bmN0aW9uLmNhbGwsIG91dCkgOiBvdXQ7XG4gICAgLy8gZXhwb3J0IHByb3RvIG1ldGhvZHMgdG8gY29yZS4lQ09OU1RSVUNUT1IlLm1ldGhvZHMuJU5BTUUlXG4gICAgaWYgKElTX1BST1RPKSB7XG4gICAgICAoZXhwb3J0cy52aXJ0dWFsIHx8IChleHBvcnRzLnZpcnR1YWwgPSB7fSkpW2tleV0gPSBvdXQ7XG4gICAgICAvLyBleHBvcnQgcHJvdG8gbWV0aG9kcyB0byBjb3JlLiVDT05TVFJVQ1RPUiUucHJvdG90eXBlLiVOQU1FJVxuICAgICAgaWYgKHR5cGUgJiAkZXhwb3J0LlIgJiYgZXhwUHJvdG8gJiYgIWV4cFByb3RvW2tleV0pIGhpZGUoZXhwUHJvdG8sIGtleSwgb3V0KTtcbiAgICB9XG4gIH1cbn07XG4vLyB0eXBlIGJpdG1hcFxuJGV4cG9ydC5GID0gMTsgICAvLyBmb3JjZWRcbiRleHBvcnQuRyA9IDI7ICAgLy8gZ2xvYmFsXG4kZXhwb3J0LlMgPSA0OyAgIC8vIHN0YXRpY1xuJGV4cG9ydC5QID0gODsgICAvLyBwcm90b1xuJGV4cG9ydC5CID0gMTY7ICAvLyBiaW5kXG4kZXhwb3J0LlcgPSAzMjsgIC8vIHdyYXBcbiRleHBvcnQuVSA9IDY0OyAgLy8gc2FmZVxuJGV4cG9ydC5SID0gMTI4OyAvLyByZWFsIHByb3RvIG1ldGhvZCBmb3IgYGxpYnJhcnlgXG5tb2R1bGUuZXhwb3J0cyA9ICRleHBvcnQ7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fZXhwb3J0LmpzXG4vLyBtb2R1bGUgaWQgPSA1XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///5\n");
|
101 |
-
|
102 |
-
/***/ }),
|
103 |
-
/* 6 */
|
104 |
-
/***/ (function(module, exports, __webpack_require__) {
|
105 |
-
|
106 |
-
eval("var dP = __webpack_require__(3);\nvar createDesc = __webpack_require__(14);\nmodule.exports = __webpack_require__(4) ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNi5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9faGlkZS5qcz84NDljIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBkUCA9IHJlcXVpcmUoJy4vX29iamVjdC1kcCcpO1xudmFyIGNyZWF0ZURlc2MgPSByZXF1aXJlKCcuL19wcm9wZXJ0eS1kZXNjJyk7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vX2Rlc2NyaXB0b3JzJykgPyBmdW5jdGlvbiAob2JqZWN0LCBrZXksIHZhbHVlKSB7XG4gIHJldHVybiBkUC5mKG9iamVjdCwga2V5LCBjcmVhdGVEZXNjKDEsIHZhbHVlKSk7XG59IDogZnVuY3Rpb24gKG9iamVjdCwga2V5LCB2YWx1ZSkge1xuICBvYmplY3Rba2V5XSA9IHZhbHVlO1xuICByZXR1cm4gb2JqZWN0O1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19oaWRlLmpzXG4vLyBtb2R1bGUgaWQgPSA2XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///6\n");
|
107 |
-
|
108 |
-
/***/ }),
|
109 |
-
/* 7 */
|
110 |
-
/***/ (function(module, exports) {
|
111 |
-
|
112 |
-
eval("module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9faXMtb2JqZWN0LmpzPzEyYTgiXSwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIHR5cGVvZiBpdCA9PT0gJ29iamVjdCcgPyBpdCAhPT0gbnVsbCA6IHR5cGVvZiBpdCA9PT0gJ2Z1bmN0aW9uJztcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9faXMtb2JqZWN0LmpzXG4vLyBtb2R1bGUgaWQgPSA3XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///7\n");
|
113 |
-
|
114 |
-
/***/ }),
|
115 |
-
/* 8 */
|
116 |
-
/***/ (function(module, exports, __webpack_require__) {
|
117 |
-
|
118 |
-
eval("// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = __webpack_require__(61);\nvar defined = __webpack_require__(15);\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiOC5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fdG8taW9iamVjdC5qcz80ZGM0Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIHRvIGluZGV4ZWQgb2JqZWN0LCB0b09iamVjdCB3aXRoIGZhbGxiYWNrIGZvciBub24tYXJyYXktbGlrZSBFUzMgc3RyaW5nc1xudmFyIElPYmplY3QgPSByZXF1aXJlKCcuL19pb2JqZWN0Jyk7XG52YXIgZGVmaW5lZCA9IHJlcXVpcmUoJy4vX2RlZmluZWQnKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBJT2JqZWN0KGRlZmluZWQoaXQpKTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fdG8taW9iamVjdC5qc1xuLy8gbW9kdWxlIGlkID0gOFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///8\n");
|
119 |
-
|
120 |
-
/***/ }),
|
121 |
-
/* 9 */
|
122 |
-
/***/ (function(module, exports, __webpack_require__) {
|
123 |
-
|
124 |
-
eval("var store = __webpack_require__(17)('wks');\nvar uid = __webpack_require__(13);\nvar Symbol = __webpack_require__(1).Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiOS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fd2tzLmpzPzc1MmMiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIHN0b3JlID0gcmVxdWlyZSgnLi9fc2hhcmVkJykoJ3drcycpO1xudmFyIHVpZCA9IHJlcXVpcmUoJy4vX3VpZCcpO1xudmFyIFN5bWJvbCA9IHJlcXVpcmUoJy4vX2dsb2JhbCcpLlN5bWJvbDtcbnZhciBVU0VfU1lNQk9MID0gdHlwZW9mIFN5bWJvbCA9PSAnZnVuY3Rpb24nO1xuXG52YXIgJGV4cG9ydHMgPSBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChuYW1lKSB7XG4gIHJldHVybiBzdG9yZVtuYW1lXSB8fCAoc3RvcmVbbmFtZV0gPVxuICAgIFVTRV9TWU1CT0wgJiYgU3ltYm9sW25hbWVdIHx8IChVU0VfU1lNQk9MID8gU3ltYm9sIDogdWlkKSgnU3ltYm9sLicgKyBuYW1lKSk7XG59O1xuXG4kZXhwb3J0cy5zdG9yZSA9IHN0b3JlO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3drcy5qc1xuLy8gbW9kdWxlIGlkID0gOVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///9\n");
|
125 |
-
|
126 |
-
/***/ }),
|
127 |
-
/* 10 */
|
128 |
-
/***/ (function(module, exports, __webpack_require__) {
|
129 |
-
|
130 |
-
eval("var isObject = __webpack_require__(7);\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTAuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2FuLW9iamVjdC5qcz9lZmIzIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4vX2lzLW9iamVjdCcpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgaWYgKCFpc09iamVjdChpdCkpIHRocm93IFR5cGVFcnJvcihpdCArICcgaXMgbm90IGFuIG9iamVjdCEnKTtcbiAgcmV0dXJuIGl0O1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19hbi1vYmplY3QuanNcbi8vIG1vZHVsZSBpZCA9IDEwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///10\n");
|
131 |
-
|
132 |
-
/***/ }),
|
133 |
-
/* 11 */
|
134 |
-
/***/ (function(module, exports) {
|
135 |
-
|
136 |
-
eval("module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTEuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2ZhaWxzLmpzPzRiY2QiXSwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoZXhlYykge1xuICB0cnkge1xuICAgIHJldHVybiAhIWV4ZWMoKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2ZhaWxzLmpzXG4vLyBtb2R1bGUgaWQgPSAxMVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///11\n");
|
137 |
-
|
138 |
-
/***/ }),
|
139 |
-
/* 12 */
|
140 |
-
/***/ (function(module, exports) {
|
141 |
-
|
142 |
-
eval("module.exports = true;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTIuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2xpYnJhcnkuanM/M2I4OCJdLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHRydWU7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fbGlicmFyeS5qc1xuLy8gbW9kdWxlIGlkID0gMTJcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///12\n");
|
143 |
-
|
144 |
-
/***/ }),
|
145 |
-
/* 13 */
|
146 |
-
/***/ (function(module, exports) {
|
147 |
-
|
148 |
-
eval("var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3VpZC5qcz9kYzRhIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBpZCA9IDA7XG52YXIgcHggPSBNYXRoLnJhbmRvbSgpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoa2V5KSB7XG4gIHJldHVybiAnU3ltYm9sKCcuY29uY2F0KGtleSA9PT0gdW5kZWZpbmVkID8gJycgOiBrZXksICcpXycsICgrK2lkICsgcHgpLnRvU3RyaW5nKDM2KSk7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3VpZC5qc1xuLy8gbW9kdWxlIGlkID0gMTNcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///13\n");
|
149 |
-
|
150 |
-
/***/ }),
|
151 |
-
/* 14 */
|
152 |
-
/***/ (function(module, exports) {
|
153 |
-
|
154 |
-
eval("module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTQuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3Byb3BlcnR5LWRlc2MuanM/NWZjMCJdLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChiaXRtYXAsIHZhbHVlKSB7XG4gIHJldHVybiB7XG4gICAgZW51bWVyYWJsZTogIShiaXRtYXAgJiAxKSxcbiAgICBjb25maWd1cmFibGU6ICEoYml0bWFwICYgMiksXG4gICAgd3JpdGFibGU6ICEoYml0bWFwICYgNCksXG4gICAgdmFsdWU6IHZhbHVlXG4gIH07XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3Byb3BlcnR5LWRlc2MuanNcbi8vIG1vZHVsZSBpZCA9IDE0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///14\n");
|
155 |
-
|
156 |
-
/***/ }),
|
157 |
-
/* 15 */
|
158 |
-
/***/ (function(module, exports) {
|
159 |
-
|
160 |
-
eval("// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTUuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2RlZmluZWQuanM/ZTc2OCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyA3LjIuMSBSZXF1aXJlT2JqZWN0Q29lcmNpYmxlKGFyZ3VtZW50KVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgaWYgKGl0ID09IHVuZGVmaW5lZCkgdGhyb3cgVHlwZUVycm9yKFwiQ2FuJ3QgY2FsbCBtZXRob2Qgb24gIFwiICsgaXQpO1xuICByZXR1cm4gaXQ7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2RlZmluZWQuanNcbi8vIG1vZHVsZSBpZCA9IDE1XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///15\n");
|
161 |
-
|
162 |
-
/***/ }),
|
163 |
-
/* 16 */
|
164 |
-
/***/ (function(module, exports, __webpack_require__) {
|
165 |
-
|
166 |
-
eval("var shared = __webpack_require__(17)('keys');\nvar uid = __webpack_require__(13);\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTYuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3NoYXJlZC1rZXkuanM/NmIxZCJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgc2hhcmVkID0gcmVxdWlyZSgnLi9fc2hhcmVkJykoJ2tleXMnKTtcbnZhciB1aWQgPSByZXF1aXJlKCcuL191aWQnKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGtleSkge1xuICByZXR1cm4gc2hhcmVkW2tleV0gfHwgKHNoYXJlZFtrZXldID0gdWlkKGtleSkpO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19zaGFyZWQta2V5LmpzXG4vLyBtb2R1bGUgaWQgPSAxNlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///16\n");
|
167 |
-
|
168 |
-
/***/ }),
|
169 |
-
/* 17 */
|
170 |
-
/***/ (function(module, exports, __webpack_require__) {
|
171 |
-
|
172 |
-
eval("var core = __webpack_require__(0);\nvar global = __webpack_require__(1);\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: __webpack_require__(12) ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTcuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3NoYXJlZC5qcz83YmMwIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBjb3JlID0gcmVxdWlyZSgnLi9fY29yZScpO1xudmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4vX2dsb2JhbCcpO1xudmFyIFNIQVJFRCA9ICdfX2NvcmUtanNfc2hhcmVkX18nO1xudmFyIHN0b3JlID0gZ2xvYmFsW1NIQVJFRF0gfHwgKGdsb2JhbFtTSEFSRURdID0ge30pO1xuXG4obW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkge1xuICByZXR1cm4gc3RvcmVba2V5XSB8fCAoc3RvcmVba2V5XSA9IHZhbHVlICE9PSB1bmRlZmluZWQgPyB2YWx1ZSA6IHt9KTtcbn0pKCd2ZXJzaW9ucycsIFtdKS5wdXNoKHtcbiAgdmVyc2lvbjogY29yZS52ZXJzaW9uLFxuICBtb2RlOiByZXF1aXJlKCcuL19saWJyYXJ5JykgPyAncHVyZScgOiAnZ2xvYmFsJyxcbiAgY29weXJpZ2h0OiAnwqkgMjAxOSBEZW5pcyBQdXNoa2FyZXYgKHpsb2lyb2NrLnJ1KSdcbn0pO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3NoYXJlZC5qc1xuLy8gbW9kdWxlIGlkID0gMTdcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///17\n");
|
173 |
-
|
174 |
-
/***/ }),
|
175 |
-
/* 18 */
|
176 |
-
/***/ (function(module, exports, __webpack_require__) {
|
177 |
-
|
178 |
-
eval("// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = __webpack_require__(7);\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTguanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3RvLXByaW1pdGl2ZS5qcz8zMjYzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIDcuMS4xIFRvUHJpbWl0aXZlKGlucHV0IFssIFByZWZlcnJlZFR5cGVdKVxudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9faXMtb2JqZWN0Jyk7XG4vLyBpbnN0ZWFkIG9mIHRoZSBFUzYgc3BlYyB2ZXJzaW9uLCB3ZSBkaWRuJ3QgaW1wbGVtZW50IEBAdG9QcmltaXRpdmUgY2FzZVxuLy8gYW5kIHRoZSBzZWNvbmQgYXJndW1lbnQgLSBmbGFnIC0gcHJlZmVycmVkIHR5cGUgaXMgYSBzdHJpbmdcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0LCBTKSB7XG4gIGlmICghaXNPYmplY3QoaXQpKSByZXR1cm4gaXQ7XG4gIHZhciBmbiwgdmFsO1xuICBpZiAoUyAmJiB0eXBlb2YgKGZuID0gaXQudG9TdHJpbmcpID09ICdmdW5jdGlvbicgJiYgIWlzT2JqZWN0KHZhbCA9IGZuLmNhbGwoaXQpKSkgcmV0dXJuIHZhbDtcbiAgaWYgKHR5cGVvZiAoZm4gPSBpdC52YWx1ZU9mKSA9PSAnZnVuY3Rpb24nICYmICFpc09iamVjdCh2YWwgPSBmbi5jYWxsKGl0KSkpIHJldHVybiB2YWw7XG4gIGlmICghUyAmJiB0eXBlb2YgKGZuID0gaXQudG9TdHJpbmcpID09ICdmdW5jdGlvbicgJiYgIWlzT2JqZWN0KHZhbCA9IGZuLmNhbGwoaXQpKSkgcmV0dXJuIHZhbDtcbiAgdGhyb3cgVHlwZUVycm9yKFwiQ2FuJ3QgY29udmVydCBvYmplY3QgdG8gcHJpbWl0aXZlIHZhbHVlXCIpO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL190by1wcmltaXRpdmUuanNcbi8vIG1vZHVsZSBpZCA9IDE4XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///18\n");
|
179 |
-
|
180 |
-
/***/ }),
|
181 |
-
/* 19 */
|
182 |
-
/***/ (function(module, exports) {
|
183 |
-
|
184 |
-
eval("// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTkuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3RvLWludGVnZXIuanM/NTJlMSJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyA3LjEuNCBUb0ludGVnZXJcbnZhciBjZWlsID0gTWF0aC5jZWlsO1xudmFyIGZsb29yID0gTWF0aC5mbG9vcjtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBpc05hTihpdCA9ICtpdCkgPyAwIDogKGl0ID4gMCA/IGZsb29yIDogY2VpbCkoaXQpO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL190by1pbnRlZ2VyLmpzXG4vLyBtb2R1bGUgaWQgPSAxOVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///19\n");
|
185 |
-
|
186 |
-
/***/ }),
|
187 |
-
/* 20 */
|
188 |
-
/***/ (function(module, exports) {
|
189 |
-
|
190 |
-
eval("module.exports = {};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjAuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2l0ZXJhdG9ycy5qcz9mZGI0Il0sInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0ge307XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9faXRlcmF0b3JzLmpzXG4vLyBtb2R1bGUgaWQgPSAyMFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///20\n");
|
191 |
-
|
192 |
-
/***/ }),
|
193 |
-
/* 21 */
|
194 |
-
/***/ (function(module, exports, __webpack_require__) {
|
195 |
-
|
196 |
-
eval("// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = __webpack_require__(10);\nvar dPs = __webpack_require__(60);\nvar enumBugKeys = __webpack_require__(23);\nvar IE_PROTO = __webpack_require__(16)('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = __webpack_require__(32)('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n __webpack_require__(65).appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjEuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1jcmVhdGUuanM/NjI4NiJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyAxOS4xLjIuMiAvIDE1LjIuMy41IE9iamVjdC5jcmVhdGUoTyBbLCBQcm9wZXJ0aWVzXSlcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4vX2FuLW9iamVjdCcpO1xudmFyIGRQcyA9IHJlcXVpcmUoJy4vX29iamVjdC1kcHMnKTtcbnZhciBlbnVtQnVnS2V5cyA9IHJlcXVpcmUoJy4vX2VudW0tYnVnLWtleXMnKTtcbnZhciBJRV9QUk9UTyA9IHJlcXVpcmUoJy4vX3NoYXJlZC1rZXknKSgnSUVfUFJPVE8nKTtcbnZhciBFbXB0eSA9IGZ1bmN0aW9uICgpIHsgLyogZW1wdHkgKi8gfTtcbnZhciBQUk9UT1RZUEUgPSAncHJvdG90eXBlJztcblxuLy8gQ3JlYXRlIG9iamVjdCB3aXRoIGZha2UgYG51bGxgIHByb3RvdHlwZTogdXNlIGlmcmFtZSBPYmplY3Qgd2l0aCBjbGVhcmVkIHByb3RvdHlwZVxudmFyIGNyZWF0ZURpY3QgPSBmdW5jdGlvbiAoKSB7XG4gIC8vIFRocmFzaCwgd2FzdGUgYW5kIHNvZG9teTogSUUgR0MgYnVnXG4gIHZhciBpZnJhbWUgPSByZXF1aXJlKCcuL19kb20tY3JlYXRlJykoJ2lmcmFtZScpO1xuICB2YXIgaSA9IGVudW1CdWdLZXlzLmxlbmd0aDtcbiAgdmFyIGx0ID0gJzwnO1xuICB2YXIgZ3QgPSAnPic7XG4gIHZhciBpZnJhbWVEb2N1bWVudDtcbiAgaWZyYW1lLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gIHJlcXVpcmUoJy4vX2h0bWwnKS5hcHBlbmRDaGlsZChpZnJhbWUpO1xuICBpZnJhbWUuc3JjID0gJ2phdmFzY3JpcHQ6JzsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1zY3JpcHQtdXJsXG4gIC8vIGNyZWF0ZURpY3QgPSBpZnJhbWUuY29udGVudFdpbmRvdy5PYmplY3Q7XG4gIC8vIGh0bWwucmVtb3ZlQ2hpbGQoaWZyYW1lKTtcbiAgaWZyYW1lRG9jdW1lbnQgPSBpZnJhbWUuY29udGVudFdpbmRvdy5kb2N1bWVudDtcbiAgaWZyYW1lRG9jdW1lbnQub3BlbigpO1xuICBpZnJhbWVEb2N1bWVudC53cml0ZShsdCArICdzY3JpcHQnICsgZ3QgKyAnZG9jdW1lbnQuRj1PYmplY3QnICsgbHQgKyAnL3NjcmlwdCcgKyBndCk7XG4gIGlmcmFtZURvY3VtZW50LmNsb3NlKCk7XG4gIGNyZWF0ZURpY3QgPSBpZnJhbWVEb2N1bWVudC5GO1xuICB3aGlsZSAoaS0tKSBkZWxldGUgY3JlYXRlRGljdFtQUk9UT1RZUEVdW2VudW1CdWdLZXlzW2ldXTtcbiAgcmV0dXJuIGNyZWF0ZURpY3QoKTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gT2JqZWN0LmNyZWF0ZSB8fCBmdW5jdGlvbiBjcmVhdGUoTywgUHJvcGVydGllcykge1xuICB2YXIgcmVzdWx0O1xuICBpZiAoTyAhPT0gbnVsbCkge1xuICAgIEVtcHR5W1BST1RPVFlQRV0gPSBhbk9iamVjdChPKTtcbiAgICByZXN1bHQgPSBuZXcgRW1wdHkoKTtcbiAgICBFbXB0eVtQUk9UT1RZUEVdID0gbnVsbDtcbiAgICAvLyBhZGQgXCJfX3Byb3RvX19cIiBmb3IgT2JqZWN0LmdldFByb3RvdHlwZU9mIHBvbHlmaWxsXG4gICAgcmVzdWx0W0lFX1BST1RPXSA9IE87XG4gIH0gZWxzZSByZXN1bHQgPSBjcmVhdGVEaWN0KCk7XG4gIHJldHVybiBQcm9wZXJ0aWVzID09PSB1bmRlZmluZWQgPyByZXN1bHQgOiBkUHMocmVzdWx0LCBQcm9wZXJ0aWVzKTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fb2JqZWN0LWNyZWF0ZS5qc1xuLy8gbW9kdWxlIGlkID0gMjFcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///21\n");
|
197 |
-
|
198 |
-
/***/ }),
|
199 |
-
/* 22 */
|
200 |
-
/***/ (function(module, exports, __webpack_require__) {
|
201 |
-
|
202 |
-
eval("// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = __webpack_require__(36);\nvar enumBugKeys = __webpack_require__(23);\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjIuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1rZXlzLmpzPzk2NGIiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gMTkuMS4yLjE0IC8gMTUuMi4zLjE0IE9iamVjdC5rZXlzKE8pXG52YXIgJGtleXMgPSByZXF1aXJlKCcuL19vYmplY3Qta2V5cy1pbnRlcm5hbCcpO1xudmFyIGVudW1CdWdLZXlzID0gcmVxdWlyZSgnLi9fZW51bS1idWcta2V5cycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IE9iamVjdC5rZXlzIHx8IGZ1bmN0aW9uIGtleXMoTykge1xuICByZXR1cm4gJGtleXMoTywgZW51bUJ1Z0tleXMpO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3Qta2V5cy5qc1xuLy8gbW9kdWxlIGlkID0gMjJcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///22\n");
|
203 |
-
|
204 |
-
/***/ }),
|
205 |
-
/* 23 */
|
206 |
-
/***/ (function(module, exports) {
|
207 |
-
|
208 |
-
eval("// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2VudW0tYnVnLWtleXMuanM/YzY3NyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBJRSA4LSBkb24ndCBlbnVtIGJ1ZyBrZXlzXG5tb2R1bGUuZXhwb3J0cyA9IChcbiAgJ2NvbnN0cnVjdG9yLGhhc093blByb3BlcnR5LGlzUHJvdG90eXBlT2YscHJvcGVydHlJc0VudW1lcmFibGUsdG9Mb2NhbGVTdHJpbmcsdG9TdHJpbmcsdmFsdWVPZidcbikuc3BsaXQoJywnKTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19lbnVtLWJ1Zy1rZXlzLmpzXG4vLyBtb2R1bGUgaWQgPSAyM1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///23\n");
|
209 |
-
|
210 |
-
/***/ }),
|
211 |
-
/* 24 */
|
212 |
-
/***/ (function(module, exports, __webpack_require__) {
|
213 |
-
|
214 |
-
eval("var def = __webpack_require__(3).f;\nvar has = __webpack_require__(2);\nvar TAG = __webpack_require__(9)('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjQuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3NldC10by1zdHJpbmctdGFnLmpzPzdiYTkiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIGRlZiA9IHJlcXVpcmUoJy4vX29iamVjdC1kcCcpLmY7XG52YXIgaGFzID0gcmVxdWlyZSgnLi9faGFzJyk7XG52YXIgVEFHID0gcmVxdWlyZSgnLi9fd2tzJykoJ3RvU3RyaW5nVGFnJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0LCB0YWcsIHN0YXQpIHtcbiAgaWYgKGl0ICYmICFoYXMoaXQgPSBzdGF0ID8gaXQgOiBpdC5wcm90b3R5cGUsIFRBRykpIGRlZihpdCwgVEFHLCB7IGNvbmZpZ3VyYWJsZTogdHJ1ZSwgdmFsdWU6IHRhZyB9KTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fc2V0LXRvLXN0cmluZy10YWcuanNcbi8vIG1vZHVsZSBpZCA9IDI0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///24\n");
|
215 |
-
|
216 |
-
/***/ }),
|
217 |
-
/* 25 */
|
218 |
-
/***/ (function(module, exports, __webpack_require__) {
|
219 |
-
|
220 |
-
eval("exports.f = __webpack_require__(9);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjUuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3drcy1leHQuanM/MmExZSJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnRzLmYgPSByZXF1aXJlKCcuL193a3MnKTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL193a3MtZXh0LmpzXG4vLyBtb2R1bGUgaWQgPSAyNVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///25\n");
|
221 |
-
|
222 |
-
/***/ }),
|
223 |
-
/* 26 */
|
224 |
-
/***/ (function(module, exports, __webpack_require__) {
|
225 |
-
|
226 |
-
eval("var global = __webpack_require__(1);\nvar core = __webpack_require__(0);\nvar LIBRARY = __webpack_require__(12);\nvar wksExt = __webpack_require__(25);\nvar defineProperty = __webpack_require__(3).f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjYuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3drcy1kZWZpbmUuanM/NzJiOSJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi9fZ2xvYmFsJyk7XG52YXIgY29yZSA9IHJlcXVpcmUoJy4vX2NvcmUnKTtcbnZhciBMSUJSQVJZID0gcmVxdWlyZSgnLi9fbGlicmFyeScpO1xudmFyIHdrc0V4dCA9IHJlcXVpcmUoJy4vX3drcy1leHQnKTtcbnZhciBkZWZpbmVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4vX29iamVjdC1kcCcpLmY7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChuYW1lKSB7XG4gIHZhciAkU3ltYm9sID0gY29yZS5TeW1ib2wgfHwgKGNvcmUuU3ltYm9sID0gTElCUkFSWSA/IHt9IDogZ2xvYmFsLlN5bWJvbCB8fCB7fSk7XG4gIGlmIChuYW1lLmNoYXJBdCgwKSAhPSAnXycgJiYgIShuYW1lIGluICRTeW1ib2wpKSBkZWZpbmVQcm9wZXJ0eSgkU3ltYm9sLCBuYW1lLCB7IHZhbHVlOiB3a3NFeHQuZihuYW1lKSB9KTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fd2tzLWRlZmluZS5qc1xuLy8gbW9kdWxlIGlkID0gMjZcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///26\n");
|
227 |
-
|
228 |
-
/***/ }),
|
229 |
-
/* 27 */
|
230 |
-
/***/ (function(module, exports) {
|
231 |
-
|
232 |
-
eval("exports.f = {}.propertyIsEnumerable;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjcuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1waWUuanM/MzY5MiJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnRzLmYgPSB7fS5wcm9wZXJ0eUlzRW51bWVyYWJsZTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3QtcGllLmpzXG4vLyBtb2R1bGUgaWQgPSAyN1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///27\n");
|
233 |
-
|
234 |
-
/***/ }),
|
235 |
-
/* 28 */
|
236 |
-
/***/ (function(module, exports, __webpack_require__) {
|
237 |
-
|
238 |
-
eval("// 7.1.13 ToObject(argument)\nvar defined = __webpack_require__(15);\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjguanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3RvLW9iamVjdC5qcz9iMDFkIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIDcuMS4xMyBUb09iamVjdChhcmd1bWVudClcbnZhciBkZWZpbmVkID0gcmVxdWlyZSgnLi9fZGVmaW5lZCcpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIE9iamVjdChkZWZpbmVkKGl0KSk7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3RvLW9iamVjdC5qc1xuLy8gbW9kdWxlIGlkID0gMjhcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///28\n");
|
239 |
-
|
240 |
-
/***/ }),
|
241 |
-
/* 29 */
|
242 |
-
/***/ (function(module, exports, __webpack_require__) {
|
243 |
-
|
244 |
-
eval("// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = __webpack_require__(2);\nvar toObject = __webpack_require__(28);\nvar IE_PROTO = __webpack_require__(16)('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjkuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1ncG8uanM/M2YzYyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyAxOS4xLjIuOSAvIDE1LjIuMy4yIE9iamVjdC5nZXRQcm90b3R5cGVPZihPKVxudmFyIGhhcyA9IHJlcXVpcmUoJy4vX2hhcycpO1xudmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi9fdG8tb2JqZWN0Jyk7XG52YXIgSUVfUFJPVE8gPSByZXF1aXJlKCcuL19zaGFyZWQta2V5JykoJ0lFX1BST1RPJyk7XG52YXIgT2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG5tb2R1bGUuZXhwb3J0cyA9IE9iamVjdC5nZXRQcm90b3R5cGVPZiB8fCBmdW5jdGlvbiAoTykge1xuICBPID0gdG9PYmplY3QoTyk7XG4gIGlmIChoYXMoTywgSUVfUFJPVE8pKSByZXR1cm4gT1tJRV9QUk9UT107XG4gIGlmICh0eXBlb2YgTy5jb25zdHJ1Y3RvciA9PSAnZnVuY3Rpb24nICYmIE8gaW5zdGFuY2VvZiBPLmNvbnN0cnVjdG9yKSB7XG4gICAgcmV0dXJuIE8uY29uc3RydWN0b3IucHJvdG90eXBlO1xuICB9IHJldHVybiBPIGluc3RhbmNlb2YgT2JqZWN0ID8gT2JqZWN0UHJvdG8gOiBudWxsO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3QtZ3BvLmpzXG4vLyBtb2R1bGUgaWQgPSAyOVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///29\n");
|
245 |
-
|
246 |
-
/***/ }),
|
247 |
-
/* 30 */
|
248 |
-
/***/ (function(module, exports, __webpack_require__) {
|
249 |
-
|
250 |
-
eval("// optional / simple context binding\nvar aFunction = __webpack_require__(48);\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzAuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2N0eC5qcz9mOTkzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIG9wdGlvbmFsIC8gc2ltcGxlIGNvbnRleHQgYmluZGluZ1xudmFyIGFGdW5jdGlvbiA9IHJlcXVpcmUoJy4vX2EtZnVuY3Rpb24nKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGZuLCB0aGF0LCBsZW5ndGgpIHtcbiAgYUZ1bmN0aW9uKGZuKTtcbiAgaWYgKHRoYXQgPT09IHVuZGVmaW5lZCkgcmV0dXJuIGZuO1xuICBzd2l0Y2ggKGxlbmd0aCkge1xuICAgIGNhc2UgMTogcmV0dXJuIGZ1bmN0aW9uIChhKSB7XG4gICAgICByZXR1cm4gZm4uY2FsbCh0aGF0LCBhKTtcbiAgICB9O1xuICAgIGNhc2UgMjogcmV0dXJuIGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgICByZXR1cm4gZm4uY2FsbCh0aGF0LCBhLCBiKTtcbiAgICB9O1xuICAgIGNhc2UgMzogcmV0dXJuIGZ1bmN0aW9uIChhLCBiLCBjKSB7XG4gICAgICByZXR1cm4gZm4uY2FsbCh0aGF0LCBhLCBiLCBjKTtcbiAgICB9O1xuICB9XG4gIHJldHVybiBmdW5jdGlvbiAoLyogLi4uYXJncyAqLykge1xuICAgIHJldHVybiBmbi5hcHBseSh0aGF0LCBhcmd1bWVudHMpO1xuICB9O1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19jdHguanNcbi8vIG1vZHVsZSBpZCA9IDMwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///30\n");
|
251 |
-
|
252 |
-
/***/ }),
|
253 |
-
/* 31 */
|
254 |
-
/***/ (function(module, exports, __webpack_require__) {
|
255 |
-
|
256 |
-
eval("module.exports = !__webpack_require__(4) && !__webpack_require__(11)(function () {\n return Object.defineProperty(__webpack_require__(32)('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzEuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2llOC1kb20tZGVmaW5lLmpzPzQ5ZjAiXSwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSAhcmVxdWlyZSgnLi9fZGVzY3JpcHRvcnMnKSAmJiAhcmVxdWlyZSgnLi9fZmFpbHMnKShmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkocmVxdWlyZSgnLi9fZG9tLWNyZWF0ZScpKCdkaXYnKSwgJ2EnLCB7IGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gNzsgfSB9KS5hICE9IDc7XG59KTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19pZTgtZG9tLWRlZmluZS5qc1xuLy8gbW9kdWxlIGlkID0gMzFcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///31\n");
|
257 |
-
|
258 |
-
/***/ }),
|
259 |
-
/* 32 */
|
260 |
-
/***/ (function(module, exports, __webpack_require__) {
|
261 |
-
|
262 |
-
eval("var isObject = __webpack_require__(7);\nvar document = __webpack_require__(1).document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzIuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2RvbS1jcmVhdGUuanM/MzhkZCJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL19pcy1vYmplY3QnKTtcbnZhciBkb2N1bWVudCA9IHJlcXVpcmUoJy4vX2dsb2JhbCcpLmRvY3VtZW50O1xuLy8gdHlwZW9mIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQgaXMgJ29iamVjdCcgaW4gb2xkIElFXG52YXIgaXMgPSBpc09iamVjdChkb2N1bWVudCkgJiYgaXNPYmplY3QoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gaXMgPyBkb2N1bWVudC5jcmVhdGVFbGVtZW50KGl0KSA6IHt9O1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19kb20tY3JlYXRlLmpzXG4vLyBtb2R1bGUgaWQgPSAzMlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///32\n");
|
263 |
-
|
264 |
-
/***/ }),
|
265 |
-
/* 33 */
|
266 |
-
/***/ (function(module, exports, __webpack_require__) {
|
267 |
-
|
268 |
-
"use strict";
|
269 |
-
eval("\n\nexports.__esModule = true;\n\nvar _iterator = __webpack_require__(55);\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _symbol = __webpack_require__(70);\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nvar _typeof = typeof _symbol2.default === \"function\" && typeof _iterator2.default === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n} : function (obj) {\n return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9oZWxwZXJzL3R5cGVvZi5qcz9hNDU2Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG52YXIgX2l0ZXJhdG9yID0gcmVxdWlyZShcIi4uL2NvcmUtanMvc3ltYm9sL2l0ZXJhdG9yXCIpO1xuXG52YXIgX2l0ZXJhdG9yMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2l0ZXJhdG9yKTtcblxudmFyIF9zeW1ib2wgPSByZXF1aXJlKFwiLi4vY29yZS1qcy9zeW1ib2xcIik7XG5cbnZhciBfc3ltYm9sMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3N5bWJvbCk7XG5cbnZhciBfdHlwZW9mID0gdHlwZW9mIF9zeW1ib2wyLmRlZmF1bHQgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgX2l0ZXJhdG9yMi5kZWZhdWx0ID09PSBcInN5bWJvbFwiID8gZnVuY3Rpb24gKG9iaikgeyByZXR1cm4gdHlwZW9mIG9iajsgfSA6IGZ1bmN0aW9uIChvYmopIHsgcmV0dXJuIG9iaiAmJiB0eXBlb2YgX3N5bWJvbDIuZGVmYXVsdCA9PT0gXCJmdW5jdGlvblwiICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gX3N5bWJvbDIuZGVmYXVsdCAmJiBvYmogIT09IF9zeW1ib2wyLmRlZmF1bHQucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvYmo7IH07XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IGRlZmF1bHQ6IG9iaiB9OyB9XG5cbmV4cG9ydHMuZGVmYXVsdCA9IHR5cGVvZiBfc3ltYm9sMi5kZWZhdWx0ID09PSBcImZ1bmN0aW9uXCIgJiYgX3R5cGVvZihfaXRlcmF0b3IyLmRlZmF1bHQpID09PSBcInN5bWJvbFwiID8gZnVuY3Rpb24gKG9iaikge1xuICByZXR1cm4gdHlwZW9mIG9iaiA9PT0gXCJ1bmRlZmluZWRcIiA/IFwidW5kZWZpbmVkXCIgOiBfdHlwZW9mKG9iaik7XG59IDogZnVuY3Rpb24gKG9iaikge1xuICByZXR1cm4gb2JqICYmIHR5cGVvZiBfc3ltYm9sMi5kZWZhdWx0ID09PSBcImZ1bmN0aW9uXCIgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBfc3ltYm9sMi5kZWZhdWx0ICYmIG9iaiAhPT0gX3N5bWJvbDIuZGVmYXVsdC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iaiA9PT0gXCJ1bmRlZmluZWRcIiA/IFwidW5kZWZpbmVkXCIgOiBfdHlwZW9mKG9iaik7XG59O1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvaGVscGVycy90eXBlb2YuanNcbi8vIG1vZHVsZSBpZCA9IDMzXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///33\n");
|
270 |
-
|
271 |
-
/***/ }),
|
272 |
-
/* 34 */
|
273 |
-
/***/ (function(module, exports, __webpack_require__) {
|
274 |
-
|
275 |
-
"use strict";
|
276 |
-
eval("\nvar LIBRARY = __webpack_require__(12);\nvar $export = __webpack_require__(5);\nvar redefine = __webpack_require__(35);\nvar hide = __webpack_require__(6);\nvar Iterators = __webpack_require__(20);\nvar $iterCreate = __webpack_require__(59);\nvar setToStringTag = __webpack_require__(24);\nvar getPrototypeOf = __webpack_require__(29);\nvar ITERATOR = __webpack_require__(9)('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzQuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2l0ZXItZGVmaW5lLmpzP2JjODAiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xudmFyIExJQlJBUlkgPSByZXF1aXJlKCcuL19saWJyYXJ5Jyk7XG52YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xudmFyIHJlZGVmaW5lID0gcmVxdWlyZSgnLi9fcmVkZWZpbmUnKTtcbnZhciBoaWRlID0gcmVxdWlyZSgnLi9faGlkZScpO1xudmFyIEl0ZXJhdG9ycyA9IHJlcXVpcmUoJy4vX2l0ZXJhdG9ycycpO1xudmFyICRpdGVyQ3JlYXRlID0gcmVxdWlyZSgnLi9faXRlci1jcmVhdGUnKTtcbnZhciBzZXRUb1N0cmluZ1RhZyA9IHJlcXVpcmUoJy4vX3NldC10by1zdHJpbmctdGFnJyk7XG52YXIgZ2V0UHJvdG90eXBlT2YgPSByZXF1aXJlKCcuL19vYmplY3QtZ3BvJyk7XG52YXIgSVRFUkFUT1IgPSByZXF1aXJlKCcuL193a3MnKSgnaXRlcmF0b3InKTtcbnZhciBCVUdHWSA9ICEoW10ua2V5cyAmJiAnbmV4dCcgaW4gW10ua2V5cygpKTsgLy8gU2FmYXJpIGhhcyBidWdneSBpdGVyYXRvcnMgdy9vIGBuZXh0YFxudmFyIEZGX0lURVJBVE9SID0gJ0BAaXRlcmF0b3InO1xudmFyIEtFWVMgPSAna2V5cyc7XG52YXIgVkFMVUVTID0gJ3ZhbHVlcyc7XG5cbnZhciByZXR1cm5UaGlzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoQmFzZSwgTkFNRSwgQ29uc3RydWN0b3IsIG5leHQsIERFRkFVTFQsIElTX1NFVCwgRk9SQ0VEKSB7XG4gICRpdGVyQ3JlYXRlKENvbnN0cnVjdG9yLCBOQU1FLCBuZXh0KTtcbiAgdmFyIGdldE1ldGhvZCA9IGZ1bmN0aW9uIChraW5kKSB7XG4gICAgaWYgKCFCVUdHWSAmJiBraW5kIGluIHByb3RvKSByZXR1cm4gcHJvdG9ba2luZF07XG4gICAgc3dpdGNoIChraW5kKSB7XG4gICAgICBjYXNlIEtFWVM6IHJldHVybiBmdW5jdGlvbiBrZXlzKCkgeyByZXR1cm4gbmV3IENvbnN0cnVjdG9yKHRoaXMsIGtpbmQpOyB9O1xuICAgICAgY2FzZSBWQUxVRVM6IHJldHVybiBmdW5jdGlvbiB2YWx1ZXMoKSB7IHJldHVybiBuZXcgQ29uc3RydWN0b3IodGhpcywga2luZCk7IH07XG4gICAgfSByZXR1cm4gZnVuY3Rpb24gZW50cmllcygpIHsgcmV0dXJuIG5ldyBDb25zdHJ1Y3Rvcih0aGlzLCBraW5kKTsgfTtcbiAgfTtcbiAgdmFyIFRBRyA9IE5BTUUgKyAnIEl0ZXJhdG9yJztcbiAgdmFyIERFRl9WQUxVRVMgPSBERUZBVUxUID09IFZBTFVFUztcbiAgdmFyIFZBTFVFU19CVUcgPSBmYWxzZTtcbiAgdmFyIHByb3RvID0gQmFzZS5wcm90b3R5cGU7XG4gIHZhciAkbmF0aXZlID0gcHJvdG9bSVRFUkFUT1JdIHx8IHByb3RvW0ZGX0lURVJBVE9SXSB8fCBERUZBVUxUICYmIHByb3RvW0RFRkFVTFRdO1xuICB2YXIgJGRlZmF1bHQgPSAkbmF0aXZlIHx8IGdldE1ldGhvZChERUZBVUxUKTtcbiAgdmFyICRlbnRyaWVzID0gREVGQVVMVCA/ICFERUZfVkFMVUVTID8gJGRlZmF1bHQgOiBnZXRNZXRob2QoJ2VudHJpZXMnKSA6IHVuZGVmaW5lZDtcbiAgdmFyICRhbnlOYXRpdmUgPSBOQU1FID09ICdBcnJheScgPyBwcm90by5lbnRyaWVzIHx8ICRuYXRpdmUgOiAkbmF0aXZlO1xuICB2YXIgbWV0aG9kcywga2V5LCBJdGVyYXRvclByb3RvdHlwZTtcbiAgLy8gRml4IG5hdGl2ZVxuICBpZiAoJGFueU5hdGl2ZSkge1xuICAgIEl0ZXJhdG9yUHJvdG90eXBlID0gZ2V0UHJvdG90eXBlT2YoJGFueU5hdGl2ZS5jYWxsKG5ldyBCYXNlKCkpKTtcbiAgICBpZiAoSXRlcmF0b3JQcm90b3R5cGUgIT09IE9iamVjdC5wcm90b3R5cGUgJiYgSXRlcmF0b3JQcm90b3R5cGUubmV4dCkge1xuICAgICAgLy8gU2V0IEBAdG9TdHJpbmdUYWcgdG8gbmF0aXZlIGl0ZXJhdG9yc1xuICAgICAgc2V0VG9TdHJpbmdUYWcoSXRlcmF0b3JQcm90b3R5cGUsIFRBRywgdHJ1ZSk7XG4gICAgICAvLyBmaXggZm9yIHNvbWUgb2xkIGVuZ2luZXNcbiAgICAgIGlmICghTElCUkFSWSAmJiB0eXBlb2YgSXRlcmF0b3JQcm90b3R5cGVbSVRFUkFUT1JdICE9ICdmdW5jdGlvbicpIGhpZGUoSXRlcmF0b3JQcm90b3R5cGUsIElURVJBVE9SLCByZXR1cm5UaGlzKTtcbiAgICB9XG4gIH1cbiAgLy8gZml4IEFycmF5I3t2YWx1ZXMsIEBAaXRlcmF0b3J9Lm5hbWUgaW4gVjggLyBGRlxuICBpZiAoREVGX1ZBTFVFUyAmJiAkbmF0aXZlICYmICRuYXRpdmUubmFtZSAhPT0gVkFMVUVTKSB7XG4gICAgVkFMVUVTX0JVRyA9IHRydWU7XG4gICAgJGRlZmF1bHQgPSBmdW5jdGlvbiB2YWx1ZXMoKSB7IHJldHVybiAkbmF0aXZlLmNhbGwodGhpcyk7IH07XG4gIH1cbiAgLy8gRGVmaW5lIGl0ZXJhdG9yXG4gIGlmICgoIUxJQlJBUlkgfHwgRk9SQ0VEKSAmJiAoQlVHR1kgfHwgVkFMVUVTX0JVRyB8fCAhcHJvdG9bSVRFUkFUT1JdKSkge1xuICAgIGhpZGUocHJvdG8sIElURVJBVE9SLCAkZGVmYXVsdCk7XG4gIH1cbiAgLy8gUGx1ZyBmb3IgbGlicmFyeVxuICBJdGVyYXRvcnNbTkFNRV0gPSAkZGVmYXVsdDtcbiAgSXRlcmF0b3JzW1RBR10gPSByZXR1cm5UaGlzO1xuICBpZiAoREVGQVVMVCkge1xuICAgIG1ldGhvZHMgPSB7XG4gICAgICB2YWx1ZXM6IERFRl9WQUxVRVMgPyAkZGVmYXVsdCA6IGdldE1ldGhvZChWQUxVRVMpLFxuICAgICAga2V5czogSVNfU0VUID8gJGRlZmF1bHQgOiBnZXRNZXRob2QoS0VZUyksXG4gICAgICBlbnRyaWVzOiAkZW50cmllc1xuICAgIH07XG4gICAgaWYgKEZPUkNFRCkgZm9yIChrZXkgaW4gbWV0aG9kcykge1xuICAgICAgaWYgKCEoa2V5IGluIHByb3RvKSkgcmVkZWZpbmUocHJvdG8sIGtleSwgbWV0aG9kc1trZXldKTtcbiAgICB9IGVsc2UgJGV4cG9ydCgkZXhwb3J0LlAgKyAkZXhwb3J0LkYgKiAoQlVHR1kgfHwgVkFMVUVTX0JVRyksIE5BTUUsIG1ldGhvZHMpO1xuICB9XG4gIHJldHVybiBtZXRob2RzO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19pdGVyLWRlZmluZS5qc1xuLy8gbW9kdWxlIGlkID0gMzRcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///34\n");
|
277 |
-
|
278 |
-
/***/ }),
|
279 |
-
/* 35 */
|
280 |
-
/***/ (function(module, exports, __webpack_require__) {
|
281 |
-
|
282 |
-
eval("module.exports = __webpack_require__(6);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzUuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3JlZGVmaW5lLmpzP2YzY2QiXSwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL19oaWRlJyk7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fcmVkZWZpbmUuanNcbi8vIG1vZHVsZSBpZCA9IDM1XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///35\n");
|
283 |
-
|
284 |
-
/***/ }),
|
285 |
-
/* 36 */
|
286 |
-
/***/ (function(module, exports, __webpack_require__) {
|
287 |
-
|
288 |
-
eval("var has = __webpack_require__(2);\nvar toIObject = __webpack_require__(8);\nvar arrayIndexOf = __webpack_require__(62)(false);\nvar IE_PROTO = __webpack_require__(16)('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzYuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1rZXlzLWludGVybmFsLmpzPzIxYjgiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIGhhcyA9IHJlcXVpcmUoJy4vX2hhcycpO1xudmFyIHRvSU9iamVjdCA9IHJlcXVpcmUoJy4vX3RvLWlvYmplY3QnKTtcbnZhciBhcnJheUluZGV4T2YgPSByZXF1aXJlKCcuL19hcnJheS1pbmNsdWRlcycpKGZhbHNlKTtcbnZhciBJRV9QUk9UTyA9IHJlcXVpcmUoJy4vX3NoYXJlZC1rZXknKSgnSUVfUFJPVE8nKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob2JqZWN0LCBuYW1lcykge1xuICB2YXIgTyA9IHRvSU9iamVjdChvYmplY3QpO1xuICB2YXIgaSA9IDA7XG4gIHZhciByZXN1bHQgPSBbXTtcbiAgdmFyIGtleTtcbiAgZm9yIChrZXkgaW4gTykgaWYgKGtleSAhPSBJRV9QUk9UTykgaGFzKE8sIGtleSkgJiYgcmVzdWx0LnB1c2goa2V5KTtcbiAgLy8gRG9uJ3QgZW51bSBidWcgJiBoaWRkZW4ga2V5c1xuICB3aGlsZSAobmFtZXMubGVuZ3RoID4gaSkgaWYgKGhhcyhPLCBrZXkgPSBuYW1lc1tpKytdKSkge1xuICAgIH5hcnJheUluZGV4T2YocmVzdWx0LCBrZXkpIHx8IHJlc3VsdC5wdXNoKGtleSk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fb2JqZWN0LWtleXMtaW50ZXJuYWwuanNcbi8vIG1vZHVsZSBpZCA9IDM2XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///36\n");
|
289 |
-
|
290 |
-
/***/ }),
|
291 |
-
/* 37 */
|
292 |
-
/***/ (function(module, exports) {
|
293 |
-
|
294 |
-
eval("var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzcuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2NvZi5qcz80N2QzIl0sInNvdXJjZXNDb250ZW50IjpbInZhciB0b1N0cmluZyA9IHt9LnRvU3RyaW5nO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gdG9TdHJpbmcuY2FsbChpdCkuc2xpY2UoOCwgLTEpO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19jb2YuanNcbi8vIG1vZHVsZSBpZCA9IDM3XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///37\n");
|
295 |
-
|
296 |
-
/***/ }),
|
297 |
-
/* 38 */
|
298 |
-
/***/ (function(module, exports) {
|
299 |
-
|
300 |
-
eval("exports.f = Object.getOwnPropertySymbols;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzguanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1nb3BzLmpzP2Q2NDQiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0cy5mID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scztcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3QtZ29wcy5qc1xuLy8gbW9kdWxlIGlkID0gMzhcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///38\n");
|
301 |
-
|
302 |
-
/***/ }),
|
303 |
-
/* 39 */
|
304 |
-
/***/ (function(module, exports, __webpack_require__) {
|
305 |
-
|
306 |
-
eval("// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = __webpack_require__(36);\nvar hiddenKeys = __webpack_require__(23).concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzkuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1nb3BuLmpzPzlmNDQiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gMTkuMS4yLjcgLyAxNS4yLjMuNCBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhPKVxudmFyICRrZXlzID0gcmVxdWlyZSgnLi9fb2JqZWN0LWtleXMtaW50ZXJuYWwnKTtcbnZhciBoaWRkZW5LZXlzID0gcmVxdWlyZSgnLi9fZW51bS1idWcta2V5cycpLmNvbmNhdCgnbGVuZ3RoJywgJ3Byb3RvdHlwZScpO1xuXG5leHBvcnRzLmYgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyB8fCBmdW5jdGlvbiBnZXRPd25Qcm9wZXJ0eU5hbWVzKE8pIHtcbiAgcmV0dXJuICRrZXlzKE8sIGhpZGRlbktleXMpO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3QtZ29wbi5qc1xuLy8gbW9kdWxlIGlkID0gMzlcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///39\n");
|
307 |
-
|
308 |
-
/***/ }),
|
309 |
-
/* 40 */
|
310 |
-
/***/ (function(module, exports, __webpack_require__) {
|
311 |
-
|
312 |
-
eval("var pIE = __webpack_require__(27);\nvar createDesc = __webpack_require__(14);\nvar toIObject = __webpack_require__(8);\nvar toPrimitive = __webpack_require__(18);\nvar has = __webpack_require__(2);\nvar IE8_DOM_DEFINE = __webpack_require__(31);\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = __webpack_require__(4) ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDAuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1nb3BkLmpzPzJjYTYiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIHBJRSA9IHJlcXVpcmUoJy4vX29iamVjdC1waWUnKTtcbnZhciBjcmVhdGVEZXNjID0gcmVxdWlyZSgnLi9fcHJvcGVydHktZGVzYycpO1xudmFyIHRvSU9iamVjdCA9IHJlcXVpcmUoJy4vX3RvLWlvYmplY3QnKTtcbnZhciB0b1ByaW1pdGl2ZSA9IHJlcXVpcmUoJy4vX3RvLXByaW1pdGl2ZScpO1xudmFyIGhhcyA9IHJlcXVpcmUoJy4vX2hhcycpO1xudmFyIElFOF9ET01fREVGSU5FID0gcmVxdWlyZSgnLi9faWU4LWRvbS1kZWZpbmUnKTtcbnZhciBnT1BEID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtcblxuZXhwb3J0cy5mID0gcmVxdWlyZSgnLi9fZGVzY3JpcHRvcnMnKSA/IGdPUEQgOiBmdW5jdGlvbiBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTywgUCkge1xuICBPID0gdG9JT2JqZWN0KE8pO1xuICBQID0gdG9QcmltaXRpdmUoUCwgdHJ1ZSk7XG4gIGlmIChJRThfRE9NX0RFRklORSkgdHJ5IHtcbiAgICByZXR1cm4gZ09QRChPLCBQKTtcbiAgfSBjYXRjaCAoZSkgeyAvKiBlbXB0eSAqLyB9XG4gIGlmIChoYXMoTywgUCkpIHJldHVybiBjcmVhdGVEZXNjKCFwSUUuZi5jYWxsKE8sIFApLCBPW1BdKTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fb2JqZWN0LWdvcGQuanNcbi8vIG1vZHVsZSBpZCA9IDQwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///40\n");
|
313 |
-
|
314 |
-
/***/ }),
|
315 |
-
/* 41 */
|
316 |
-
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
317 |
-
|
318 |
-
"use strict";
|
319 |
-
eval("Object.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__style_scss__ = __webpack_require__(42);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__style_scss___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__style_scss__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__sidebar_js__ = __webpack_require__(43);\n// Include stylesheet\n\n\n// Import Click to Tweet Block\n//import './block.js';\n\n// Import Gutenberg Boilerplate Sidebar\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDEuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvaW5kZXguanM/ODc0OSJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBJbmNsdWRlIHN0eWxlc2hlZXRcbmltcG9ydCAnLi9zdHlsZS5zY3NzJztcblxuLy8gSW1wb3J0IENsaWNrIHRvIFR3ZWV0IEJsb2NrXG4vL2ltcG9ydCAnLi9ibG9jay5qcyc7XG5cbi8vIEltcG9ydCBHdXRlbmJlcmcgQm9pbGVycGxhdGUgU2lkZWJhclxuaW1wb3J0ICcuL3NpZGViYXIuanMnO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vc3JjL2luZGV4LmpzXG4vLyBtb2R1bGUgaWQgPSA0MVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///41\n");
|
320 |
-
|
321 |
-
/***/ }),
|
322 |
-
/* 42 */
|
323 |
-
/***/ (function(module, exports) {
|
324 |
-
|
325 |
-
eval("// removed by extract-text-webpack-plugin//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDIuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvc3R5bGUuc2Nzcz9hY2Q4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIHJlbW92ZWQgYnkgZXh0cmFjdC10ZXh0LXdlYnBhY2stcGx1Z2luXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9zcmMvc3R5bGUuc2Nzc1xuLy8gbW9kdWxlIGlkID0gNDJcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///42\n");
|
326 |
-
|
327 |
-
/***/ }),
|
328 |
-
/* 43 */
|
329 |
-
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
330 |
-
|
331 |
-
"use strict";
|
332 |
-
eval("/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_get_prototype_of__ = __webpack_require__(44);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_get_prototype_of___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_get_prototype_of__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__ = __webpack_require__(49);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass__ = __webpack_require__(50);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn__ = __webpack_require__(54);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits__ = __webpack_require__(80);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits__);\n\n\n\n\n\n/**\n * Internal block libraries.\n * @since 2.2.3\n */\nvar __ = wp.i18n.__;\nvar _wp$editPost = wp.editPost,\n PluginSidebar = _wp$editPost.PluginSidebar,\n PluginSidebarMoreMenuItem = _wp$editPost.PluginSidebarMoreMenuItem;\nvar _wp$components = wp.components,\n PanelBody = _wp$components.PanelBody,\n TextControl = _wp$components.TextControl,\n Button = _wp$components.Button,\n Notice = _wp$components.Notice;\nvar _wp$element = wp.element,\n Component = _wp$element.Component,\n Fragment = _wp$element.Fragment;\nvar withSelect = wp.data.withSelect;\nvar compose = wp.compose.compose;\n\n\nvar LanguageSwitcherNotice = function LanguageSwitcherNotice(props) {\n\tif (WPGlobusGutenberg.pagenow == WPGlobusGutenberg.postNewPage) {\n\t\treturn wp.element.createElement('div', null);\n\t}\n\n\tvar dev = '';\n\tif ('undefined' !== typeof WPGlobusBlockEditorDevelop && !WPGlobusBlockEditorDevelop.production) {\n\t\tdev = '(develop)';\n\t}\n\n\treturn wp.element.createElement(\n\t\tNotice,\n\t\t{ className: 'wpglobus-block-editor-panel__notice', status: 'informational', isDismissible: false },\n\t\t__('Select language'),\n\t\t' ',\n\t\tdev\n\t);\n};\n\nvar LanguageSwitcher = function LanguageSwitcher(props) {\n\n\tif (WPGlobusGutenberg.pagenow == WPGlobusGutenberg.postNewPage) {\n\t\treturn wp.element.createElement(\n\t\t\t'div',\n\t\t\t{ className: 'wpglobus-block-editor-panel__switcher-box' },\n\t\t\tWPGlobusGutenberg.i18n.save_post\n\t\t);\n\t}\n\n\tvar language = WPGlobusGutenberg.language;\n\tvar flagsUrl = WPGlobusGutenberg.flags_url;\n\tvar enabledLanguages = WPGlobusCoreData.enabled_languages;\n\tvar languageNames = WPGlobusCoreData.en_language_name;\n\tvar ref = location.href;\n\tvar refs = {};\n\tfor (var key in enabledLanguages) {\n\t\tif (-1 == ref.indexOf('language=' + language)) {\n\t\t\trefs[enabledLanguages[key]] = ref + '&language=' + enabledLanguages[key];\n\t\t} else {\n\t\t\trefs[enabledLanguages[key]] = ref.replace('language=' + language, 'language=' + enabledLanguages[key]);\n\t\t}\n\t}\n\n\treturn wp.element.createElement(\n\t\t'div',\n\t\t{ className: 'wpglobus-block-editor-panel__switcher-box' },\n\t\twp.element.createElement(\n\t\t\t'ul',\n\t\t\tnull,\n\t\t\tenabledLanguages.map(function (lang) {\n\t\t\t\treturn wp.element.createElement(\n\t\t\t\t\t'li',\n\t\t\t\t\t{ key: lang },\n\t\t\t\t\twp.element.createElement('img', { className: 'wpglobus-block-editor-panel__flag', height: '20px', width: '20px', src: flagsUrl[lang] }),\n\t\t\t\t\t'\\xA0\\xA0',\n\t\t\t\t\twp.element.createElement(\n\t\t\t\t\t\tButton,\n\t\t\t\t\t\t{ href: refs[lang], isSmall: true, isPrimary: true },\n\t\t\t\t\t\tlanguageNames[lang]\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t})\n\t\t)\n\t);\n};\n\nvar WPGlobusInfo = function WPGlobusInfo(props) {\n\treturn wp.element.createElement(\n\t\t'div',\n\t\t{ className: 'wpglobus-block-editor-panel__info' },\n\t\twp.element.createElement(\n\t\t\tButton,\n\t\t\t{ href: props.href, target: '_blank', isLink: true },\n\t\t\t__('WPGlobus Premium Add-ons')\n\t\t)\n\t);\n};\n\nvar SettingsLink = function SettingsLink(props) {\n\treturn wp.element.createElement(\n\t\t'div',\n\t\t{ className: 'wpglobus-block-editor-panel__settings-link' },\n\t\twp.element.createElement(\n\t\t\tButton,\n\t\t\t{ href: props.href, isLink: true },\n\t\t\t__('Settings')\n\t\t)\n\t);\n};\n\nvar registerPlugin = wp.plugins.registerPlugin;\n\nvar WPGlobus_BlockEditor = function (_Component) {\n\t__WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits___default()(WPGlobus_BlockEditor, _Component);\n\n\tfunction WPGlobus_BlockEditor() {\n\t\t__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, WPGlobus_BlockEditor);\n\n\t\tvar _this = __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn___default()(this, (WPGlobus_BlockEditor.__proto__ || __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_get_prototype_of___default()(WPGlobus_BlockEditor)).apply(this, arguments));\n\n\t\tvar dev = '';\n\t\tif ('undefined' !== typeof WPGlobusBlockEditorDevelop && !WPGlobusBlockEditorDevelop.production) {\n\t\t\tdev = ' (develop)';\n\t\t}\n\n\t\t_this.state = {\n\t\t\toptionsTabUrl: WPGlobusGutenberg.block_editor_tab_url,\n\t\t\tstoreLink: WPGlobusGutenberg.store_link,\n\t\t\theaderTitle: __('WPGlobus') + dev,\n\t\t\tmoreMenuItemTitle: __('WPGlobus')\n\t\t};\n\n\t\tsetTimeout(function () {\n\t\t\tvar buttons = document.getElementsByClassName('components-icon-button');\n\t\t\tfor (var i = 0; i < buttons.length; i++) {\n\t\t\t\tvar status = buttons[i].getAttribute('aria-label');\n\t\t\t\t//if ( status == 'WPGlobus' ) { \n\t\t\t\tif (-1 != status.indexOf('WPGlobus')) {\n\t\t\t\t\tvar done = buttons[i].dataset.done;\n\t\t\t\t\tif ('undefined' === typeof done) {\n\t\t\t\t\t\tvar content = buttons[i].innerHTML;\n\t\t\t\t\t\t//@todo buttons[i].classList.add('wpglobus-switcher-button');\n\t\t\t\t\t\tbuttons[i].innerHTML = content + '<img height=\"20px\" width=\"20px\" src=\"' + WPGlobusGutenberg.flags_url[WPGlobusGutenberg.language] + '\" /> ' + WPGlobusAdmin.data.en_language_name[WPGlobusGutenberg.language];\n\t\t\t\t\t\tbuttons[i].dataset.done = 'yes';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}, 500);\n\t\treturn _this;\n\t}\n\n\t__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass___default()(WPGlobus_BlockEditor, [{\n\t\tkey: 'render',\n\t\tvalue: function render() {\n\t\t\treturn wp.element.createElement(\n\t\t\t\tFragment,\n\t\t\t\tnull,\n\t\t\t\twp.element.createElement(\n\t\t\t\t\tPluginSidebarMoreMenuItem,\n\t\t\t\t\t{\n\t\t\t\t\t\ttarget: 'wpglobus-gutenberg-sidebar'\n\t\t\t\t\t},\n\t\t\t\t\tthis.state.moreMenuItemTitle\n\t\t\t\t),\n\t\t\t\twp.element.createElement(\n\t\t\t\t\tPluginSidebar,\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'wpglobus-gutenberg-sidebar',\n\t\t\t\t\t\ttitle: this.state.headerTitle\n\t\t\t\t\t},\n\t\t\t\t\twp.element.createElement(\n\t\t\t\t\t\tPanelBody,\n\t\t\t\t\t\t{ className: 'wpglobus-block-editor-panel__body' },\n\t\t\t\t\t\twp.element.createElement(LanguageSwitcherNotice, null),\n\t\t\t\t\t\twp.element.createElement(LanguageSwitcher, null),\n\t\t\t\t\t\twp.element.createElement(\n\t\t\t\t\t\t\t'div',\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\twp.element.createElement(WPGlobusInfo, { href: this.state.storeLink }),\n\t\t\t\t\t\t\twp.element.createElement(SettingsLink, { href: this.state.optionsTabUrl })\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t}]);\n\n\treturn WPGlobus_BlockEditor;\n}(Component);\n\nvar WPGBE = withSelect(function (select, _ref) {\n\tvar forceIsSaving = _ref.forceIsSaving;\n\n\tvar _select = select('core/editor'),\n\t getCurrentPostId = _select.getCurrentPostId,\n\t isSavingPost = _select.isSavingPost,\n\t isPublishingPost = _select.isPublishingPost,\n\t isAutosavingPost = _select.isAutosavingPost;\n\n\treturn {\n\t\tpostId: getCurrentPostId(),\n\t\tisSaving: forceIsSaving || isSavingPost(),\n\t\tisAutoSaving: isAutosavingPost(),\n\t\tisPublishing: isPublishingPost()\n\t};\n})(WPGlobus_BlockEditor);\n\nregisterPlugin('wpglobus-gutenberg', {\n\ticon: 'admin-site',\n\trender: WPGBE\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvc2lkZWJhci5qcz8yNWQ1Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfT2JqZWN0JGdldFByb3RvdHlwZU9mIGZyb20gJ2JhYmVsLXJ1bnRpbWUvY29yZS1qcy9vYmplY3QvZ2V0LXByb3RvdHlwZS1vZic7XG5pbXBvcnQgX2NsYXNzQ2FsbENoZWNrIGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9jbGFzc0NhbGxDaGVjayc7XG5pbXBvcnQgX2NyZWF0ZUNsYXNzIGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9jcmVhdGVDbGFzcyc7XG5pbXBvcnQgX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4gZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4nO1xuaW1wb3J0IF9pbmhlcml0cyBmcm9tICdiYWJlbC1ydW50aW1lL2hlbHBlcnMvaW5oZXJpdHMnO1xuLyoqXG4gKiBJbnRlcm5hbCBibG9jayBsaWJyYXJpZXMuXG4gKiBAc2luY2UgMi4yLjNcbiAqL1xudmFyIF9fID0gd3AuaTE4bi5fXztcbnZhciBfd3AkZWRpdFBvc3QgPSB3cC5lZGl0UG9zdCxcbiAgICBQbHVnaW5TaWRlYmFyID0gX3dwJGVkaXRQb3N0LlBsdWdpblNpZGViYXIsXG4gICAgUGx1Z2luU2lkZWJhck1vcmVNZW51SXRlbSA9IF93cCRlZGl0UG9zdC5QbHVnaW5TaWRlYmFyTW9yZU1lbnVJdGVtO1xudmFyIF93cCRjb21wb25lbnRzID0gd3AuY29tcG9uZW50cyxcbiAgICBQYW5lbEJvZHkgPSBfd3AkY29tcG9uZW50cy5QYW5lbEJvZHksXG4gICAgVGV4dENvbnRyb2wgPSBfd3AkY29tcG9uZW50cy5UZXh0Q29udHJvbCxcbiAgICBCdXR0b24gPSBfd3AkY29tcG9uZW50cy5CdXR0b24sXG4gICAgTm90aWNlID0gX3dwJGNvbXBvbmVudHMuTm90aWNlO1xudmFyIF93cCRlbGVtZW50ID0gd3AuZWxlbWVudCxcbiAgICBDb21wb25lbnQgPSBfd3AkZWxlbWVudC5Db21wb25lbnQsXG4gICAgRnJhZ21lbnQgPSBfd3AkZWxlbWVudC5GcmFnbWVudDtcbnZhciB3aXRoU2VsZWN0ID0gd3AuZGF0YS53aXRoU2VsZWN0O1xudmFyIGNvbXBvc2UgPSB3cC5jb21wb3NlLmNvbXBvc2U7XG5cblxudmFyIExhbmd1YWdlU3dpdGNoZXJOb3RpY2UgPSBmdW5jdGlvbiBMYW5ndWFnZVN3aXRjaGVyTm90aWNlKHByb3BzKSB7XG5cdGlmIChXUEdsb2J1c0d1dGVuYmVyZy5wYWdlbm93ID09IFdQR2xvYnVzR3V0ZW5iZXJnLnBvc3ROZXdQYWdlKSB7XG5cdFx0cmV0dXJuIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JywgbnVsbCk7XG5cdH1cblxuXHR2YXIgZGV2ID0gJyc7XG5cdGlmICgndW5kZWZpbmVkJyAhPT0gdHlwZW9mIFdQR2xvYnVzQmxvY2tFZGl0b3JEZXZlbG9wICYmICFXUEdsb2J1c0Jsb2NrRWRpdG9yRGV2ZWxvcC5wcm9kdWN0aW9uKSB7XG5cdFx0ZGV2ID0gJyhkZXZlbG9wKSc7XG5cdH1cblxuXHRyZXR1cm4gd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdE5vdGljZSxcblx0XHR7IGNsYXNzTmFtZTogJ3dwZ2xvYnVzLWJsb2NrLWVkaXRvci1wYW5lbF9fbm90aWNlJywgc3RhdHVzOiAnaW5mb3JtYXRpb25hbCcsIGlzRGlzbWlzc2libGU6IGZhbHNlIH0sXG5cdFx0X18oJ1NlbGVjdCBsYW5ndWFnZScpLFxuXHRcdCcgJyxcblx0XHRkZXZcblx0KTtcbn07XG5cbnZhciBMYW5ndWFnZVN3aXRjaGVyID0gZnVuY3Rpb24gTGFuZ3VhZ2VTd2l0Y2hlcihwcm9wcykge1xuXG5cdGlmIChXUEdsb2J1c0d1dGVuYmVyZy5wYWdlbm93ID09IFdQR2xvYnVzR3V0ZW5iZXJnLnBvc3ROZXdQYWdlKSB7XG5cdFx0cmV0dXJuIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdCdkaXYnLFxuXHRcdFx0eyBjbGFzc05hbWU6ICd3cGdsb2J1cy1ibG9jay1lZGl0b3ItcGFuZWxfX3N3aXRjaGVyLWJveCcgfSxcblx0XHRcdFdQR2xvYnVzR3V0ZW5iZXJnLmkxOG4uc2F2ZV9wb3N0XG5cdFx0KTtcblx0fVxuXG5cdHZhciBsYW5ndWFnZSA9IFdQR2xvYnVzR3V0ZW5iZXJnLmxhbmd1YWdlO1xuXHR2YXIgZmxhZ3NVcmwgPSBXUEdsb2J1c0d1dGVuYmVyZy5mbGFnc191cmw7XG5cdHZhciBlbmFibGVkTGFuZ3VhZ2VzID0gV1BHbG9idXNDb3JlRGF0YS5lbmFibGVkX2xhbmd1YWdlcztcblx0dmFyIGxhbmd1YWdlTmFtZXMgPSBXUEdsb2J1c0NvcmVEYXRhLmVuX2xhbmd1YWdlX25hbWU7XG5cdHZhciByZWYgPSBsb2NhdGlvbi5ocmVmO1xuXHR2YXIgcmVmcyA9IHt9O1xuXHRmb3IgKHZhciBrZXkgaW4gZW5hYmxlZExhbmd1YWdlcykge1xuXHRcdGlmICgtMSA9PSByZWYuaW5kZXhPZignbGFuZ3VhZ2U9JyArIGxhbmd1YWdlKSkge1xuXHRcdFx0cmVmc1tlbmFibGVkTGFuZ3VhZ2VzW2tleV1dID0gcmVmICsgJyZsYW5ndWFnZT0nICsgZW5hYmxlZExhbmd1YWdlc1trZXldO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZWZzW2VuYWJsZWRMYW5ndWFnZXNba2V5XV0gPSByZWYucmVwbGFjZSgnbGFuZ3VhZ2U9JyArIGxhbmd1YWdlLCAnbGFuZ3VhZ2U9JyArIGVuYWJsZWRMYW5ndWFnZXNba2V5XSk7XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHQnZGl2Jyxcblx0XHR7IGNsYXNzTmFtZTogJ3dwZ2xvYnVzLWJsb2NrLWVkaXRvci1wYW5lbF9fc3dpdGNoZXItYm94JyB9LFxuXHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdCd1bCcsXG5cdFx0XHRudWxsLFxuXHRcdFx0ZW5hYmxlZExhbmd1YWdlcy5tYXAoZnVuY3Rpb24gKGxhbmcpIHtcblx0XHRcdFx0cmV0dXJuIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdFx0XHQnbGknLFxuXHRcdFx0XHRcdHsga2V5OiBsYW5nIH0sXG5cdFx0XHRcdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KCdpbWcnLCB7IGNsYXNzTmFtZTogJ3dwZ2xvYnVzLWJsb2NrLWVkaXRvci1wYW5lbF9fZmxhZycsIGhlaWdodDogJzIwcHgnLCB3aWR0aDogJzIwcHgnLCBzcmM6IGZsYWdzVXJsW2xhbmddIH0pLFxuXHRcdFx0XHRcdCdcXHhBMFxceEEwJyxcblx0XHRcdFx0XHR3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRcdFx0XHRCdXR0b24sXG5cdFx0XHRcdFx0XHR7IGhyZWY6IHJlZnNbbGFuZ10sIGlzU21hbGw6IHRydWUsIGlzUHJpbWFyeTogdHJ1ZSB9LFxuXHRcdFx0XHRcdFx0bGFuZ3VhZ2VOYW1lc1tsYW5nXVxuXHRcdFx0XHRcdClcblx0XHRcdFx0KTtcblx0XHRcdH0pXG5cdFx0KVxuXHQpO1xufTtcblxudmFyIFdQR2xvYnVzSW5mbyA9IGZ1bmN0aW9uIFdQR2xvYnVzSW5mbyhwcm9wcykge1xuXHRyZXR1cm4gd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdCdkaXYnLFxuXHRcdHsgY2xhc3NOYW1lOiAnd3BnbG9idXMtYmxvY2stZWRpdG9yLXBhbmVsX19pbmZvJyB9LFxuXHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdEJ1dHRvbixcblx0XHRcdHsgaHJlZjogcHJvcHMuaHJlZiwgdGFyZ2V0OiAnX2JsYW5rJywgaXNMaW5rOiB0cnVlIH0sXG5cdFx0XHRfXygnV1BHbG9idXMgUHJlbWl1bSBBZGQtb25zJylcblx0XHQpXG5cdCk7XG59O1xuXG52YXIgU2V0dGluZ3NMaW5rID0gZnVuY3Rpb24gU2V0dGluZ3NMaW5rKHByb3BzKSB7XG5cdHJldHVybiB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0J2RpdicsXG5cdFx0eyBjbGFzc05hbWU6ICd3cGdsb2J1cy1ibG9jay1lZGl0b3ItcGFuZWxfX3NldHRpbmdzLWxpbmsnIH0sXG5cdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0QnV0dG9uLFxuXHRcdFx0eyBocmVmOiBwcm9wcy5ocmVmLCBpc0xpbms6IHRydWUgfSxcblx0XHRcdF9fKCdTZXR0aW5ncycpXG5cdFx0KVxuXHQpO1xufTtcblxudmFyIHJlZ2lzdGVyUGx1Z2luID0gd3AucGx1Z2lucy5yZWdpc3RlclBsdWdpbjtcblxudmFyIFdQR2xvYnVzX0Jsb2NrRWRpdG9yID0gZnVuY3Rpb24gKF9Db21wb25lbnQpIHtcblx0X2luaGVyaXRzKFdQR2xvYnVzX0Jsb2NrRWRpdG9yLCBfQ29tcG9uZW50KTtcblxuXHRmdW5jdGlvbiBXUEdsb2J1c19CbG9ja0VkaXRvcigpIHtcblx0XHRfY2xhc3NDYWxsQ2hlY2sodGhpcywgV1BHbG9idXNfQmxvY2tFZGl0b3IpO1xuXG5cdFx0dmFyIF90aGlzID0gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgKFdQR2xvYnVzX0Jsb2NrRWRpdG9yLl9fcHJvdG9fXyB8fCBfT2JqZWN0JGdldFByb3RvdHlwZU9mKFdQR2xvYnVzX0Jsb2NrRWRpdG9yKSkuYXBwbHkodGhpcywgYXJndW1lbnRzKSk7XG5cblx0XHR2YXIgZGV2ID0gJyc7XG5cdFx0aWYgKCd1bmRlZmluZWQnICE9PSB0eXBlb2YgV1BHbG9idXNCbG9ja0VkaXRvckRldmVsb3AgJiYgIVdQR2xvYnVzQmxvY2tFZGl0b3JEZXZlbG9wLnByb2R1Y3Rpb24pIHtcblx0XHRcdGRldiA9ICcgKGRldmVsb3ApJztcblx0XHR9XG5cblx0XHRfdGhpcy5zdGF0ZSA9IHtcblx0XHRcdG9wdGlvbnNUYWJVcmw6IFdQR2xvYnVzR3V0ZW5iZXJnLmJsb2NrX2VkaXRvcl90YWJfdXJsLFxuXHRcdFx0c3RvcmVMaW5rOiBXUEdsb2J1c0d1dGVuYmVyZy5zdG9yZV9saW5rLFxuXHRcdFx0aGVhZGVyVGl0bGU6IF9fKCdXUEdsb2J1cycpICsgZGV2LFxuXHRcdFx0bW9yZU1lbnVJdGVtVGl0bGU6IF9fKCdXUEdsb2J1cycpXG5cdFx0fTtcblxuXHRcdHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuXHRcdFx0dmFyIGJ1dHRvbnMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdjb21wb25lbnRzLWljb24tYnV0dG9uJyk7XG5cdFx0XHRmb3IgKHZhciBpID0gMDsgaSA8IGJ1dHRvbnMubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0dmFyIHN0YXR1cyA9IGJ1dHRvbnNbaV0uZ2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJyk7XG5cdFx0XHRcdC8vaWYgKCBzdGF0dXMgPT0gJ1dQR2xvYnVzJyApIHsgXG5cdFx0XHRcdGlmICgtMSAhPSBzdGF0dXMuaW5kZXhPZignV1BHbG9idXMnKSkge1xuXHRcdFx0XHRcdHZhciBkb25lID0gYnV0dG9uc1tpXS5kYXRhc2V0LmRvbmU7XG5cdFx0XHRcdFx0aWYgKCd1bmRlZmluZWQnID09PSB0eXBlb2YgZG9uZSkge1xuXHRcdFx0XHRcdFx0dmFyIGNvbnRlbnQgPSBidXR0b25zW2ldLmlubmVySFRNTDtcblx0XHRcdFx0XHRcdC8vQHRvZG8gYnV0dG9uc1tpXS5jbGFzc0xpc3QuYWRkKCd3cGdsb2J1cy1zd2l0Y2hlci1idXR0b24nKTtcblx0XHRcdFx0XHRcdGJ1dHRvbnNbaV0uaW5uZXJIVE1MID0gY29udGVudCArICc8aW1nIGhlaWdodD1cIjIwcHhcIiB3aWR0aD1cIjIwcHhcIiBzcmM9XCInICsgV1BHbG9idXNHdXRlbmJlcmcuZmxhZ3NfdXJsW1dQR2xvYnVzR3V0ZW5iZXJnLmxhbmd1YWdlXSArICdcIiAvPiZuYnNwOycgKyBXUEdsb2J1c0FkbWluLmRhdGEuZW5fbGFuZ3VhZ2VfbmFtZVtXUEdsb2J1c0d1dGVuYmVyZy5sYW5ndWFnZV07XG5cdFx0XHRcdFx0XHRidXR0b25zW2ldLmRhdGFzZXQuZG9uZSA9ICd5ZXMnO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0sIDUwMCk7XG5cdFx0cmV0dXJuIF90aGlzO1xuXHR9XG5cblx0X2NyZWF0ZUNsYXNzKFdQR2xvYnVzX0Jsb2NrRWRpdG9yLCBbe1xuXHRcdGtleTogJ3JlbmRlcicsXG5cdFx0dmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcblx0XHRcdHJldHVybiB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRcdEZyYWdtZW50LFxuXHRcdFx0XHRudWxsLFxuXHRcdFx0XHR3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRcdFx0UGx1Z2luU2lkZWJhck1vcmVNZW51SXRlbSxcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHR0YXJnZXQ6ICd3cGdsb2J1cy1ndXRlbmJlcmctc2lkZWJhcidcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdHRoaXMuc3RhdGUubW9yZU1lbnVJdGVtVGl0bGVcblx0XHRcdFx0KSxcblx0XHRcdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0XHRcdFBsdWdpblNpZGViYXIsXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0bmFtZTogJ3dwZ2xvYnVzLWd1dGVuYmVyZy1zaWRlYmFyJyxcblx0XHRcdFx0XHRcdHRpdGxlOiB0aGlzLnN0YXRlLmhlYWRlclRpdGxlXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHR3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRcdFx0XHRQYW5lbEJvZHksXG5cdFx0XHRcdFx0XHR7IGNsYXNzTmFtZTogJ3dwZ2xvYnVzLWJsb2NrLWVkaXRvci1wYW5lbF9fYm9keScgfSxcblx0XHRcdFx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChMYW5ndWFnZVN3aXRjaGVyTm90aWNlLCBudWxsKSxcblx0XHRcdFx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChMYW5ndWFnZVN3aXRjaGVyLCBudWxsKSxcblx0XHRcdFx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdFx0XHRcdFx0J2RpdicsXG5cdFx0XHRcdFx0XHRcdG51bGwsXG5cdFx0XHRcdFx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChXUEdsb2J1c0luZm8sIHsgaHJlZjogdGhpcy5zdGF0ZS5zdG9yZUxpbmsgfSksXG5cdFx0XHRcdFx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChTZXR0aW5nc0xpbmssIHsgaHJlZjogdGhpcy5zdGF0ZS5vcHRpb25zVGFiVXJsIH0pXG5cdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0KVxuXHRcdFx0XHQpXG5cdFx0XHQpO1xuXHRcdH1cblx0fV0pO1xuXG5cdHJldHVybiBXUEdsb2J1c19CbG9ja0VkaXRvcjtcbn0oQ29tcG9uZW50KTtcblxudmFyIFdQR0JFID0gd2l0aFNlbGVjdChmdW5jdGlvbiAoc2VsZWN0LCBfcmVmKSB7XG5cdHZhciBmb3JjZUlzU2F2aW5nID0gX3JlZi5mb3JjZUlzU2F2aW5nO1xuXG5cdHZhciBfc2VsZWN0ID0gc2VsZWN0KCdjb3JlL2VkaXRvcicpLFxuXHQgICAgZ2V0Q3VycmVudFBvc3RJZCA9IF9zZWxlY3QuZ2V0Q3VycmVudFBvc3RJZCxcblx0ICAgIGlzU2F2aW5nUG9zdCA9IF9zZWxlY3QuaXNTYXZpbmdQb3N0LFxuXHQgICAgaXNQdWJsaXNoaW5nUG9zdCA9IF9zZWxlY3QuaXNQdWJsaXNoaW5nUG9zdCxcblx0ICAgIGlzQXV0b3NhdmluZ1Bvc3QgPSBfc2VsZWN0LmlzQXV0b3NhdmluZ1Bvc3Q7XG5cblx0cmV0dXJuIHtcblx0XHRwb3N0SWQ6IGdldEN1cnJlbnRQb3N0SWQoKSxcblx0XHRpc1NhdmluZzogZm9yY2VJc1NhdmluZyB8fCBpc1NhdmluZ1Bvc3QoKSxcblx0XHRpc0F1dG9TYXZpbmc6IGlzQXV0b3NhdmluZ1Bvc3QoKSxcblx0XHRpc1B1Ymxpc2hpbmc6IGlzUHVibGlzaGluZ1Bvc3QoKVxuXHR9O1xufSkoV1BHbG9idXNfQmxvY2tFZGl0b3IpO1xuXG5yZWdpc3RlclBsdWdpbignd3BnbG9idXMtZ3V0ZW5iZXJnJywge1xuXHRpY29uOiAnYWRtaW4tc2l0ZScsXG5cdHJlbmRlcjogV1BHQkVcbn0pO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vc3JjL3NpZGViYXIuanNcbi8vIG1vZHVsZSBpZCA9IDQzXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///43\n");
|
333 |
-
|
334 |
-
/***/ }),
|
335 |
-
/* 44 */
|
336 |
-
/***/ (function(module, exports, __webpack_require__) {
|
337 |
-
|
338 |
-
eval("module.exports = { \"default\": __webpack_require__(45), __esModule: true };//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDQuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9jb3JlLWpzL29iamVjdC9nZXQtcHJvdG90eXBlLW9mLmpzPzY3MWUiXSwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSB7IFwiZGVmYXVsdFwiOiByZXF1aXJlKFwiY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9nZXQtcHJvdG90eXBlLW9mXCIpLCBfX2VzTW9kdWxlOiB0cnVlIH07XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9jb3JlLWpzL29iamVjdC9nZXQtcHJvdG90eXBlLW9mLmpzXG4vLyBtb2R1bGUgaWQgPSA0NFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///44\n");
|
339 |
-
|
340 |
-
/***/ }),
|
341 |
-
/* 45 */
|
342 |
-
/***/ (function(module, exports, __webpack_require__) {
|
343 |
-
|
344 |
-
eval("__webpack_require__(46);\nmodule.exports = __webpack_require__(0).Object.getPrototypeOf;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDUuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9nZXQtcHJvdG90eXBlLW9mLmpzPzdkMmUiXSwic291cmNlc0NvbnRlbnQiOlsicmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lczYub2JqZWN0LmdldC1wcm90b3R5cGUtb2YnKTtcbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9fY29yZScpLk9iamVjdC5nZXRQcm90b3R5cGVPZjtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9mbi9vYmplY3QvZ2V0LXByb3RvdHlwZS1vZi5qc1xuLy8gbW9kdWxlIGlkID0gNDVcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///45\n");
|
345 |
-
|
346 |
-
/***/ }),
|
347 |
-
/* 46 */
|
348 |
-
/***/ (function(module, exports, __webpack_require__) {
|
349 |
-
|
350 |
-
eval("// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = __webpack_require__(28);\nvar $getPrototypeOf = __webpack_require__(29);\n\n__webpack_require__(47)('getPrototypeOf', function () {\n return function getPrototypeOf(it) {\n return $getPrototypeOf(toObject(it));\n };\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDYuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2Lm9iamVjdC5nZXQtcHJvdG90eXBlLW9mLmpzPzJhMWUiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gMTkuMS4yLjkgT2JqZWN0LmdldFByb3RvdHlwZU9mKE8pXG52YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuL190by1vYmplY3QnKTtcbnZhciAkZ2V0UHJvdG90eXBlT2YgPSByZXF1aXJlKCcuL19vYmplY3QtZ3BvJyk7XG5cbnJlcXVpcmUoJy4vX29iamVjdC1zYXAnKSgnZ2V0UHJvdG90eXBlT2YnLCBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBmdW5jdGlvbiBnZXRQcm90b3R5cGVPZihpdCkge1xuICAgIHJldHVybiAkZ2V0UHJvdG90eXBlT2YodG9PYmplY3QoaXQpKTtcbiAgfTtcbn0pO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2Lm9iamVjdC5nZXQtcHJvdG90eXBlLW9mLmpzXG4vLyBtb2R1bGUgaWQgPSA0NlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///46\n");
|
351 |
-
|
352 |
-
/***/ }),
|
353 |
-
/* 47 */
|
354 |
-
/***/ (function(module, exports, __webpack_require__) {
|
355 |
-
|
356 |
-
eval("// most Object methods by ES6 should accept primitives\nvar $export = __webpack_require__(5);\nvar core = __webpack_require__(0);\nvar fails = __webpack_require__(11);\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDcuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1zYXAuanM/YmFhNSJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBtb3N0IE9iamVjdCBtZXRob2RzIGJ5IEVTNiBzaG91bGQgYWNjZXB0IHByaW1pdGl2ZXNcbnZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG52YXIgY29yZSA9IHJlcXVpcmUoJy4vX2NvcmUnKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4vX2ZhaWxzJyk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChLRVksIGV4ZWMpIHtcbiAgdmFyIGZuID0gKGNvcmUuT2JqZWN0IHx8IHt9KVtLRVldIHx8IE9iamVjdFtLRVldO1xuICB2YXIgZXhwID0ge307XG4gIGV4cFtLRVldID0gZXhlYyhmbik7XG4gICRleHBvcnQoJGV4cG9ydC5TICsgJGV4cG9ydC5GICogZmFpbHMoZnVuY3Rpb24gKCkgeyBmbigxKTsgfSksICdPYmplY3QnLCBleHApO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3Qtc2FwLmpzXG4vLyBtb2R1bGUgaWQgPSA0N1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///47\n");
|
357 |
-
|
358 |
-
/***/ }),
|
359 |
-
/* 48 */
|
360 |
-
/***/ (function(module, exports) {
|
361 |
-
|
362 |
-
eval("module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDguanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2EtZnVuY3Rpb24uanM/OTRlOSJdLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICBpZiAodHlwZW9mIGl0ICE9ICdmdW5jdGlvbicpIHRocm93IFR5cGVFcnJvcihpdCArICcgaXMgbm90IGEgZnVuY3Rpb24hJyk7XG4gIHJldHVybiBpdDtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fYS1mdW5jdGlvbi5qc1xuLy8gbW9kdWxlIGlkID0gNDhcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///48\n");
|
363 |
-
|
364 |
-
/***/ }),
|
365 |
-
/* 49 */
|
366 |
-
/***/ (function(module, exports, __webpack_require__) {
|
367 |
-
|
368 |
-
"use strict";
|
369 |
-
eval("\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDkuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9oZWxwZXJzL2NsYXNzQ2FsbENoZWNrLmpzPzY2YjkiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmV4cG9ydHMuZGVmYXVsdCA9IGZ1bmN0aW9uIChpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHtcbiAgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpO1xuICB9XG59O1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvaGVscGVycy9jbGFzc0NhbGxDaGVjay5qc1xuLy8gbW9kdWxlIGlkID0gNDlcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///49\n");
|
370 |
-
|
371 |
-
/***/ }),
|
372 |
-
/* 50 */
|
373 |
-
/***/ (function(module, exports, __webpack_require__) {
|
374 |
-
|
375 |
-
"use strict";
|
376 |
-
eval("\n\nexports.__esModule = true;\n\nvar _defineProperty = __webpack_require__(51);\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n (0, _defineProperty2.default)(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTAuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9oZWxwZXJzL2NyZWF0ZUNsYXNzLmpzP2MzMTAiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfZGVmaW5lUHJvcGVydHkgPSByZXF1aXJlKFwiLi4vY29yZS1qcy9vYmplY3QvZGVmaW5lLXByb3BlcnR5XCIpO1xuXG52YXIgX2RlZmluZVByb3BlcnR5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2RlZmluZVByb3BlcnR5KTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH1cblxuZXhwb3J0cy5kZWZhdWx0ID0gZnVuY3Rpb24gKCkge1xuICBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldO1xuICAgICAgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlO1xuICAgICAgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlO1xuICAgICAgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTtcbiAgICAgICgwLCBfZGVmaW5lUHJvcGVydHkyLmRlZmF1bHQpKHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmdW5jdGlvbiAoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7XG4gICAgaWYgKHByb3RvUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTtcbiAgICBpZiAoc3RhdGljUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTtcbiAgICByZXR1cm4gQ29uc3RydWN0b3I7XG4gIH07XG59KCk7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9oZWxwZXJzL2NyZWF0ZUNsYXNzLmpzXG4vLyBtb2R1bGUgaWQgPSA1MFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///50\n");
|
377 |
-
|
378 |
-
/***/ }),
|
379 |
-
/* 51 */
|
380 |
-
/***/ (function(module, exports, __webpack_require__) {
|
381 |
-
|
382 |
-
eval("module.exports = { \"default\": __webpack_require__(52), __esModule: true };//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTEuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9jb3JlLWpzL29iamVjdC9kZWZpbmUtcHJvcGVydHkuanM/MGI4MyJdLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHsgXCJkZWZhdWx0XCI6IHJlcXVpcmUoXCJjb3JlLWpzL2xpYnJhcnkvZm4vb2JqZWN0L2RlZmluZS1wcm9wZXJ0eVwiKSwgX19lc01vZHVsZTogdHJ1ZSB9O1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvY29yZS1qcy9vYmplY3QvZGVmaW5lLXByb3BlcnR5LmpzXG4vLyBtb2R1bGUgaWQgPSA1MVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///51\n");
|
383 |
-
|
384 |
-
/***/ }),
|
385 |
-
/* 52 */
|
386 |
-
/***/ (function(module, exports, __webpack_require__) {
|
387 |
-
|
388 |
-
eval("__webpack_require__(53);\nvar $Object = __webpack_require__(0).Object;\nmodule.exports = function defineProperty(it, key, desc) {\n return $Object.defineProperty(it, key, desc);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTIuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9kZWZpbmUtcHJvcGVydHkuanM/ZjViMCJdLCJzb3VyY2VzQ29udGVudCI6WyJyZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzNi5vYmplY3QuZGVmaW5lLXByb3BlcnR5Jyk7XG52YXIgJE9iamVjdCA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZXMvX2NvcmUnKS5PYmplY3Q7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGRlZmluZVByb3BlcnR5KGl0LCBrZXksIGRlc2MpIHtcbiAgcmV0dXJuICRPYmplY3QuZGVmaW5lUHJvcGVydHkoaXQsIGtleSwgZGVzYyk7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9kZWZpbmUtcHJvcGVydHkuanNcbi8vIG1vZHVsZSBpZCA9IDUyXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///52\n");
|
389 |
-
|
390 |
-
/***/ }),
|
391 |
-
/* 53 */
|
392 |
-
/***/ (function(module, exports, __webpack_require__) {
|
393 |
-
|
394 |
-
eval("var $export = __webpack_require__(5);\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !__webpack_require__(4), 'Object', { defineProperty: __webpack_require__(3).f });\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2Lm9iamVjdC5kZWZpbmUtcHJvcGVydHkuanM/OTgyOSJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xuLy8gMTkuMS4yLjQgLyAxNS4yLjMuNiBPYmplY3QuZGVmaW5lUHJvcGVydHkoTywgUCwgQXR0cmlidXRlcylcbiRleHBvcnQoJGV4cG9ydC5TICsgJGV4cG9ydC5GICogIXJlcXVpcmUoJy4vX2Rlc2NyaXB0b3JzJyksICdPYmplY3QnLCB7IGRlZmluZVByb3BlcnR5OiByZXF1aXJlKCcuL19vYmplY3QtZHAnKS5mIH0pO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2Lm9iamVjdC5kZWZpbmUtcHJvcGVydHkuanNcbi8vIG1vZHVsZSBpZCA9IDUzXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///53\n");
|
395 |
-
|
396 |
-
/***/ }),
|
397 |
-
/* 54 */
|
398 |
-
/***/ (function(module, exports, __webpack_require__) {
|
399 |
-
|
400 |
-
"use strict";
|
401 |
-
eval("\n\nexports.__esModule = true;\n\nvar _typeof2 = __webpack_require__(33);\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && ((typeof call === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(call)) === \"object\" || typeof call === \"function\") ? call : self;\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTQuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9oZWxwZXJzL3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4uanM/Y2YwYSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxudmFyIF90eXBlb2YyID0gcmVxdWlyZShcIi4uL2hlbHBlcnMvdHlwZW9mXCIpO1xuXG52YXIgX3R5cGVvZjMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF90eXBlb2YyKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH1cblxuZXhwb3J0cy5kZWZhdWx0ID0gZnVuY3Rpb24gKHNlbGYsIGNhbGwpIHtcbiAgaWYgKCFzZWxmKSB7XG4gICAgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpO1xuICB9XG5cbiAgcmV0dXJuIGNhbGwgJiYgKCh0eXBlb2YgY2FsbCA9PT0gXCJ1bmRlZmluZWRcIiA/IFwidW5kZWZpbmVkXCIgOiAoMCwgX3R5cGVvZjMuZGVmYXVsdCkoY2FsbCkpID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBjYWxsID09PSBcImZ1bmN0aW9uXCIpID8gY2FsbCA6IHNlbGY7XG59O1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvaGVscGVycy9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuLmpzXG4vLyBtb2R1bGUgaWQgPSA1NFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///54\n");
|
402 |
-
|
403 |
-
/***/ }),
|
404 |
-
/* 55 */
|
405 |
-
/***/ (function(module, exports, __webpack_require__) {
|
406 |
-
|
407 |
-
eval("module.exports = { \"default\": __webpack_require__(56), __esModule: true };//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTUuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9jb3JlLWpzL3N5bWJvbC9pdGVyYXRvci5qcz82NzM4Il0sInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0geyBcImRlZmF1bHRcIjogcmVxdWlyZShcImNvcmUtanMvbGlicmFyeS9mbi9zeW1ib2wvaXRlcmF0b3JcIiksIF9fZXNNb2R1bGU6IHRydWUgfTtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL2NvcmUtanMvc3ltYm9sL2l0ZXJhdG9yLmpzXG4vLyBtb2R1bGUgaWQgPSA1NVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///55\n");
|
408 |
-
|
409 |
-
/***/ }),
|
410 |
-
/* 56 */
|
411 |
-
/***/ (function(module, exports, __webpack_require__) {
|
412 |
-
|
413 |
-
eval("__webpack_require__(57);\n__webpack_require__(66);\nmodule.exports = __webpack_require__(25).f('iterator');\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTYuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL3N5bWJvbC9pdGVyYXRvci5qcz9mZTdlIl0sInNvdXJjZXNDb250ZW50IjpbInJlcXVpcmUoJy4uLy4uL21vZHVsZXMvZXM2LnN0cmluZy5pdGVyYXRvcicpO1xucmVxdWlyZSgnLi4vLi4vbW9kdWxlcy93ZWIuZG9tLml0ZXJhYmxlJyk7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZXMvX3drcy1leHQnKS5mKCdpdGVyYXRvcicpO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL3N5bWJvbC9pdGVyYXRvci5qc1xuLy8gbW9kdWxlIGlkID0gNTZcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///56\n");
|
414 |
-
|
415 |
-
/***/ }),
|
416 |
-
/* 57 */
|
417 |
-
/***/ (function(module, exports, __webpack_require__) {
|
418 |
-
|
419 |
-
"use strict";
|
420 |
-
eval("\nvar $at = __webpack_require__(58)(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\n__webpack_require__(34)(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTcuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2LnN0cmluZy5pdGVyYXRvci5qcz9jZDA0Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcbnZhciAkYXQgPSByZXF1aXJlKCcuL19zdHJpbmctYXQnKSh0cnVlKTtcblxuLy8gMjEuMS4zLjI3IFN0cmluZy5wcm90b3R5cGVbQEBpdGVyYXRvcl0oKVxucmVxdWlyZSgnLi9faXRlci1kZWZpbmUnKShTdHJpbmcsICdTdHJpbmcnLCBmdW5jdGlvbiAoaXRlcmF0ZWQpIHtcbiAgdGhpcy5fdCA9IFN0cmluZyhpdGVyYXRlZCk7IC8vIHRhcmdldFxuICB0aGlzLl9pID0gMDsgICAgICAgICAgICAgICAgLy8gbmV4dCBpbmRleFxuLy8gMjEuMS41LjIuMSAlU3RyaW5nSXRlcmF0b3JQcm90b3R5cGUlLm5leHQoKVxufSwgZnVuY3Rpb24gKCkge1xuICB2YXIgTyA9IHRoaXMuX3Q7XG4gIHZhciBpbmRleCA9IHRoaXMuX2k7XG4gIHZhciBwb2ludDtcbiAgaWYgKGluZGV4ID49IE8ubGVuZ3RoKSByZXR1cm4geyB2YWx1ZTogdW5kZWZpbmVkLCBkb25lOiB0cnVlIH07XG4gIHBvaW50ID0gJGF0KE8sIGluZGV4KTtcbiAgdGhpcy5faSArPSBwb2ludC5sZW5ndGg7XG4gIHJldHVybiB7IHZhbHVlOiBwb2ludCwgZG9uZTogZmFsc2UgfTtcbn0pO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2LnN0cmluZy5pdGVyYXRvci5qc1xuLy8gbW9kdWxlIGlkID0gNTdcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///57\n");
|
421 |
-
|
422 |
-
/***/ }),
|
423 |
-
/* 58 */
|
424 |
-
/***/ (function(module, exports, __webpack_require__) {
|
425 |
-
|
426 |
-
eval("var toInteger = __webpack_require__(19);\nvar defined = __webpack_require__(15);\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTguanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3N0cmluZy1hdC5qcz84N2FlIl0sInNvdXJjZXNDb250ZW50IjpbInZhciB0b0ludGVnZXIgPSByZXF1aXJlKCcuL190by1pbnRlZ2VyJyk7XG52YXIgZGVmaW5lZCA9IHJlcXVpcmUoJy4vX2RlZmluZWQnKTtcbi8vIHRydWUgIC0+IFN0cmluZyNhdFxuLy8gZmFsc2UgLT4gU3RyaW5nI2NvZGVQb2ludEF0XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChUT19TVFJJTkcpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICh0aGF0LCBwb3MpIHtcbiAgICB2YXIgcyA9IFN0cmluZyhkZWZpbmVkKHRoYXQpKTtcbiAgICB2YXIgaSA9IHRvSW50ZWdlcihwb3MpO1xuICAgIHZhciBsID0gcy5sZW5ndGg7XG4gICAgdmFyIGEsIGI7XG4gICAgaWYgKGkgPCAwIHx8IGkgPj0gbCkgcmV0dXJuIFRPX1NUUklORyA/ICcnIDogdW5kZWZpbmVkO1xuICAgIGEgPSBzLmNoYXJDb2RlQXQoaSk7XG4gICAgcmV0dXJuIGEgPCAweGQ4MDAgfHwgYSA+IDB4ZGJmZiB8fCBpICsgMSA9PT0gbCB8fCAoYiA9IHMuY2hhckNvZGVBdChpICsgMSkpIDwgMHhkYzAwIHx8IGIgPiAweGRmZmZcbiAgICAgID8gVE9fU1RSSU5HID8gcy5jaGFyQXQoaSkgOiBhXG4gICAgICA6IFRPX1NUUklORyA/IHMuc2xpY2UoaSwgaSArIDIpIDogKGEgLSAweGQ4MDAgPDwgMTApICsgKGIgLSAweGRjMDApICsgMHgxMDAwMDtcbiAgfTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fc3RyaW5nLWF0LmpzXG4vLyBtb2R1bGUgaWQgPSA1OFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///58\n");
|
427 |
-
|
428 |
-
/***/ }),
|
429 |
-
/* 59 */
|
430 |
-
/***/ (function(module, exports, __webpack_require__) {
|
431 |
-
|
432 |
-
"use strict";
|
433 |
-
eval("\nvar create = __webpack_require__(21);\nvar descriptor = __webpack_require__(14);\nvar setToStringTag = __webpack_require__(24);\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\n__webpack_require__(6)(IteratorPrototype, __webpack_require__(9)('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTkuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2l0ZXItY3JlYXRlLmpzP2Y3ODUiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xudmFyIGNyZWF0ZSA9IHJlcXVpcmUoJy4vX29iamVjdC1jcmVhdGUnKTtcbnZhciBkZXNjcmlwdG9yID0gcmVxdWlyZSgnLi9fcHJvcGVydHktZGVzYycpO1xudmFyIHNldFRvU3RyaW5nVGFnID0gcmVxdWlyZSgnLi9fc2V0LXRvLXN0cmluZy10YWcnKTtcbnZhciBJdGVyYXRvclByb3RvdHlwZSA9IHt9O1xuXG4vLyAyNS4xLjIuMS4xICVJdGVyYXRvclByb3RvdHlwZSVbQEBpdGVyYXRvcl0oKVxucmVxdWlyZSgnLi9faGlkZScpKEl0ZXJhdG9yUHJvdG90eXBlLCByZXF1aXJlKCcuL193a3MnKSgnaXRlcmF0b3InKSwgZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfSk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKENvbnN0cnVjdG9yLCBOQU1FLCBuZXh0KSB7XG4gIENvbnN0cnVjdG9yLnByb3RvdHlwZSA9IGNyZWF0ZShJdGVyYXRvclByb3RvdHlwZSwgeyBuZXh0OiBkZXNjcmlwdG9yKDEsIG5leHQpIH0pO1xuICBzZXRUb1N0cmluZ1RhZyhDb25zdHJ1Y3RvciwgTkFNRSArICcgSXRlcmF0b3InKTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9faXRlci1jcmVhdGUuanNcbi8vIG1vZHVsZSBpZCA9IDU5XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///59\n");
|
434 |
-
|
435 |
-
/***/ }),
|
436 |
-
/* 60 */
|
437 |
-
/***/ (function(module, exports, __webpack_require__) {
|
438 |
-
|
439 |
-
eval("var dP = __webpack_require__(3);\nvar anObject = __webpack_require__(10);\nvar getKeys = __webpack_require__(22);\n\nmodule.exports = __webpack_require__(4) ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjAuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1kcHMuanM/YWEyYSJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgZFAgPSByZXF1aXJlKCcuL19vYmplY3QtZHAnKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4vX2FuLW9iamVjdCcpO1xudmFyIGdldEtleXMgPSByZXF1aXJlKCcuL19vYmplY3Qta2V5cycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vX2Rlc2NyaXB0b3JzJykgPyBPYmplY3QuZGVmaW5lUHJvcGVydGllcyA6IGZ1bmN0aW9uIGRlZmluZVByb3BlcnRpZXMoTywgUHJvcGVydGllcykge1xuICBhbk9iamVjdChPKTtcbiAgdmFyIGtleXMgPSBnZXRLZXlzKFByb3BlcnRpZXMpO1xuICB2YXIgbGVuZ3RoID0ga2V5cy5sZW5ndGg7XG4gIHZhciBpID0gMDtcbiAgdmFyIFA7XG4gIHdoaWxlIChsZW5ndGggPiBpKSBkUC5mKE8sIFAgPSBrZXlzW2krK10sIFByb3BlcnRpZXNbUF0pO1xuICByZXR1cm4gTztcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fb2JqZWN0LWRwcy5qc1xuLy8gbW9kdWxlIGlkID0gNjBcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///60\n");
|
440 |
-
|
441 |
-
/***/ }),
|
442 |
-
/* 61 */
|
443 |
-
/***/ (function(module, exports, __webpack_require__) {
|
444 |
-
|
445 |
-
eval("// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = __webpack_require__(37);\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjEuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2lvYmplY3QuanM/MzE0ZSJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBmYWxsYmFjayBmb3Igbm9uLWFycmF5LWxpa2UgRVMzIGFuZCBub24tZW51bWVyYWJsZSBvbGQgVjggc3RyaW5nc1xudmFyIGNvZiA9IHJlcXVpcmUoJy4vX2NvZicpO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXByb3RvdHlwZS1idWlsdGluc1xubW9kdWxlLmV4cG9ydHMgPSBPYmplY3QoJ3onKS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgwKSA/IE9iamVjdCA6IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gY29mKGl0KSA9PSAnU3RyaW5nJyA/IGl0LnNwbGl0KCcnKSA6IE9iamVjdChpdCk7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2lvYmplY3QuanNcbi8vIG1vZHVsZSBpZCA9IDYxXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///61\n");
|
446 |
-
|
447 |
-
/***/ }),
|
448 |
-
/* 62 */
|
449 |
-
/***/ (function(module, exports, __webpack_require__) {
|
450 |
-
|
451 |
-
eval("// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = __webpack_require__(8);\nvar toLength = __webpack_require__(63);\nvar toAbsoluteIndex = __webpack_require__(64);\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjIuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2FycmF5LWluY2x1ZGVzLmpzP2JjNTciXSwic291cmNlc0NvbnRlbnQiOlsiLy8gZmFsc2UgLT4gQXJyYXkjaW5kZXhPZlxuLy8gdHJ1ZSAgLT4gQXJyYXkjaW5jbHVkZXNcbnZhciB0b0lPYmplY3QgPSByZXF1aXJlKCcuL190by1pb2JqZWN0Jyk7XG52YXIgdG9MZW5ndGggPSByZXF1aXJlKCcuL190by1sZW5ndGgnKTtcbnZhciB0b0Fic29sdXRlSW5kZXggPSByZXF1aXJlKCcuL190by1hYnNvbHV0ZS1pbmRleCcpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoSVNfSU5DTFVERVMpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgkdGhpcywgZWwsIGZyb21JbmRleCkge1xuICAgIHZhciBPID0gdG9JT2JqZWN0KCR0aGlzKTtcbiAgICB2YXIgbGVuZ3RoID0gdG9MZW5ndGgoTy5sZW5ndGgpO1xuICAgIHZhciBpbmRleCA9IHRvQWJzb2x1dGVJbmRleChmcm9tSW5kZXgsIGxlbmd0aCk7XG4gICAgdmFyIHZhbHVlO1xuICAgIC8vIEFycmF5I2luY2x1ZGVzIHVzZXMgU2FtZVZhbHVlWmVybyBlcXVhbGl0eSBhbGdvcml0aG1cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2VsZi1jb21wYXJlXG4gICAgaWYgKElTX0lOQ0xVREVTICYmIGVsICE9IGVsKSB3aGlsZSAobGVuZ3RoID4gaW5kZXgpIHtcbiAgICAgIHZhbHVlID0gT1tpbmRleCsrXTtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1zZWxmLWNvbXBhcmVcbiAgICAgIGlmICh2YWx1ZSAhPSB2YWx1ZSkgcmV0dXJuIHRydWU7XG4gICAgLy8gQXJyYXkjaW5kZXhPZiBpZ25vcmVzIGhvbGVzLCBBcnJheSNpbmNsdWRlcyAtIG5vdFxuICAgIH0gZWxzZSBmb3IgKDtsZW5ndGggPiBpbmRleDsgaW5kZXgrKykgaWYgKElTX0lOQ0xVREVTIHx8IGluZGV4IGluIE8pIHtcbiAgICAgIGlmIChPW2luZGV4XSA9PT0gZWwpIHJldHVybiBJU19JTkNMVURFUyB8fCBpbmRleCB8fCAwO1xuICAgIH0gcmV0dXJuICFJU19JTkNMVURFUyAmJiAtMTtcbiAgfTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fYXJyYXktaW5jbHVkZXMuanNcbi8vIG1vZHVsZSBpZCA9IDYyXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///62\n");
|
452 |
-
|
453 |
-
/***/ }),
|
454 |
-
/* 63 */
|
455 |
-
/***/ (function(module, exports, __webpack_require__) {
|
456 |
-
|
457 |
-
eval("// 7.1.15 ToLength\nvar toInteger = __webpack_require__(19);\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3RvLWxlbmd0aC5qcz80MTExIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIDcuMS4xNSBUb0xlbmd0aFxudmFyIHRvSW50ZWdlciA9IHJlcXVpcmUoJy4vX3RvLWludGVnZXInKTtcbnZhciBtaW4gPSBNYXRoLm1pbjtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBpdCA+IDAgPyBtaW4odG9JbnRlZ2VyKGl0KSwgMHgxZmZmZmZmZmZmZmZmZikgOiAwOyAvLyBwb3coMiwgNTMpIC0gMSA9PSA5MDA3MTk5MjU0NzQwOTkxXG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3RvLWxlbmd0aC5qc1xuLy8gbW9kdWxlIGlkID0gNjNcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///63\n");
|
458 |
-
|
459 |
-
/***/ }),
|
460 |
-
/* 64 */
|
461 |
-
/***/ (function(module, exports, __webpack_require__) {
|
462 |
-
|
463 |
-
eval("var toInteger = __webpack_require__(19);\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjQuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3RvLWFic29sdXRlLWluZGV4LmpzPzdlNDAiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIHRvSW50ZWdlciA9IHJlcXVpcmUoJy4vX3RvLWludGVnZXInKTtcbnZhciBtYXggPSBNYXRoLm1heDtcbnZhciBtaW4gPSBNYXRoLm1pbjtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGluZGV4LCBsZW5ndGgpIHtcbiAgaW5kZXggPSB0b0ludGVnZXIoaW5kZXgpO1xuICByZXR1cm4gaW5kZXggPCAwID8gbWF4KGluZGV4ICsgbGVuZ3RoLCAwKSA6IG1pbihpbmRleCwgbGVuZ3RoKTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fdG8tYWJzb2x1dGUtaW5kZXguanNcbi8vIG1vZHVsZSBpZCA9IDY0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///64\n");
|
464 |
-
|
465 |
-
/***/ }),
|
466 |
-
/* 65 */
|
467 |
-
/***/ (function(module, exports, __webpack_require__) {
|
468 |
-
|
469 |
-
eval("var document = __webpack_require__(1).document;\nmodule.exports = document && document.documentElement;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjUuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2h0bWwuanM/NDRmMiJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgZG9jdW1lbnQgPSByZXF1aXJlKCcuL19nbG9iYWwnKS5kb2N1bWVudDtcbm1vZHVsZS5leHBvcnRzID0gZG9jdW1lbnQgJiYgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2h0bWwuanNcbi8vIG1vZHVsZSBpZCA9IDY1XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///65\n");
|
470 |
-
|
471 |
-
/***/ }),
|
472 |
-
/* 66 */
|
473 |
-
/***/ (function(module, exports, __webpack_require__) {
|
474 |
-
|
475 |
-
eval("__webpack_require__(67);\nvar global = __webpack_require__(1);\nvar hide = __webpack_require__(6);\nvar Iterators = __webpack_require__(20);\nvar TO_STRING_TAG = __webpack_require__(9)('toStringTag');\n\nvar DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +\n 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +\n 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +\n 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +\n 'TextTrackList,TouchList').split(',');\n\nfor (var i = 0; i < DOMIterables.length; i++) {\n var NAME = DOMIterables[i];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjYuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvd2ViLmRvbS5pdGVyYWJsZS5qcz9mYWQzIl0sInNvdXJjZXNDb250ZW50IjpbInJlcXVpcmUoJy4vZXM2LmFycmF5Lml0ZXJhdG9yJyk7XG52YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi9fZ2xvYmFsJyk7XG52YXIgaGlkZSA9IHJlcXVpcmUoJy4vX2hpZGUnKTtcbnZhciBJdGVyYXRvcnMgPSByZXF1aXJlKCcuL19pdGVyYXRvcnMnKTtcbnZhciBUT19TVFJJTkdfVEFHID0gcmVxdWlyZSgnLi9fd2tzJykoJ3RvU3RyaW5nVGFnJyk7XG5cbnZhciBET01JdGVyYWJsZXMgPSAoJ0NTU1J1bGVMaXN0LENTU1N0eWxlRGVjbGFyYXRpb24sQ1NTVmFsdWVMaXN0LENsaWVudFJlY3RMaXN0LERPTVJlY3RMaXN0LERPTVN0cmluZ0xpc3QsJyArXG4gICdET01Ub2tlbkxpc3QsRGF0YVRyYW5zZmVySXRlbUxpc3QsRmlsZUxpc3QsSFRNTEFsbENvbGxlY3Rpb24sSFRNTENvbGxlY3Rpb24sSFRNTEZvcm1FbGVtZW50LEhUTUxTZWxlY3RFbGVtZW50LCcgK1xuICAnTWVkaWFMaXN0LE1pbWVUeXBlQXJyYXksTmFtZWROb2RlTWFwLE5vZGVMaXN0LFBhaW50UmVxdWVzdExpc3QsUGx1Z2luLFBsdWdpbkFycmF5LFNWR0xlbmd0aExpc3QsU1ZHTnVtYmVyTGlzdCwnICtcbiAgJ1NWR1BhdGhTZWdMaXN0LFNWR1BvaW50TGlzdCxTVkdTdHJpbmdMaXN0LFNWR1RyYW5zZm9ybUxpc3QsU291cmNlQnVmZmVyTGlzdCxTdHlsZVNoZWV0TGlzdCxUZXh0VHJhY2tDdWVMaXN0LCcgK1xuICAnVGV4dFRyYWNrTGlzdCxUb3VjaExpc3QnKS5zcGxpdCgnLCcpO1xuXG5mb3IgKHZhciBpID0gMDsgaSA8IERPTUl0ZXJhYmxlcy5sZW5ndGg7IGkrKykge1xuICB2YXIgTkFNRSA9IERPTUl0ZXJhYmxlc1tpXTtcbiAgdmFyIENvbGxlY3Rpb24gPSBnbG9iYWxbTkFNRV07XG4gIHZhciBwcm90byA9IENvbGxlY3Rpb24gJiYgQ29sbGVjdGlvbi5wcm90b3R5cGU7XG4gIGlmIChwcm90byAmJiAhcHJvdG9bVE9fU1RSSU5HX1RBR10pIGhpZGUocHJvdG8sIFRPX1NUUklOR19UQUcsIE5BTUUpO1xuICBJdGVyYXRvcnNbTkFNRV0gPSBJdGVyYXRvcnMuQXJyYXk7XG59XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy93ZWIuZG9tLml0ZXJhYmxlLmpzXG4vLyBtb2R1bGUgaWQgPSA2NlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///66\n");
|
476 |
-
|
477 |
-
/***/ }),
|
478 |
-
/* 67 */
|
479 |
-
/***/ (function(module, exports, __webpack_require__) {
|
480 |
-
|
481 |
-
"use strict";
|
482 |
-
eval("\nvar addToUnscopables = __webpack_require__(68);\nvar step = __webpack_require__(69);\nvar Iterators = __webpack_require__(20);\nvar toIObject = __webpack_require__(8);\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = __webpack_require__(34)(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjcuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2LmFycmF5Lml0ZXJhdG9yLmpzP2M0NjkiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xudmFyIGFkZFRvVW5zY29wYWJsZXMgPSByZXF1aXJlKCcuL19hZGQtdG8tdW5zY29wYWJsZXMnKTtcbnZhciBzdGVwID0gcmVxdWlyZSgnLi9faXRlci1zdGVwJyk7XG52YXIgSXRlcmF0b3JzID0gcmVxdWlyZSgnLi9faXRlcmF0b3JzJyk7XG52YXIgdG9JT2JqZWN0ID0gcmVxdWlyZSgnLi9fdG8taW9iamVjdCcpO1xuXG4vLyAyMi4xLjMuNCBBcnJheS5wcm90b3R5cGUuZW50cmllcygpXG4vLyAyMi4xLjMuMTMgQXJyYXkucHJvdG90eXBlLmtleXMoKVxuLy8gMjIuMS4zLjI5IEFycmF5LnByb3RvdHlwZS52YWx1ZXMoKVxuLy8gMjIuMS4zLjMwIEFycmF5LnByb3RvdHlwZVtAQGl0ZXJhdG9yXSgpXG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vX2l0ZXItZGVmaW5lJykoQXJyYXksICdBcnJheScsIGZ1bmN0aW9uIChpdGVyYXRlZCwga2luZCkge1xuICB0aGlzLl90ID0gdG9JT2JqZWN0KGl0ZXJhdGVkKTsgLy8gdGFyZ2V0XG4gIHRoaXMuX2kgPSAwOyAgICAgICAgICAgICAgICAgICAvLyBuZXh0IGluZGV4XG4gIHRoaXMuX2sgPSBraW5kOyAgICAgICAgICAgICAgICAvLyBraW5kXG4vLyAyMi4xLjUuMi4xICVBcnJheUl0ZXJhdG9yUHJvdG90eXBlJS5uZXh0KClcbn0sIGZ1bmN0aW9uICgpIHtcbiAgdmFyIE8gPSB0aGlzLl90O1xuICB2YXIga2luZCA9IHRoaXMuX2s7XG4gIHZhciBpbmRleCA9IHRoaXMuX2krKztcbiAgaWYgKCFPIHx8IGluZGV4ID49IE8ubGVuZ3RoKSB7XG4gICAgdGhpcy5fdCA9IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gc3RlcCgxKTtcbiAgfVxuICBpZiAoa2luZCA9PSAna2V5cycpIHJldHVybiBzdGVwKDAsIGluZGV4KTtcbiAgaWYgKGtpbmQgPT0gJ3ZhbHVlcycpIHJldHVybiBzdGVwKDAsIE9baW5kZXhdKTtcbiAgcmV0dXJuIHN0ZXAoMCwgW2luZGV4LCBPW2luZGV4XV0pO1xufSwgJ3ZhbHVlcycpO1xuXG4vLyBhcmd1bWVudHNMaXN0W0BAaXRlcmF0b3JdIGlzICVBcnJheVByb3RvX3ZhbHVlcyUgKDkuNC40LjYsIDkuNC40LjcpXG5JdGVyYXRvcnMuQXJndW1lbnRzID0gSXRlcmF0b3JzLkFycmF5O1xuXG5hZGRUb1Vuc2NvcGFibGVzKCdrZXlzJyk7XG5hZGRUb1Vuc2NvcGFibGVzKCd2YWx1ZXMnKTtcbmFkZFRvVW5zY29wYWJsZXMoJ2VudHJpZXMnKTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL2VzNi5hcnJheS5pdGVyYXRvci5qc1xuLy8gbW9kdWxlIGlkID0gNjdcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///67\n");
|
483 |
-
|
484 |
-
/***/ }),
|
485 |
-
/* 68 */
|
486 |
-
/***/ (function(module, exports) {
|
487 |
-
|
488 |
-
eval("module.exports = function () { /* empty */ };\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjguanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2FkZC10by11bnNjb3BhYmxlcy5qcz9lMjY3Il0sInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKCkgeyAvKiBlbXB0eSAqLyB9O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2FkZC10by11bnNjb3BhYmxlcy5qc1xuLy8gbW9kdWxlIGlkID0gNjhcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///68\n");
|
489 |
-
|
490 |
-
/***/ }),
|
491 |
-
/* 69 */
|
492 |
-
/***/ (function(module, exports) {
|
493 |
-
|
494 |
-
eval("module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjkuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2l0ZXItc3RlcC5qcz8xMDY2Il0sInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGRvbmUsIHZhbHVlKSB7XG4gIHJldHVybiB7IHZhbHVlOiB2YWx1ZSwgZG9uZTogISFkb25lIH07XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2l0ZXItc3RlcC5qc1xuLy8gbW9kdWxlIGlkID0gNjlcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///69\n");
|
495 |
-
|
496 |
-
/***/ }),
|
497 |
-
/* 70 */
|
498 |
-
/***/ (function(module, exports, __webpack_require__) {
|
499 |
-
|
500 |
-
eval("module.exports = { \"default\": __webpack_require__(71), __esModule: true };//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzAuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9jb3JlLWpzL3N5bWJvbC5qcz9lNTA1Il0sInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0geyBcImRlZmF1bHRcIjogcmVxdWlyZShcImNvcmUtanMvbGlicmFyeS9mbi9zeW1ib2xcIiksIF9fZXNNb2R1bGU6IHRydWUgfTtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL2NvcmUtanMvc3ltYm9sLmpzXG4vLyBtb2R1bGUgaWQgPSA3MFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///70\n");
|
501 |
-
|
502 |
-
/***/ }),
|
503 |
-
/* 71 */
|
504 |
-
/***/ (function(module, exports, __webpack_require__) {
|
505 |
-
|
506 |
-
eval("__webpack_require__(72);\n__webpack_require__(77);\n__webpack_require__(78);\n__webpack_require__(79);\nmodule.exports = __webpack_require__(0).Symbol;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzEuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL3N5bWJvbC9pbmRleC5qcz8wNzA3Il0sInNvdXJjZXNDb250ZW50IjpbInJlcXVpcmUoJy4uLy4uL21vZHVsZXMvZXM2LnN5bWJvbCcpO1xucmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lczYub2JqZWN0LnRvLXN0cmluZycpO1xucmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lczcuc3ltYm9sLmFzeW5jLWl0ZXJhdG9yJyk7XG5yZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzNy5zeW1ib2wub2JzZXJ2YWJsZScpO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuLi8uLi9tb2R1bGVzL19jb3JlJykuU3ltYm9sO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL3N5bWJvbC9pbmRleC5qc1xuLy8gbW9kdWxlIGlkID0gNzFcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///71\n");
|
507 |
-
|
508 |
-
/***/ }),
|
509 |
-
/* 72 */
|
510 |
-
/***/ (function(module, exports, __webpack_require__) {
|
511 |
-
|
512 |
-
"use strict";
|
513 |
-
eval("\n// ECMAScript 6 symbols shim\nvar global = __webpack_require__(1);\nvar has = __webpack_require__(2);\nvar DESCRIPTORS = __webpack_require__(4);\nvar $export = __webpack_require__(5);\nvar redefine = __webpack_require__(35);\nvar META = __webpack_require__(73).KEY;\nvar $fails = __webpack_require__(11);\nvar shared = __webpack_require__(17);\nvar setToStringTag = __webpack_require__(24);\nvar uid = __webpack_require__(13);\nvar wks = __webpack_require__(9);\nvar wksExt = __webpack_require__(25);\nvar wksDefine = __webpack_require__(26);\nvar enumKeys = __webpack_require__(74);\nvar isArray = __webpack_require__(75);\nvar anObject = __webpack_require__(10);\nvar isObject = __webpack_require__(7);\nvar toIObject = __webpack_require__(8);\nvar toPrimitive = __webpack_require__(18);\nvar createDesc = __webpack_require__(14);\nvar _create = __webpack_require__(21);\nvar gOPNExt = __webpack_require__(76);\nvar $GOPD = __webpack_require__(40);\nvar $DP = __webpack_require__(3);\nvar $keys = __webpack_require__(22);\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function';\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n __webpack_require__(39).f = gOPNExt.f = $getOwnPropertyNames;\n __webpack_require__(27).f = $propertyIsEnumerable;\n __webpack_require__(38).f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !__webpack_require__(12)) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(6)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzIuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2LnN5bWJvbC5qcz83ZDY3Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0Jztcbi8vIEVDTUFTY3JpcHQgNiBzeW1ib2xzIHNoaW1cbnZhciBnbG9iYWwgPSByZXF1aXJlKCcuL19nbG9iYWwnKTtcbnZhciBoYXMgPSByZXF1aXJlKCcuL19oYXMnKTtcbnZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4vX2Rlc2NyaXB0b3JzJyk7XG52YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xudmFyIHJlZGVmaW5lID0gcmVxdWlyZSgnLi9fcmVkZWZpbmUnKTtcbnZhciBNRVRBID0gcmVxdWlyZSgnLi9fbWV0YScpLktFWTtcbnZhciAkZmFpbHMgPSByZXF1aXJlKCcuL19mYWlscycpO1xudmFyIHNoYXJlZCA9IHJlcXVpcmUoJy4vX3NoYXJlZCcpO1xudmFyIHNldFRvU3RyaW5nVGFnID0gcmVxdWlyZSgnLi9fc2V0LXRvLXN0cmluZy10YWcnKTtcbnZhciB1aWQgPSByZXF1aXJlKCcuL191aWQnKTtcbnZhciB3a3MgPSByZXF1aXJlKCcuL193a3MnKTtcbnZhciB3a3NFeHQgPSByZXF1aXJlKCcuL193a3MtZXh0Jyk7XG52YXIgd2tzRGVmaW5lID0gcmVxdWlyZSgnLi9fd2tzLWRlZmluZScpO1xudmFyIGVudW1LZXlzID0gcmVxdWlyZSgnLi9fZW51bS1rZXlzJyk7XG52YXIgaXNBcnJheSA9IHJlcXVpcmUoJy4vX2lzLWFycmF5Jyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuL19hbi1vYmplY3QnKTtcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4vX2lzLW9iamVjdCcpO1xudmFyIHRvSU9iamVjdCA9IHJlcXVpcmUoJy4vX3RvLWlvYmplY3QnKTtcbnZhciB0b1ByaW1pdGl2ZSA9IHJlcXVpcmUoJy4vX3RvLXByaW1pdGl2ZScpO1xudmFyIGNyZWF0ZURlc2MgPSByZXF1aXJlKCcuL19wcm9wZXJ0eS1kZXNjJyk7XG52YXIgX2NyZWF0ZSA9IHJlcXVpcmUoJy4vX29iamVjdC1jcmVhdGUnKTtcbnZhciBnT1BORXh0ID0gcmVxdWlyZSgnLi9fb2JqZWN0LWdvcG4tZXh0Jyk7XG52YXIgJEdPUEQgPSByZXF1aXJlKCcuL19vYmplY3QtZ29wZCcpO1xudmFyICREUCA9IHJlcXVpcmUoJy4vX29iamVjdC1kcCcpO1xudmFyICRrZXlzID0gcmVxdWlyZSgnLi9fb2JqZWN0LWtleXMnKTtcbnZhciBnT1BEID0gJEdPUEQuZjtcbnZhciBkUCA9ICREUC5mO1xudmFyIGdPUE4gPSBnT1BORXh0LmY7XG52YXIgJFN5bWJvbCA9IGdsb2JhbC5TeW1ib2w7XG52YXIgJEpTT04gPSBnbG9iYWwuSlNPTjtcbnZhciBfc3RyaW5naWZ5ID0gJEpTT04gJiYgJEpTT04uc3RyaW5naWZ5O1xudmFyIFBST1RPVFlQRSA9ICdwcm90b3R5cGUnO1xudmFyIEhJRERFTiA9IHdrcygnX2hpZGRlbicpO1xudmFyIFRPX1BSSU1JVElWRSA9IHdrcygndG9QcmltaXRpdmUnKTtcbnZhciBpc0VudW0gPSB7fS5wcm9wZXJ0eUlzRW51bWVyYWJsZTtcbnZhciBTeW1ib2xSZWdpc3RyeSA9IHNoYXJlZCgnc3ltYm9sLXJlZ2lzdHJ5Jyk7XG52YXIgQWxsU3ltYm9scyA9IHNoYXJlZCgnc3ltYm9scycpO1xudmFyIE9QU3ltYm9scyA9IHNoYXJlZCgnb3Atc3ltYm9scycpO1xudmFyIE9iamVjdFByb3RvID0gT2JqZWN0W1BST1RPVFlQRV07XG52YXIgVVNFX05BVElWRSA9IHR5cGVvZiAkU3ltYm9sID09ICdmdW5jdGlvbic7XG52YXIgUU9iamVjdCA9IGdsb2JhbC5RT2JqZWN0O1xuLy8gRG9uJ3QgdXNlIHNldHRlcnMgaW4gUXQgU2NyaXB0LCBodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9pc3N1ZXMvMTczXG52YXIgc2V0dGVyID0gIVFPYmplY3QgfHwgIVFPYmplY3RbUFJPVE9UWVBFXSB8fCAhUU9iamVjdFtQUk9UT1RZUEVdLmZpbmRDaGlsZDtcblxuLy8gZmFsbGJhY2sgZm9yIG9sZCBBbmRyb2lkLCBodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9Njg3XG52YXIgc2V0U3ltYm9sRGVzYyA9IERFU0NSSVBUT1JTICYmICRmYWlscyhmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBfY3JlYXRlKGRQKHt9LCAnYScsIHtcbiAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGRQKHRoaXMsICdhJywgeyB2YWx1ZTogNyB9KS5hOyB9XG4gIH0pKS5hICE9IDc7XG59KSA/IGZ1bmN0aW9uIChpdCwga2V5LCBEKSB7XG4gIHZhciBwcm90b0Rlc2MgPSBnT1BEKE9iamVjdFByb3RvLCBrZXkpO1xuICBpZiAocHJvdG9EZXNjKSBkZWxldGUgT2JqZWN0UHJvdG9ba2V5XTtcbiAgZFAoaXQsIGtleSwgRCk7XG4gIGlmIChwcm90b0Rlc2MgJiYgaXQgIT09IE9iamVjdFByb3RvKSBkUChPYmplY3RQcm90bywga2V5LCBwcm90b0Rlc2MpO1xufSA6IGRQO1xuXG52YXIgd3JhcCA9IGZ1bmN0aW9uICh0YWcpIHtcbiAgdmFyIHN5bSA9IEFsbFN5bWJvbHNbdGFnXSA9IF9jcmVhdGUoJFN5bWJvbFtQUk9UT1RZUEVdKTtcbiAgc3ltLl9rID0gdGFnO1xuICByZXR1cm4gc3ltO1xufTtcblxudmFyIGlzU3ltYm9sID0gVVNFX05BVElWRSAmJiB0eXBlb2YgJFN5bWJvbC5pdGVyYXRvciA9PSAnc3ltYm9sJyA/IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gdHlwZW9mIGl0ID09ICdzeW1ib2wnO1xufSA6IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gaXQgaW5zdGFuY2VvZiAkU3ltYm9sO1xufTtcblxudmFyICRkZWZpbmVQcm9wZXJ0eSA9IGZ1bmN0aW9uIGRlZmluZVByb3BlcnR5KGl0LCBrZXksIEQpIHtcbiAgaWYgKGl0ID09PSBPYmplY3RQcm90bykgJGRlZmluZVByb3BlcnR5KE9QU3ltYm9scywga2V5LCBEKTtcbiAgYW5PYmplY3QoaXQpO1xuICBrZXkgPSB0b1ByaW1pdGl2ZShrZXksIHRydWUpO1xuICBhbk9iamVjdChEKTtcbiAgaWYgKGhhcyhBbGxTeW1ib2xzLCBrZXkpKSB7XG4gICAgaWYgKCFELmVudW1lcmFibGUpIHtcbiAgICAgIGlmICghaGFzKGl0LCBISURERU4pKSBkUChpdCwgSElEREVOLCBjcmVhdGVEZXNjKDEsIHt9KSk7XG4gICAgICBpdFtISURERU5dW2tleV0gPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoaGFzKGl0LCBISURERU4pICYmIGl0W0hJRERFTl1ba2V5XSkgaXRbSElEREVOXVtrZXldID0gZmFsc2U7XG4gICAgICBEID0gX2NyZWF0ZShELCB7IGVudW1lcmFibGU6IGNyZWF0ZURlc2MoMCwgZmFsc2UpIH0pO1xuICAgIH0gcmV0dXJuIHNldFN5bWJvbERlc2MoaXQsIGtleSwgRCk7XG4gIH0gcmV0dXJuIGRQKGl0LCBrZXksIEQpO1xufTtcbnZhciAkZGVmaW5lUHJvcGVydGllcyA9IGZ1bmN0aW9uIGRlZmluZVByb3BlcnRpZXMoaXQsIFApIHtcbiAgYW5PYmplY3QoaXQpO1xuICB2YXIga2V5cyA9IGVudW1LZXlzKFAgPSB0b0lPYmplY3QoUCkpO1xuICB2YXIgaSA9IDA7XG4gIHZhciBsID0ga2V5cy5sZW5ndGg7XG4gIHZhciBrZXk7XG4gIHdoaWxlIChsID4gaSkgJGRlZmluZVByb3BlcnR5KGl0LCBrZXkgPSBrZXlzW2krK10sIFBba2V5XSk7XG4gIHJldHVybiBpdDtcbn07XG52YXIgJGNyZWF0ZSA9IGZ1bmN0aW9uIGNyZWF0ZShpdCwgUCkge1xuICByZXR1cm4gUCA9PT0gdW5kZWZpbmVkID8gX2NyZWF0ZShpdCkgOiAkZGVmaW5lUHJvcGVydGllcyhfY3JlYXRlKGl0KSwgUCk7XG59O1xudmFyICRwcm9wZXJ0eUlzRW51bWVyYWJsZSA9IGZ1bmN0aW9uIHByb3BlcnR5SXNFbnVtZXJhYmxlKGtleSkge1xuICB2YXIgRSA9IGlzRW51bS5jYWxsKHRoaXMsIGtleSA9IHRvUHJpbWl0aXZlKGtleSwgdHJ1ZSkpO1xuICBpZiAodGhpcyA9PT0gT2JqZWN0UHJvdG8gJiYgaGFzKEFsbFN5bWJvbHMsIGtleSkgJiYgIWhhcyhPUFN5bWJvbHMsIGtleSkpIHJldHVybiBmYWxzZTtcbiAgcmV0dXJuIEUgfHwgIWhhcyh0aGlzLCBrZXkpIHx8ICFoYXMoQWxsU3ltYm9scywga2V5KSB8fCBoYXModGhpcywgSElEREVOKSAmJiB0aGlzW0hJRERFTl1ba2V5XSA/IEUgOiB0cnVlO1xufTtcbnZhciAkZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yID0gZnVuY3Rpb24gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGl0LCBrZXkpIHtcbiAgaXQgPSB0b0lPYmplY3QoaXQpO1xuICBrZXkgPSB0b1ByaW1pdGl2ZShrZXksIHRydWUpO1xuICBpZiAoaXQgPT09IE9iamVjdFByb3RvICYmIGhhcyhBbGxTeW1ib2xzLCBrZXkpICYmICFoYXMoT1BTeW1ib2xzLCBrZXkpKSByZXR1cm47XG4gIHZhciBEID0gZ09QRChpdCwga2V5KTtcbiAgaWYgKEQgJiYgaGFzKEFsbFN5bWJvbHMsIGtleSkgJiYgIShoYXMoaXQsIEhJRERFTikgJiYgaXRbSElEREVOXVtrZXldKSkgRC5lbnVtZXJhYmxlID0gdHJ1ZTtcbiAgcmV0dXJuIEQ7XG59O1xudmFyICRnZXRPd25Qcm9wZXJ0eU5hbWVzID0gZnVuY3Rpb24gZ2V0T3duUHJvcGVydHlOYW1lcyhpdCkge1xuICB2YXIgbmFtZXMgPSBnT1BOKHRvSU9iamVjdChpdCkpO1xuICB2YXIgcmVzdWx0ID0gW107XG4gIHZhciBpID0gMDtcbiAgdmFyIGtleTtcbiAgd2hpbGUgKG5hbWVzLmxlbmd0aCA+IGkpIHtcbiAgICBpZiAoIWhhcyhBbGxTeW1ib2xzLCBrZXkgPSBuYW1lc1tpKytdKSAmJiBrZXkgIT0gSElEREVOICYmIGtleSAhPSBNRVRBKSByZXN1bHQucHVzaChrZXkpO1xuICB9IHJldHVybiByZXN1bHQ7XG59O1xudmFyICRnZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPSBmdW5jdGlvbiBnZXRPd25Qcm9wZXJ0eVN5bWJvbHMoaXQpIHtcbiAgdmFyIElTX09QID0gaXQgPT09IE9iamVjdFByb3RvO1xuICB2YXIgbmFtZXMgPSBnT1BOKElTX09QID8gT1BTeW1ib2xzIDogdG9JT2JqZWN0KGl0KSk7XG4gIHZhciByZXN1bHQgPSBbXTtcbiAgdmFyIGkgPSAwO1xuICB2YXIga2V5O1xuICB3aGlsZSAobmFtZXMubGVuZ3RoID4gaSkge1xuICAgIGlmIChoYXMoQWxsU3ltYm9scywga2V5ID0gbmFtZXNbaSsrXSkgJiYgKElTX09QID8gaGFzKE9iamVjdFByb3RvLCBrZXkpIDogdHJ1ZSkpIHJlc3VsdC5wdXNoKEFsbFN5bWJvbHNba2V5XSk7XG4gIH0gcmV0dXJuIHJlc3VsdDtcbn07XG5cbi8vIDE5LjQuMS4xIFN5bWJvbChbZGVzY3JpcHRpb25dKVxuaWYgKCFVU0VfTkFUSVZFKSB7XG4gICRTeW1ib2wgPSBmdW5jdGlvbiBTeW1ib2woKSB7XG4gICAgaWYgKHRoaXMgaW5zdGFuY2VvZiAkU3ltYm9sKSB0aHJvdyBUeXBlRXJyb3IoJ1N5bWJvbCBpcyBub3QgYSBjb25zdHJ1Y3RvciEnKTtcbiAgICB2YXIgdGFnID0gdWlkKGFyZ3VtZW50cy5sZW5ndGggPiAwID8gYXJndW1lbnRzWzBdIDogdW5kZWZpbmVkKTtcbiAgICB2YXIgJHNldCA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgaWYgKHRoaXMgPT09IE9iamVjdFByb3RvKSAkc2V0LmNhbGwoT1BTeW1ib2xzLCB2YWx1ZSk7XG4gICAgICBpZiAoaGFzKHRoaXMsIEhJRERFTikgJiYgaGFzKHRoaXNbSElEREVOXSwgdGFnKSkgdGhpc1tISURERU5dW3RhZ10gPSBmYWxzZTtcbiAgICAgIHNldFN5bWJvbERlc2ModGhpcywgdGFnLCBjcmVhdGVEZXNjKDEsIHZhbHVlKSk7XG4gICAgfTtcbiAgICBpZiAoREVTQ1JJUFRPUlMgJiYgc2V0dGVyKSBzZXRTeW1ib2xEZXNjKE9iamVjdFByb3RvLCB0YWcsIHsgY29uZmlndXJhYmxlOiB0cnVlLCBzZXQ6ICRzZXQgfSk7XG4gICAgcmV0dXJuIHdyYXAodGFnKTtcbiAgfTtcbiAgcmVkZWZpbmUoJFN5bWJvbFtQUk9UT1RZUEVdLCAndG9TdHJpbmcnLCBmdW5jdGlvbiB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5faztcbiAgfSk7XG5cbiAgJEdPUEQuZiA9ICRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG4gICREUC5mID0gJGRlZmluZVByb3BlcnR5O1xuICByZXF1aXJlKCcuL19vYmplY3QtZ29wbicpLmYgPSBnT1BORXh0LmYgPSAkZ2V0T3duUHJvcGVydHlOYW1lcztcbiAgcmVxdWlyZSgnLi9fb2JqZWN0LXBpZScpLmYgPSAkcHJvcGVydHlJc0VudW1lcmFibGU7XG4gIHJlcXVpcmUoJy4vX29iamVjdC1nb3BzJykuZiA9ICRnZXRPd25Qcm9wZXJ0eVN5bWJvbHM7XG5cbiAgaWYgKERFU0NSSVBUT1JTICYmICFyZXF1aXJlKCcuL19saWJyYXJ5JykpIHtcbiAgICByZWRlZmluZShPYmplY3RQcm90bywgJ3Byb3BlcnR5SXNFbnVtZXJhYmxlJywgJHByb3BlcnR5SXNFbnVtZXJhYmxlLCB0cnVlKTtcbiAgfVxuXG4gIHdrc0V4dC5mID0gZnVuY3Rpb24gKG5hbWUpIHtcbiAgICByZXR1cm4gd3JhcCh3a3MobmFtZSkpO1xuICB9O1xufVxuXG4kZXhwb3J0KCRleHBvcnQuRyArICRleHBvcnQuVyArICRleHBvcnQuRiAqICFVU0VfTkFUSVZFLCB7IFN5bWJvbDogJFN5bWJvbCB9KTtcblxuZm9yICh2YXIgZXM2U3ltYm9scyA9IChcbiAgLy8gMTkuNC4yLjIsIDE5LjQuMi4zLCAxOS40LjIuNCwgMTkuNC4yLjYsIDE5LjQuMi44LCAxOS40LjIuOSwgMTkuNC4yLjEwLCAxOS40LjIuMTEsIDE5LjQuMi4xMiwgMTkuNC4yLjEzLCAxOS40LjIuMTRcbiAgJ2hhc0luc3RhbmNlLGlzQ29uY2F0U3ByZWFkYWJsZSxpdGVyYXRvcixtYXRjaCxyZXBsYWNlLHNlYXJjaCxzcGVjaWVzLHNwbGl0LHRvUHJpbWl0aXZlLHRvU3RyaW5nVGFnLHVuc2NvcGFibGVzJ1xuKS5zcGxpdCgnLCcpLCBqID0gMDsgZXM2U3ltYm9scy5sZW5ndGggPiBqOyl3a3MoZXM2U3ltYm9sc1tqKytdKTtcblxuZm9yICh2YXIgd2VsbEtub3duU3ltYm9scyA9ICRrZXlzKHdrcy5zdG9yZSksIGsgPSAwOyB3ZWxsS25vd25TeW1ib2xzLmxlbmd0aCA+IGs7KSB3a3NEZWZpbmUod2VsbEtub3duU3ltYm9sc1trKytdKTtcblxuJGV4cG9ydCgkZXhwb3J0LlMgKyAkZXhwb3J0LkYgKiAhVVNFX05BVElWRSwgJ1N5bWJvbCcsIHtcbiAgLy8gMTkuNC4yLjEgU3ltYm9sLmZvcihrZXkpXG4gICdmb3InOiBmdW5jdGlvbiAoa2V5KSB7XG4gICAgcmV0dXJuIGhhcyhTeW1ib2xSZWdpc3RyeSwga2V5ICs9ICcnKVxuICAgICAgPyBTeW1ib2xSZWdpc3RyeVtrZXldXG4gICAgICA6IFN5bWJvbFJlZ2lzdHJ5W2tleV0gPSAkU3ltYm9sKGtleSk7XG4gIH0sXG4gIC8vIDE5LjQuMi41IFN5bWJvbC5rZXlGb3Ioc3ltKVxuICBrZXlGb3I6IGZ1bmN0aW9uIGtleUZvcihzeW0pIHtcbiAgICBpZiAoIWlzU3ltYm9sKHN5bSkpIHRocm93IFR5cGVFcnJvcihzeW0gKyAnIGlzIG5vdCBhIHN5bWJvbCEnKTtcbiAgICBmb3IgKHZhciBrZXkgaW4gU3ltYm9sUmVnaXN0cnkpIGlmIChTeW1ib2xSZWdpc3RyeVtrZXldID09PSBzeW0pIHJldHVybiBrZXk7XG4gIH0sXG4gIHVzZVNldHRlcjogZnVuY3Rpb24gKCkgeyBzZXR0ZXIgPSB0cnVlOyB9LFxuICB1c2VTaW1wbGU6IGZ1bmN0aW9uICgpIHsgc2V0dGVyID0gZmFsc2U7IH1cbn0pO1xuXG4kZXhwb3J0KCRleHBvcnQuUyArICRleHBvcnQuRiAqICFVU0VfTkFUSVZFLCAnT2JqZWN0Jywge1xuICAvLyAxOS4xLjIuMiBPYmplY3QuY3JlYXRlKE8gWywgUHJvcGVydGllc10pXG4gIGNyZWF0ZTogJGNyZWF0ZSxcbiAgLy8gMTkuMS4yLjQgT2JqZWN0LmRlZmluZVByb3BlcnR5KE8sIFAsIEF0dHJpYnV0ZXMpXG4gIGRlZmluZVByb3BlcnR5OiAkZGVmaW5lUHJvcGVydHksXG4gIC8vIDE5LjEuMi4zIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKE8sIFByb3BlcnRpZXMpXG4gIGRlZmluZVByb3BlcnRpZXM6ICRkZWZpbmVQcm9wZXJ0aWVzLFxuICAvLyAxOS4xLjIuNiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE8sIFApXG4gIGdldE93blByb3BlcnR5RGVzY3JpcHRvcjogJGdldE93blByb3BlcnR5RGVzY3JpcHRvcixcbiAgLy8gMTkuMS4yLjcgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoTylcbiAgZ2V0T3duUHJvcGVydHlOYW1lczogJGdldE93blByb3BlcnR5TmFtZXMsXG4gIC8vIDE5LjEuMi44IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoTylcbiAgZ2V0T3duUHJvcGVydHlTeW1ib2xzOiAkZ2V0T3duUHJvcGVydHlTeW1ib2xzXG59KTtcblxuLy8gMjQuMy4yIEpTT04uc3RyaW5naWZ5KHZhbHVlIFssIHJlcGxhY2VyIFssIHNwYWNlXV0pXG4kSlNPTiAmJiAkZXhwb3J0KCRleHBvcnQuUyArICRleHBvcnQuRiAqICghVVNFX05BVElWRSB8fCAkZmFpbHMoZnVuY3Rpb24gKCkge1xuICB2YXIgUyA9ICRTeW1ib2woKTtcbiAgLy8gTVMgRWRnZSBjb252ZXJ0cyBzeW1ib2wgdmFsdWVzIHRvIEpTT04gYXMge31cbiAgLy8gV2ViS2l0IGNvbnZlcnRzIHN5bWJvbCB2YWx1ZXMgdG8gSlNPTiBhcyBudWxsXG4gIC8vIFY4IHRocm93cyBvbiBib3hlZCBzeW1ib2xzXG4gIHJldHVybiBfc3RyaW5naWZ5KFtTXSkgIT0gJ1tudWxsXScgfHwgX3N0cmluZ2lmeSh7IGE6IFMgfSkgIT0gJ3t9JyB8fCBfc3RyaW5naWZ5KE9iamVjdChTKSkgIT0gJ3t9Jztcbn0pKSwgJ0pTT04nLCB7XG4gIHN0cmluZ2lmeTogZnVuY3Rpb24gc3RyaW5naWZ5KGl0KSB7XG4gICAgdmFyIGFyZ3MgPSBbaXRdO1xuICAgIHZhciBpID0gMTtcbiAgICB2YXIgcmVwbGFjZXIsICRyZXBsYWNlcjtcbiAgICB3aGlsZSAoYXJndW1lbnRzLmxlbmd0aCA+IGkpIGFyZ3MucHVzaChhcmd1bWVudHNbaSsrXSk7XG4gICAgJHJlcGxhY2VyID0gcmVwbGFjZXIgPSBhcmdzWzFdO1xuICAgIGlmICghaXNPYmplY3QocmVwbGFjZXIpICYmIGl0ID09PSB1bmRlZmluZWQgfHwgaXNTeW1ib2woaXQpKSByZXR1cm47IC8vIElFOCByZXR1cm5zIHN0cmluZyBvbiB1bmRlZmluZWRcbiAgICBpZiAoIWlzQXJyYXkocmVwbGFjZXIpKSByZXBsYWNlciA9IGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7XG4gICAgICBpZiAodHlwZW9mICRyZXBsYWNlciA9PSAnZnVuY3Rpb24nKSB2YWx1ZSA9ICRyZXBsYWNlci5jYWxsKHRoaXMsIGtleSwgdmFsdWUpO1xuICAgICAgaWYgKCFpc1N5bWJvbCh2YWx1ZSkpIHJldHVybiB2YWx1ZTtcbiAgICB9O1xuICAgIGFyZ3NbMV0gPSByZXBsYWNlcjtcbiAgICByZXR1cm4gX3N0cmluZ2lmeS5hcHBseSgkSlNPTiwgYXJncyk7XG4gIH1cbn0pO1xuXG4vLyAxOS40LjMuNCBTeW1ib2wucHJvdG90eXBlW0BAdG9QcmltaXRpdmVdKGhpbnQpXG4kU3ltYm9sW1BST1RPVFlQRV1bVE9fUFJJTUlUSVZFXSB8fCByZXF1aXJlKCcuL19oaWRlJykoJFN5bWJvbFtQUk9UT1RZUEVdLCBUT19QUklNSVRJVkUsICRTeW1ib2xbUFJPVE9UWVBFXS52YWx1ZU9mKTtcbi8vIDE5LjQuMy41IFN5bWJvbC5wcm90b3R5cGVbQEB0b1N0cmluZ1RhZ11cbnNldFRvU3RyaW5nVGFnKCRTeW1ib2wsICdTeW1ib2wnKTtcbi8vIDIwLjIuMS45IE1hdGhbQEB0b1N0cmluZ1RhZ11cbnNldFRvU3RyaW5nVGFnKE1hdGgsICdNYXRoJywgdHJ1ZSk7XG4vLyAyNC4zLjMgSlNPTltAQHRvU3RyaW5nVGFnXVxuc2V0VG9TdHJpbmdUYWcoZ2xvYmFsLkpTT04sICdKU09OJywgdHJ1ZSk7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9lczYuc3ltYm9sLmpzXG4vLyBtb2R1bGUgaWQgPSA3MlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///72\n");
|
514 |
-
|
515 |
-
/***/ }),
|
516 |
-
/* 73 */
|
517 |
-
/***/ (function(module, exports, __webpack_require__) {
|
518 |
-
|
519 |
-
eval("var META = __webpack_require__(13)('meta');\nvar isObject = __webpack_require__(7);\nvar has = __webpack_require__(2);\nvar setDesc = __webpack_require__(3).f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !__webpack_require__(11)(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX21ldGEuanM/ZDNhMyJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgTUVUQSA9IHJlcXVpcmUoJy4vX3VpZCcpKCdtZXRhJyk7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL19pcy1vYmplY3QnKTtcbnZhciBoYXMgPSByZXF1aXJlKCcuL19oYXMnKTtcbnZhciBzZXREZXNjID0gcmVxdWlyZSgnLi9fb2JqZWN0LWRwJykuZjtcbnZhciBpZCA9IDA7XG52YXIgaXNFeHRlbnNpYmxlID0gT2JqZWN0LmlzRXh0ZW5zaWJsZSB8fCBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0cnVlO1xufTtcbnZhciBGUkVFWkUgPSAhcmVxdWlyZSgnLi9fZmFpbHMnKShmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBpc0V4dGVuc2libGUoT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKHt9KSk7XG59KTtcbnZhciBzZXRNZXRhID0gZnVuY3Rpb24gKGl0KSB7XG4gIHNldERlc2MoaXQsIE1FVEEsIHsgdmFsdWU6IHtcbiAgICBpOiAnTycgKyArK2lkLCAvLyBvYmplY3QgSURcbiAgICB3OiB7fSAgICAgICAgICAvLyB3ZWFrIGNvbGxlY3Rpb25zIElEc1xuICB9IH0pO1xufTtcbnZhciBmYXN0S2V5ID0gZnVuY3Rpb24gKGl0LCBjcmVhdGUpIHtcbiAgLy8gcmV0dXJuIHByaW1pdGl2ZSB3aXRoIHByZWZpeFxuICBpZiAoIWlzT2JqZWN0KGl0KSkgcmV0dXJuIHR5cGVvZiBpdCA9PSAnc3ltYm9sJyA/IGl0IDogKHR5cGVvZiBpdCA9PSAnc3RyaW5nJyA/ICdTJyA6ICdQJykgKyBpdDtcbiAgaWYgKCFoYXMoaXQsIE1FVEEpKSB7XG4gICAgLy8gY2FuJ3Qgc2V0IG1ldGFkYXRhIHRvIHVuY2F1Z2h0IGZyb3plbiBvYmplY3RcbiAgICBpZiAoIWlzRXh0ZW5zaWJsZShpdCkpIHJldHVybiAnRic7XG4gICAgLy8gbm90IG5lY2Vzc2FyeSB0byBhZGQgbWV0YWRhdGFcbiAgICBpZiAoIWNyZWF0ZSkgcmV0dXJuICdFJztcbiAgICAvLyBhZGQgbWlzc2luZyBtZXRhZGF0YVxuICAgIHNldE1ldGEoaXQpO1xuICAvLyByZXR1cm4gb2JqZWN0IElEXG4gIH0gcmV0dXJuIGl0W01FVEFdLmk7XG59O1xudmFyIGdldFdlYWsgPSBmdW5jdGlvbiAoaXQsIGNyZWF0ZSkge1xuICBpZiAoIWhhcyhpdCwgTUVUQSkpIHtcbiAgICAvLyBjYW4ndCBzZXQgbWV0YWRhdGEgdG8gdW5jYXVnaHQgZnJvemVuIG9iamVjdFxuICAgIGlmICghaXNFeHRlbnNpYmxlKGl0KSkgcmV0dXJuIHRydWU7XG4gICAgLy8gbm90IG5lY2Vzc2FyeSB0byBhZGQgbWV0YWRhdGFcbiAgICBpZiAoIWNyZWF0ZSkgcmV0dXJuIGZhbHNlO1xuICAgIC8vIGFkZCBtaXNzaW5nIG1ldGFkYXRhXG4gICAgc2V0TWV0YShpdCk7XG4gIC8vIHJldHVybiBoYXNoIHdlYWsgY29sbGVjdGlvbnMgSURzXG4gIH0gcmV0dXJuIGl0W01FVEFdLnc7XG59O1xuLy8gYWRkIG1ldGFkYXRhIG9uIGZyZWV6ZS1mYW1pbHkgbWV0aG9kcyBjYWxsaW5nXG52YXIgb25GcmVlemUgPSBmdW5jdGlvbiAoaXQpIHtcbiAgaWYgKEZSRUVaRSAmJiBtZXRhLk5FRUQgJiYgaXNFeHRlbnNpYmxlKGl0KSAmJiAhaGFzKGl0LCBNRVRBKSkgc2V0TWV0YShpdCk7XG4gIHJldHVybiBpdDtcbn07XG52YXIgbWV0YSA9IG1vZHVsZS5leHBvcnRzID0ge1xuICBLRVk6IE1FVEEsXG4gIE5FRUQ6IGZhbHNlLFxuICBmYXN0S2V5OiBmYXN0S2V5LFxuICBnZXRXZWFrOiBnZXRXZWFrLFxuICBvbkZyZWV6ZTogb25GcmVlemVcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fbWV0YS5qc1xuLy8gbW9kdWxlIGlkID0gNzNcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///73\n");
|
520 |
-
|
521 |
-
/***/ }),
|
522 |
-
/* 74 */
|
523 |
-
/***/ (function(module, exports, __webpack_require__) {
|
524 |
-
|
525 |
-
eval("// all enumerable object keys, includes symbols\nvar getKeys = __webpack_require__(22);\nvar gOPS = __webpack_require__(38);\nvar pIE = __webpack_require__(27);\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzQuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2VudW0ta2V5cy5qcz81ZGNlIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIGFsbCBlbnVtZXJhYmxlIG9iamVjdCBrZXlzLCBpbmNsdWRlcyBzeW1ib2xzXG52YXIgZ2V0S2V5cyA9IHJlcXVpcmUoJy4vX29iamVjdC1rZXlzJyk7XG52YXIgZ09QUyA9IHJlcXVpcmUoJy4vX29iamVjdC1nb3BzJyk7XG52YXIgcElFID0gcmVxdWlyZSgnLi9fb2JqZWN0LXBpZScpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgdmFyIHJlc3VsdCA9IGdldEtleXMoaXQpO1xuICB2YXIgZ2V0U3ltYm9scyA9IGdPUFMuZjtcbiAgaWYgKGdldFN5bWJvbHMpIHtcbiAgICB2YXIgc3ltYm9scyA9IGdldFN5bWJvbHMoaXQpO1xuICAgIHZhciBpc0VudW0gPSBwSUUuZjtcbiAgICB2YXIgaSA9IDA7XG4gICAgdmFyIGtleTtcbiAgICB3aGlsZSAoc3ltYm9scy5sZW5ndGggPiBpKSBpZiAoaXNFbnVtLmNhbGwoaXQsIGtleSA9IHN5bWJvbHNbaSsrXSkpIHJlc3VsdC5wdXNoKGtleSk7XG4gIH0gcmV0dXJuIHJlc3VsdDtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fZW51bS1rZXlzLmpzXG4vLyBtb2R1bGUgaWQgPSA3NFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///74\n");
|
526 |
-
|
527 |
-
/***/ }),
|
528 |
-
/* 75 */
|
529 |
-
/***/ (function(module, exports, __webpack_require__) {
|
530 |
-
|
531 |
-
eval("// 7.2.2 IsArray(argument)\nvar cof = __webpack_require__(37);\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzUuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2lzLWFycmF5LmpzP2VkNDMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gNy4yLjIgSXNBcnJheShhcmd1bWVudClcbnZhciBjb2YgPSByZXF1aXJlKCcuL19jb2YnKTtcbm1vZHVsZS5leHBvcnRzID0gQXJyYXkuaXNBcnJheSB8fCBmdW5jdGlvbiBpc0FycmF5KGFyZykge1xuICByZXR1cm4gY29mKGFyZykgPT0gJ0FycmF5Jztcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9faXMtYXJyYXkuanNcbi8vIG1vZHVsZSBpZCA9IDc1XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///75\n");
|
532 |
-
|
533 |
-
/***/ }),
|
534 |
-
/* 76 */
|
535 |
-
/***/ (function(module, exports, __webpack_require__) {
|
536 |
-
|
537 |
-
eval("// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = __webpack_require__(8);\nvar gOPN = __webpack_require__(39).f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzYuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1nb3BuLWV4dC5qcz80NmI3Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIGZhbGxiYWNrIGZvciBJRTExIGJ1Z2d5IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzIHdpdGggaWZyYW1lIGFuZCB3aW5kb3dcbnZhciB0b0lPYmplY3QgPSByZXF1aXJlKCcuL190by1pb2JqZWN0Jyk7XG52YXIgZ09QTiA9IHJlcXVpcmUoJy4vX29iamVjdC1nb3BuJykuZjtcbnZhciB0b1N0cmluZyA9IHt9LnRvU3RyaW5nO1xuXG52YXIgd2luZG93TmFtZXMgPSB0eXBlb2Ygd2luZG93ID09ICdvYmplY3QnICYmIHdpbmRvdyAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lc1xuICA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHdpbmRvdykgOiBbXTtcblxudmFyIGdldFdpbmRvd05hbWVzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGdPUE4oaXQpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIHdpbmRvd05hbWVzLnNsaWNlKCk7XG4gIH1cbn07XG5cbm1vZHVsZS5leHBvcnRzLmYgPSBmdW5jdGlvbiBnZXRPd25Qcm9wZXJ0eU5hbWVzKGl0KSB7XG4gIHJldHVybiB3aW5kb3dOYW1lcyAmJiB0b1N0cmluZy5jYWxsKGl0KSA9PSAnW29iamVjdCBXaW5kb3ddJyA/IGdldFdpbmRvd05hbWVzKGl0KSA6IGdPUE4odG9JT2JqZWN0KGl0KSk7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1nb3BuLWV4dC5qc1xuLy8gbW9kdWxlIGlkID0gNzZcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///76\n");
|
538 |
-
|
539 |
-
/***/ }),
|
540 |
-
/* 77 */
|
541 |
-
/***/ (function(module, exports) {
|
542 |
-
|
543 |
-
eval("//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzcuanMiLCJzb3VyY2VzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///77\n");
|
544 |
-
|
545 |
-
/***/ }),
|
546 |
-
/* 78 */
|
547 |
-
/***/ (function(module, exports, __webpack_require__) {
|
548 |
-
|
549 |
-
eval("__webpack_require__(26)('asyncIterator');\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzguanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM3LnN5bWJvbC5hc3luYy1pdGVyYXRvci5qcz8zOTg5Il0sInNvdXJjZXNDb250ZW50IjpbInJlcXVpcmUoJy4vX3drcy1kZWZpbmUnKSgnYXN5bmNJdGVyYXRvcicpO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM3LnN5bWJvbC5hc3luYy1pdGVyYXRvci5qc1xuLy8gbW9kdWxlIGlkID0gNzhcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///78\n");
|
550 |
-
|
551 |
-
/***/ }),
|
552 |
-
/* 79 */
|
553 |
-
/***/ (function(module, exports, __webpack_require__) {
|
554 |
-
|
555 |
-
eval("__webpack_require__(26)('observable');\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzkuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM3LnN5bWJvbC5vYnNlcnZhYmxlLmpzPzQxNjciXSwic291cmNlc0NvbnRlbnQiOlsicmVxdWlyZSgnLi9fd2tzLWRlZmluZScpKCdvYnNlcnZhYmxlJyk7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9lczcuc3ltYm9sLm9ic2VydmFibGUuanNcbi8vIG1vZHVsZSBpZCA9IDc5XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///79\n");
|
556 |
-
|
557 |
-
/***/ }),
|
558 |
-
/* 80 */
|
559 |
-
/***/ (function(module, exports, __webpack_require__) {
|
560 |
-
|
561 |
-
"use strict";
|
562 |
-
eval("\n\nexports.__esModule = true;\n\nvar _setPrototypeOf = __webpack_require__(81);\n\nvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\nvar _create = __webpack_require__(85);\n\nvar _create2 = _interopRequireDefault(_create);\n\nvar _typeof2 = __webpack_require__(33);\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(superClass)));\n }\n\n subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODAuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9oZWxwZXJzL2luaGVyaXRzLmpzPzNkZmQiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfc2V0UHJvdG90eXBlT2YgPSByZXF1aXJlKFwiLi4vY29yZS1qcy9vYmplY3Qvc2V0LXByb3RvdHlwZS1vZlwiKTtcblxudmFyIF9zZXRQcm90b3R5cGVPZjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9zZXRQcm90b3R5cGVPZik7XG5cbnZhciBfY3JlYXRlID0gcmVxdWlyZShcIi4uL2NvcmUtanMvb2JqZWN0L2NyZWF0ZVwiKTtcblxudmFyIF9jcmVhdGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfY3JlYXRlKTtcblxudmFyIF90eXBlb2YyID0gcmVxdWlyZShcIi4uL2hlbHBlcnMvdHlwZW9mXCIpO1xuXG52YXIgX3R5cGVvZjMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF90eXBlb2YyKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH1cblxuZXhwb3J0cy5kZWZhdWx0ID0gZnVuY3Rpb24gKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7XG4gIGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCBcIiArICh0eXBlb2Ygc3VwZXJDbGFzcyA9PT0gXCJ1bmRlZmluZWRcIiA/IFwidW5kZWZpbmVkXCIgOiAoMCwgX3R5cGVvZjMuZGVmYXVsdCkoc3VwZXJDbGFzcykpKTtcbiAgfVxuXG4gIHN1YkNsYXNzLnByb3RvdHlwZSA9ICgwLCBfY3JlYXRlMi5kZWZhdWx0KShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7XG4gICAgY29uc3RydWN0b3I6IHtcbiAgICAgIHZhbHVlOiBzdWJDbGFzcyxcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9XG4gIH0pO1xuICBpZiAoc3VwZXJDbGFzcykgX3NldFByb3RvdHlwZU9mMi5kZWZhdWx0ID8gKDAsIF9zZXRQcm90b3R5cGVPZjIuZGVmYXVsdCkoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIDogc3ViQ2xhc3MuX19wcm90b19fID0gc3VwZXJDbGFzcztcbn07XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9oZWxwZXJzL2luaGVyaXRzLmpzXG4vLyBtb2R1bGUgaWQgPSA4MFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///80\n");
|
563 |
-
|
564 |
-
/***/ }),
|
565 |
-
/* 81 */
|
566 |
-
/***/ (function(module, exports, __webpack_require__) {
|
567 |
-
|
568 |
-
eval("module.exports = { \"default\": __webpack_require__(82), __esModule: true };//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODEuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9jb3JlLWpzL29iamVjdC9zZXQtcHJvdG90eXBlLW9mLmpzPzkyMjAiXSwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSB7IFwiZGVmYXVsdFwiOiByZXF1aXJlKFwiY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9zZXQtcHJvdG90eXBlLW9mXCIpLCBfX2VzTW9kdWxlOiB0cnVlIH07XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9jb3JlLWpzL29iamVjdC9zZXQtcHJvdG90eXBlLW9mLmpzXG4vLyBtb2R1bGUgaWQgPSA4MVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///81\n");
|
569 |
-
|
570 |
-
/***/ }),
|
571 |
-
/* 82 */
|
572 |
-
/***/ (function(module, exports, __webpack_require__) {
|
573 |
-
|
574 |
-
eval("__webpack_require__(83);\nmodule.exports = __webpack_require__(0).Object.setPrototypeOf;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODIuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9zZXQtcHJvdG90eXBlLW9mLmpzPzhiZjAiXSwic291cmNlc0NvbnRlbnQiOlsicmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lczYub2JqZWN0LnNldC1wcm90b3R5cGUtb2YnKTtcbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9fY29yZScpLk9iamVjdC5zZXRQcm90b3R5cGVPZjtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9mbi9vYmplY3Qvc2V0LXByb3RvdHlwZS1vZi5qc1xuLy8gbW9kdWxlIGlkID0gODJcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///82\n");
|
575 |
-
|
576 |
-
/***/ }),
|
577 |
-
/* 83 */
|
578 |
-
/***/ (function(module, exports, __webpack_require__) {
|
579 |
-
|
580 |
-
eval("// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = __webpack_require__(5);\n$export($export.S, 'Object', { setPrototypeOf: __webpack_require__(84).set });\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2Lm9iamVjdC5zZXQtcHJvdG90eXBlLW9mLmpzPzdiMTgiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gMTkuMS4zLjE5IE9iamVjdC5zZXRQcm90b3R5cGVPZihPLCBwcm90bylcbnZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG4kZXhwb3J0KCRleHBvcnQuUywgJ09iamVjdCcsIHsgc2V0UHJvdG90eXBlT2Y6IHJlcXVpcmUoJy4vX3NldC1wcm90bycpLnNldCB9KTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL2VzNi5vYmplY3Quc2V0LXByb3RvdHlwZS1vZi5qc1xuLy8gbW9kdWxlIGlkID0gODNcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///83\n");
|
581 |
-
|
582 |
-
/***/ }),
|
583 |
-
/* 84 */
|
584 |
-
/***/ (function(module, exports, __webpack_require__) {
|
585 |
-
|
586 |
-
eval("// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = __webpack_require__(7);\nvar anObject = __webpack_require__(10);\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = __webpack_require__(30)(Function.call, __webpack_require__(40).f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODQuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3NldC1wcm90by5qcz82NWE0Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFdvcmtzIHdpdGggX19wcm90b19fIG9ubHkuIE9sZCB2OCBjYW4ndCB3b3JrIHdpdGggbnVsbCBwcm90byBvYmplY3RzLlxuLyogZXNsaW50LWRpc2FibGUgbm8tcHJvdG8gKi9cbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4vX2lzLW9iamVjdCcpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi9fYW4tb2JqZWN0Jyk7XG52YXIgY2hlY2sgPSBmdW5jdGlvbiAoTywgcHJvdG8pIHtcbiAgYW5PYmplY3QoTyk7XG4gIGlmICghaXNPYmplY3QocHJvdG8pICYmIHByb3RvICE9PSBudWxsKSB0aHJvdyBUeXBlRXJyb3IocHJvdG8gKyBcIjogY2FuJ3Qgc2V0IGFzIHByb3RvdHlwZSFcIik7XG59O1xubW9kdWxlLmV4cG9ydHMgPSB7XG4gIHNldDogT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8ICgnX19wcm90b19fJyBpbiB7fSA/IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcbiAgICBmdW5jdGlvbiAodGVzdCwgYnVnZ3ksIHNldCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgc2V0ID0gcmVxdWlyZSgnLi9fY3R4JykoRnVuY3Rpb24uY2FsbCwgcmVxdWlyZSgnLi9fb2JqZWN0LWdvcGQnKS5mKE9iamVjdC5wcm90b3R5cGUsICdfX3Byb3RvX18nKS5zZXQsIDIpO1xuICAgICAgICBzZXQodGVzdCwgW10pO1xuICAgICAgICBidWdneSA9ICEodGVzdCBpbnN0YW5jZW9mIEFycmF5KTtcbiAgICAgIH0gY2F0Y2ggKGUpIHsgYnVnZ3kgPSB0cnVlOyB9XG4gICAgICByZXR1cm4gZnVuY3Rpb24gc2V0UHJvdG90eXBlT2YoTywgcHJvdG8pIHtcbiAgICAgICAgY2hlY2soTywgcHJvdG8pO1xuICAgICAgICBpZiAoYnVnZ3kpIE8uX19wcm90b19fID0gcHJvdG87XG4gICAgICAgIGVsc2Ugc2V0KE8sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIE87XG4gICAgICB9O1xuICAgIH0oe30sIGZhbHNlKSA6IHVuZGVmaW5lZCksXG4gIGNoZWNrOiBjaGVja1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19zZXQtcHJvdG8uanNcbi8vIG1vZHVsZSBpZCA9IDg0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///84\n");
|
587 |
-
|
588 |
-
/***/ }),
|
589 |
-
/* 85 */
|
590 |
-
/***/ (function(module, exports, __webpack_require__) {
|
591 |
-
|
592 |
-
eval("module.exports = { \"default\": __webpack_require__(86), __esModule: true };//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODUuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9jb3JlLWpzL29iamVjdC9jcmVhdGUuanM/M2FmNCJdLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHsgXCJkZWZhdWx0XCI6IHJlcXVpcmUoXCJjb3JlLWpzL2xpYnJhcnkvZm4vb2JqZWN0L2NyZWF0ZVwiKSwgX19lc01vZHVsZTogdHJ1ZSB9O1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvY29yZS1qcy9vYmplY3QvY3JlYXRlLmpzXG4vLyBtb2R1bGUgaWQgPSA4NVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///85\n");
|
593 |
-
|
594 |
-
/***/ }),
|
595 |
-
/* 86 */
|
596 |
-
/***/ (function(module, exports, __webpack_require__) {
|
597 |
-
|
598 |
-
eval("__webpack_require__(87);\nvar $Object = __webpack_require__(0).Object;\nmodule.exports = function create(P, D) {\n return $Object.create(P, D);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODYuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9jcmVhdGUuanM/YTBjZSJdLCJzb3VyY2VzQ29udGVudCI6WyJyZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzNi5vYmplY3QuY3JlYXRlJyk7XG52YXIgJE9iamVjdCA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZXMvX2NvcmUnKS5PYmplY3Q7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGNyZWF0ZShQLCBEKSB7XG4gIHJldHVybiAkT2JqZWN0LmNyZWF0ZShQLCBEKTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvZm4vb2JqZWN0L2NyZWF0ZS5qc1xuLy8gbW9kdWxlIGlkID0gODZcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///86\n");
|
599 |
-
|
600 |
-
/***/ }),
|
601 |
-
/* 87 */
|
602 |
-
/***/ (function(module, exports, __webpack_require__) {
|
603 |
-
|
604 |
-
eval("var $export = __webpack_require__(5);\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: __webpack_require__(21) });\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODcuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2Lm9iamVjdC5jcmVhdGUuanM/YjA1ZiJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xuLy8gMTkuMS4yLjIgLyAxNS4yLjMuNSBPYmplY3QuY3JlYXRlKE8gWywgUHJvcGVydGllc10pXG4kZXhwb3J0KCRleHBvcnQuUywgJ09iamVjdCcsIHsgY3JlYXRlOiByZXF1aXJlKCcuL19vYmplY3QtY3JlYXRlJykgfSk7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9lczYub2JqZWN0LmNyZWF0ZS5qc1xuLy8gbW9kdWxlIGlkID0gODdcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///87\n");
|
605 |
-
|
606 |
-
/***/ })
|
607 |
-
/******/ ]);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/includes/builders/gutenberg/assets/js/dist/wpglobus-block-editor.min.js
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
!function(c){var t={};function l(e){if(t[e])return t[e].exports;var n=t[e]={i:e,l:!1,exports:{}};return c[e].call(n.exports,n,n.exports,l),n.l=!0,n.exports}l.m=c,l.c=t,l.d=function(e,n,c){l.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:c})},l.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(n,"a",n),n},l.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},l.p="",l(l.s=41)}([function(module,exports){eval("var core = module.exports = { version: '2.6.5' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMC5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fY29yZS5qcz8xNWUwIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBjb3JlID0gbW9kdWxlLmV4cG9ydHMgPSB7IHZlcnNpb246ICcyLjYuNScgfTtcbmlmICh0eXBlb2YgX19lID09ICdudW1iZXInKSBfX2UgPSBjb3JlOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVuZGVmXG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fY29yZS5qc1xuLy8gbW9kdWxlIGlkID0gMFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///0\n")},function(module,exports){eval("// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fZ2xvYmFsLmpzP2VjYWIiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvaXNzdWVzLzg2I2lzc3VlY29tbWVudC0xMTU3NTkwMjhcbnZhciBnbG9iYWwgPSBtb2R1bGUuZXhwb3J0cyA9IHR5cGVvZiB3aW5kb3cgIT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93Lk1hdGggPT0gTWF0aFxuICA/IHdpbmRvdyA6IHR5cGVvZiBzZWxmICE9ICd1bmRlZmluZWQnICYmIHNlbGYuTWF0aCA9PSBNYXRoID8gc2VsZlxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tbmV3LWZ1bmNcbiAgOiBGdW5jdGlvbigncmV0dXJuIHRoaXMnKSgpO1xuaWYgKHR5cGVvZiBfX2cgPT0gJ251bWJlcicpIF9fZyA9IGdsb2JhbDsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bmRlZlxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2dsb2JhbC5qc1xuLy8gbW9kdWxlIGlkID0gMVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///1\n")},function(module,exports){eval("var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMi5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9faGFzLmpzPzBmNjIiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIGhhc093blByb3BlcnR5ID0ge30uaGFzT3duUHJvcGVydHk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCwga2V5KSB7XG4gIHJldHVybiBoYXNPd25Qcm9wZXJ0eS5jYWxsKGl0LCBrZXkpO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19oYXMuanNcbi8vIG1vZHVsZSBpZCA9IDJcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///2\n")},function(module,exports,__webpack_require__){eval("var anObject = __webpack_require__(10);\nvar IE8_DOM_DEFINE = __webpack_require__(31);\nvar toPrimitive = __webpack_require__(18);\nvar dP = Object.defineProperty;\n\nexports.f = __webpack_require__(4) ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fb2JqZWN0LWRwLmpzPzdhZjAiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi9fYW4tb2JqZWN0Jyk7XG52YXIgSUU4X0RPTV9ERUZJTkUgPSByZXF1aXJlKCcuL19pZTgtZG9tLWRlZmluZScpO1xudmFyIHRvUHJpbWl0aXZlID0gcmVxdWlyZSgnLi9fdG8tcHJpbWl0aXZlJyk7XG52YXIgZFAgPSBPYmplY3QuZGVmaW5lUHJvcGVydHk7XG5cbmV4cG9ydHMuZiA9IHJlcXVpcmUoJy4vX2Rlc2NyaXB0b3JzJykgPyBPYmplY3QuZGVmaW5lUHJvcGVydHkgOiBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0eShPLCBQLCBBdHRyaWJ1dGVzKSB7XG4gIGFuT2JqZWN0KE8pO1xuICBQID0gdG9QcmltaXRpdmUoUCwgdHJ1ZSk7XG4gIGFuT2JqZWN0KEF0dHJpYnV0ZXMpO1xuICBpZiAoSUU4X0RPTV9ERUZJTkUpIHRyeSB7XG4gICAgcmV0dXJuIGRQKE8sIFAsIEF0dHJpYnV0ZXMpO1xuICB9IGNhdGNoIChlKSB7IC8qIGVtcHR5ICovIH1cbiAgaWYgKCdnZXQnIGluIEF0dHJpYnV0ZXMgfHwgJ3NldCcgaW4gQXR0cmlidXRlcykgdGhyb3cgVHlwZUVycm9yKCdBY2Nlc3NvcnMgbm90IHN1cHBvcnRlZCEnKTtcbiAgaWYgKCd2YWx1ZScgaW4gQXR0cmlidXRlcykgT1tQXSA9IEF0dHJpYnV0ZXMudmFsdWU7XG4gIHJldHVybiBPO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3QtZHAuanNcbi8vIG1vZHVsZSBpZCA9IDNcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///3\n")},function(module,exports,__webpack_require__){eval("// Thank's IE8 for his funny defineProperty\nmodule.exports = !__webpack_require__(11)(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNC5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fZGVzY3JpcHRvcnMuanM/Zjg0ZCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGFuaydzIElFOCBmb3IgaGlzIGZ1bm55IGRlZmluZVByb3BlcnR5XG5tb2R1bGUuZXhwb3J0cyA9ICFyZXF1aXJlKCcuL19mYWlscycpKGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2EnLCB7IGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gNzsgfSB9KS5hICE9IDc7XG59KTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19kZXNjcmlwdG9ycy5qc1xuLy8gbW9kdWxlIGlkID0gNFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///4\n")},function(module,exports,__webpack_require__){eval("var global = __webpack_require__(1);\nvar core = __webpack_require__(0);\nvar ctx = __webpack_require__(30);\nvar hide = __webpack_require__(6);\nvar has = __webpack_require__(2);\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && has(exports, key)) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fZXhwb3J0LmpzPzkwY2QiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4vX2dsb2JhbCcpO1xudmFyIGNvcmUgPSByZXF1aXJlKCcuL19jb3JlJyk7XG52YXIgY3R4ID0gcmVxdWlyZSgnLi9fY3R4Jyk7XG52YXIgaGlkZSA9IHJlcXVpcmUoJy4vX2hpZGUnKTtcbnZhciBoYXMgPSByZXF1aXJlKCcuL19oYXMnKTtcbnZhciBQUk9UT1RZUEUgPSAncHJvdG90eXBlJztcblxudmFyICRleHBvcnQgPSBmdW5jdGlvbiAodHlwZSwgbmFtZSwgc291cmNlKSB7XG4gIHZhciBJU19GT1JDRUQgPSB0eXBlICYgJGV4cG9ydC5GO1xuICB2YXIgSVNfR0xPQkFMID0gdHlwZSAmICRleHBvcnQuRztcbiAgdmFyIElTX1NUQVRJQyA9IHR5cGUgJiAkZXhwb3J0LlM7XG4gIHZhciBJU19QUk9UTyA9IHR5cGUgJiAkZXhwb3J0LlA7XG4gIHZhciBJU19CSU5EID0gdHlwZSAmICRleHBvcnQuQjtcbiAgdmFyIElTX1dSQVAgPSB0eXBlICYgJGV4cG9ydC5XO1xuICB2YXIgZXhwb3J0cyA9IElTX0dMT0JBTCA/IGNvcmUgOiBjb3JlW25hbWVdIHx8IChjb3JlW25hbWVdID0ge30pO1xuICB2YXIgZXhwUHJvdG8gPSBleHBvcnRzW1BST1RPVFlQRV07XG4gIHZhciB0YXJnZXQgPSBJU19HTE9CQUwgPyBnbG9iYWwgOiBJU19TVEFUSUMgPyBnbG9iYWxbbmFtZV0gOiAoZ2xvYmFsW25hbWVdIHx8IHt9KVtQUk9UT1RZUEVdO1xuICB2YXIga2V5LCBvd24sIG91dDtcbiAgaWYgKElTX0dMT0JBTCkgc291cmNlID0gbmFtZTtcbiAgZm9yIChrZXkgaW4gc291cmNlKSB7XG4gICAgLy8gY29udGFpbnMgaW4gbmF0aXZlXG4gICAgb3duID0gIUlTX0ZPUkNFRCAmJiB0YXJnZXQgJiYgdGFyZ2V0W2tleV0gIT09IHVuZGVmaW5lZDtcbiAgICBpZiAob3duICYmIGhhcyhleHBvcnRzLCBrZXkpKSBjb250aW51ZTtcbiAgICAvLyBleHBvcnQgbmF0aXZlIG9yIHBhc3NlZFxuICAgIG91dCA9IG93biA/IHRhcmdldFtrZXldIDogc291cmNlW2tleV07XG4gICAgLy8gcHJldmVudCBnbG9iYWwgcG9sbHV0aW9uIGZvciBuYW1lc3BhY2VzXG4gICAgZXhwb3J0c1trZXldID0gSVNfR0xPQkFMICYmIHR5cGVvZiB0YXJnZXRba2V5XSAhPSAnZnVuY3Rpb24nID8gc291cmNlW2tleV1cbiAgICAvLyBiaW5kIHRpbWVycyB0byBnbG9iYWwgZm9yIGNhbGwgZnJvbSBleHBvcnQgY29udGV4dFxuICAgIDogSVNfQklORCAmJiBvd24gPyBjdHgob3V0LCBnbG9iYWwpXG4gICAgLy8gd3JhcCBnbG9iYWwgY29uc3RydWN0b3JzIGZvciBwcmV2ZW50IGNoYW5nZSB0aGVtIGluIGxpYnJhcnlcbiAgICA6IElTX1dSQVAgJiYgdGFyZ2V0W2tleV0gPT0gb3V0ID8gKGZ1bmN0aW9uIChDKSB7XG4gICAgICB2YXIgRiA9IGZ1bmN0aW9uIChhLCBiLCBjKSB7XG4gICAgICAgIGlmICh0aGlzIGluc3RhbmNlb2YgQykge1xuICAgICAgICAgIHN3aXRjaCAoYXJndW1lbnRzLmxlbmd0aCkge1xuICAgICAgICAgICAgY2FzZSAwOiByZXR1cm4gbmV3IEMoKTtcbiAgICAgICAgICAgIGNhc2UgMTogcmV0dXJuIG5ldyBDKGEpO1xuICAgICAgICAgICAgY2FzZSAyOiByZXR1cm4gbmV3IEMoYSwgYik7XG4gICAgICAgICAgfSByZXR1cm4gbmV3IEMoYSwgYiwgYyk7XG4gICAgICAgIH0gcmV0dXJuIEMuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgIH07XG4gICAgICBGW1BST1RPVFlQRV0gPSBDW1BST1RPVFlQRV07XG4gICAgICByZXR1cm4gRjtcbiAgICAvLyBtYWtlIHN0YXRpYyB2ZXJzaW9ucyBmb3IgcHJvdG90eXBlIG1ldGhvZHNcbiAgICB9KShvdXQpIDogSVNfUFJPVE8gJiYgdHlwZW9mIG91dCA9PSAnZnVuY3Rpb24nID8gY3R4KEZ1bmN0aW9uLmNhbGwsIG91dCkgOiBvdXQ7XG4gICAgLy8gZXhwb3J0IHByb3RvIG1ldGhvZHMgdG8gY29yZS4lQ09OU1RSVUNUT1IlLm1ldGhvZHMuJU5BTUUlXG4gICAgaWYgKElTX1BST1RPKSB7XG4gICAgICAoZXhwb3J0cy52aXJ0dWFsIHx8IChleHBvcnRzLnZpcnR1YWwgPSB7fSkpW2tleV0gPSBvdXQ7XG4gICAgICAvLyBleHBvcnQgcHJvdG8gbWV0aG9kcyB0byBjb3JlLiVDT05TVFJVQ1RPUiUucHJvdG90eXBlLiVOQU1FJVxuICAgICAgaWYgKHR5cGUgJiAkZXhwb3J0LlIgJiYgZXhwUHJvdG8gJiYgIWV4cFByb3RvW2tleV0pIGhpZGUoZXhwUHJvdG8sIGtleSwgb3V0KTtcbiAgICB9XG4gIH1cbn07XG4vLyB0eXBlIGJpdG1hcFxuJGV4cG9ydC5GID0gMTsgICAvLyBmb3JjZWRcbiRleHBvcnQuRyA9IDI7ICAgLy8gZ2xvYmFsXG4kZXhwb3J0LlMgPSA0OyAgIC8vIHN0YXRpY1xuJGV4cG9ydC5QID0gODsgICAvLyBwcm90b1xuJGV4cG9ydC5CID0gMTY7ICAvLyBiaW5kXG4kZXhwb3J0LlcgPSAzMjsgIC8vIHdyYXBcbiRleHBvcnQuVSA9IDY0OyAgLy8gc2FmZVxuJGV4cG9ydC5SID0gMTI4OyAvLyByZWFsIHByb3RvIG1ldGhvZCBmb3IgYGxpYnJhcnlgXG5tb2R1bGUuZXhwb3J0cyA9ICRleHBvcnQ7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fZXhwb3J0LmpzXG4vLyBtb2R1bGUgaWQgPSA1XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///5\n")},function(module,exports,__webpack_require__){eval("var dP = __webpack_require__(3);\nvar createDesc = __webpack_require__(14);\nmodule.exports = __webpack_require__(4) ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNi5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9faGlkZS5qcz84NDljIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBkUCA9IHJlcXVpcmUoJy4vX29iamVjdC1kcCcpO1xudmFyIGNyZWF0ZURlc2MgPSByZXF1aXJlKCcuL19wcm9wZXJ0eS1kZXNjJyk7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vX2Rlc2NyaXB0b3JzJykgPyBmdW5jdGlvbiAob2JqZWN0LCBrZXksIHZhbHVlKSB7XG4gIHJldHVybiBkUC5mKG9iamVjdCwga2V5LCBjcmVhdGVEZXNjKDEsIHZhbHVlKSk7XG59IDogZnVuY3Rpb24gKG9iamVjdCwga2V5LCB2YWx1ZSkge1xuICBvYmplY3Rba2V5XSA9IHZhbHVlO1xuICByZXR1cm4gb2JqZWN0O1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19oaWRlLmpzXG4vLyBtb2R1bGUgaWQgPSA2XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///6\n")},function(module,exports){eval("module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9faXMtb2JqZWN0LmpzPzEyYTgiXSwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIHR5cGVvZiBpdCA9PT0gJ29iamVjdCcgPyBpdCAhPT0gbnVsbCA6IHR5cGVvZiBpdCA9PT0gJ2Z1bmN0aW9uJztcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9faXMtb2JqZWN0LmpzXG4vLyBtb2R1bGUgaWQgPSA3XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///7\n")},function(module,exports,__webpack_require__){eval("// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = __webpack_require__(61);\nvar defined = __webpack_require__(15);\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiOC5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fdG8taW9iamVjdC5qcz80ZGM0Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIHRvIGluZGV4ZWQgb2JqZWN0LCB0b09iamVjdCB3aXRoIGZhbGxiYWNrIGZvciBub24tYXJyYXktbGlrZSBFUzMgc3RyaW5nc1xudmFyIElPYmplY3QgPSByZXF1aXJlKCcuL19pb2JqZWN0Jyk7XG52YXIgZGVmaW5lZCA9IHJlcXVpcmUoJy4vX2RlZmluZWQnKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBJT2JqZWN0KGRlZmluZWQoaXQpKTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fdG8taW9iamVjdC5qc1xuLy8gbW9kdWxlIGlkID0gOFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///8\n")},function(module,exports,__webpack_require__){eval("var store = __webpack_require__(17)('wks');\nvar uid = __webpack_require__(13);\nvar Symbol = __webpack_require__(1).Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiOS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fd2tzLmpzPzc1MmMiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIHN0b3JlID0gcmVxdWlyZSgnLi9fc2hhcmVkJykoJ3drcycpO1xudmFyIHVpZCA9IHJlcXVpcmUoJy4vX3VpZCcpO1xudmFyIFN5bWJvbCA9IHJlcXVpcmUoJy4vX2dsb2JhbCcpLlN5bWJvbDtcbnZhciBVU0VfU1lNQk9MID0gdHlwZW9mIFN5bWJvbCA9PSAnZnVuY3Rpb24nO1xuXG52YXIgJGV4cG9ydHMgPSBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChuYW1lKSB7XG4gIHJldHVybiBzdG9yZVtuYW1lXSB8fCAoc3RvcmVbbmFtZV0gPVxuICAgIFVTRV9TWU1CT0wgJiYgU3ltYm9sW25hbWVdIHx8IChVU0VfU1lNQk9MID8gU3ltYm9sIDogdWlkKSgnU3ltYm9sLicgKyBuYW1lKSk7XG59O1xuXG4kZXhwb3J0cy5zdG9yZSA9IHN0b3JlO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3drcy5qc1xuLy8gbW9kdWxlIGlkID0gOVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///9\n")},function(module,exports,__webpack_require__){eval("var isObject = __webpack_require__(7);\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTAuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2FuLW9iamVjdC5qcz9lZmIzIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4vX2lzLW9iamVjdCcpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgaWYgKCFpc09iamVjdChpdCkpIHRocm93IFR5cGVFcnJvcihpdCArICcgaXMgbm90IGFuIG9iamVjdCEnKTtcbiAgcmV0dXJuIGl0O1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19hbi1vYmplY3QuanNcbi8vIG1vZHVsZSBpZCA9IDEwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///10\n")},function(module,exports){eval("module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTEuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2ZhaWxzLmpzPzRiY2QiXSwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoZXhlYykge1xuICB0cnkge1xuICAgIHJldHVybiAhIWV4ZWMoKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2ZhaWxzLmpzXG4vLyBtb2R1bGUgaWQgPSAxMVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///11\n")},function(module,exports){eval("module.exports = true;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTIuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2xpYnJhcnkuanM/M2I4OCJdLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHRydWU7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fbGlicmFyeS5qc1xuLy8gbW9kdWxlIGlkID0gMTJcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///12\n")},function(module,exports){eval("var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3VpZC5qcz9kYzRhIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBpZCA9IDA7XG52YXIgcHggPSBNYXRoLnJhbmRvbSgpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoa2V5KSB7XG4gIHJldHVybiAnU3ltYm9sKCcuY29uY2F0KGtleSA9PT0gdW5kZWZpbmVkID8gJycgOiBrZXksICcpXycsICgrK2lkICsgcHgpLnRvU3RyaW5nKDM2KSk7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3VpZC5qc1xuLy8gbW9kdWxlIGlkID0gMTNcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///13\n")},function(module,exports){eval("module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTQuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3Byb3BlcnR5LWRlc2MuanM/NWZjMCJdLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChiaXRtYXAsIHZhbHVlKSB7XG4gIHJldHVybiB7XG4gICAgZW51bWVyYWJsZTogIShiaXRtYXAgJiAxKSxcbiAgICBjb25maWd1cmFibGU6ICEoYml0bWFwICYgMiksXG4gICAgd3JpdGFibGU6ICEoYml0bWFwICYgNCksXG4gICAgdmFsdWU6IHZhbHVlXG4gIH07XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3Byb3BlcnR5LWRlc2MuanNcbi8vIG1vZHVsZSBpZCA9IDE0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///14\n")},function(module,exports){eval('// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError("Can\'t call method on " + it);\n return it;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTUuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2RlZmluZWQuanM/ZTc2OCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyA3LjIuMSBSZXF1aXJlT2JqZWN0Q29lcmNpYmxlKGFyZ3VtZW50KVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgaWYgKGl0ID09IHVuZGVmaW5lZCkgdGhyb3cgVHlwZUVycm9yKFwiQ2FuJ3QgY2FsbCBtZXRob2Qgb24gIFwiICsgaXQpO1xuICByZXR1cm4gaXQ7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2RlZmluZWQuanNcbi8vIG1vZHVsZSBpZCA9IDE1XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///15\n')},function(module,exports,__webpack_require__){eval("var shared = __webpack_require__(17)('keys');\nvar uid = __webpack_require__(13);\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTYuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3NoYXJlZC1rZXkuanM/NmIxZCJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgc2hhcmVkID0gcmVxdWlyZSgnLi9fc2hhcmVkJykoJ2tleXMnKTtcbnZhciB1aWQgPSByZXF1aXJlKCcuL191aWQnKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGtleSkge1xuICByZXR1cm4gc2hhcmVkW2tleV0gfHwgKHNoYXJlZFtrZXldID0gdWlkKGtleSkpO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19zaGFyZWQta2V5LmpzXG4vLyBtb2R1bGUgaWQgPSAxNlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///16\n")},function(module,exports,__webpack_require__){eval("var core = __webpack_require__(0);\nvar global = __webpack_require__(1);\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: __webpack_require__(12) ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTcuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3NoYXJlZC5qcz83YmMwIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBjb3JlID0gcmVxdWlyZSgnLi9fY29yZScpO1xudmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4vX2dsb2JhbCcpO1xudmFyIFNIQVJFRCA9ICdfX2NvcmUtanNfc2hhcmVkX18nO1xudmFyIHN0b3JlID0gZ2xvYmFsW1NIQVJFRF0gfHwgKGdsb2JhbFtTSEFSRURdID0ge30pO1xuXG4obW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkge1xuICByZXR1cm4gc3RvcmVba2V5XSB8fCAoc3RvcmVba2V5XSA9IHZhbHVlICE9PSB1bmRlZmluZWQgPyB2YWx1ZSA6IHt9KTtcbn0pKCd2ZXJzaW9ucycsIFtdKS5wdXNoKHtcbiAgdmVyc2lvbjogY29yZS52ZXJzaW9uLFxuICBtb2RlOiByZXF1aXJlKCcuL19saWJyYXJ5JykgPyAncHVyZScgOiAnZ2xvYmFsJyxcbiAgY29weXJpZ2h0OiAnwqkgMjAxOSBEZW5pcyBQdXNoa2FyZXYgKHpsb2lyb2NrLnJ1KSdcbn0pO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3NoYXJlZC5qc1xuLy8gbW9kdWxlIGlkID0gMTdcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///17\n")},function(module,exports,__webpack_require__){eval("// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = __webpack_require__(7);\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTguanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3RvLXByaW1pdGl2ZS5qcz8zMjYzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIDcuMS4xIFRvUHJpbWl0aXZlKGlucHV0IFssIFByZWZlcnJlZFR5cGVdKVxudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9faXMtb2JqZWN0Jyk7XG4vLyBpbnN0ZWFkIG9mIHRoZSBFUzYgc3BlYyB2ZXJzaW9uLCB3ZSBkaWRuJ3QgaW1wbGVtZW50IEBAdG9QcmltaXRpdmUgY2FzZVxuLy8gYW5kIHRoZSBzZWNvbmQgYXJndW1lbnQgLSBmbGFnIC0gcHJlZmVycmVkIHR5cGUgaXMgYSBzdHJpbmdcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0LCBTKSB7XG4gIGlmICghaXNPYmplY3QoaXQpKSByZXR1cm4gaXQ7XG4gIHZhciBmbiwgdmFsO1xuICBpZiAoUyAmJiB0eXBlb2YgKGZuID0gaXQudG9TdHJpbmcpID09ICdmdW5jdGlvbicgJiYgIWlzT2JqZWN0KHZhbCA9IGZuLmNhbGwoaXQpKSkgcmV0dXJuIHZhbDtcbiAgaWYgKHR5cGVvZiAoZm4gPSBpdC52YWx1ZU9mKSA9PSAnZnVuY3Rpb24nICYmICFpc09iamVjdCh2YWwgPSBmbi5jYWxsKGl0KSkpIHJldHVybiB2YWw7XG4gIGlmICghUyAmJiB0eXBlb2YgKGZuID0gaXQudG9TdHJpbmcpID09ICdmdW5jdGlvbicgJiYgIWlzT2JqZWN0KHZhbCA9IGZuLmNhbGwoaXQpKSkgcmV0dXJuIHZhbDtcbiAgdGhyb3cgVHlwZUVycm9yKFwiQ2FuJ3QgY29udmVydCBvYmplY3QgdG8gcHJpbWl0aXZlIHZhbHVlXCIpO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL190by1wcmltaXRpdmUuanNcbi8vIG1vZHVsZSBpZCA9IDE4XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///18\n")},function(module,exports){eval("// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTkuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3RvLWludGVnZXIuanM/NTJlMSJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyA3LjEuNCBUb0ludGVnZXJcbnZhciBjZWlsID0gTWF0aC5jZWlsO1xudmFyIGZsb29yID0gTWF0aC5mbG9vcjtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBpc05hTihpdCA9ICtpdCkgPyAwIDogKGl0ID4gMCA/IGZsb29yIDogY2VpbCkoaXQpO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL190by1pbnRlZ2VyLmpzXG4vLyBtb2R1bGUgaWQgPSAxOVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///19\n")},function(module,exports){eval("module.exports = {};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjAuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2l0ZXJhdG9ycy5qcz9mZGI0Il0sInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0ge307XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9faXRlcmF0b3JzLmpzXG4vLyBtb2R1bGUgaWQgPSAyMFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///20\n")},function(module,exports,__webpack_require__){eval("// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = __webpack_require__(10);\nvar dPs = __webpack_require__(60);\nvar enumBugKeys = __webpack_require__(23);\nvar IE_PROTO = __webpack_require__(16)('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = __webpack_require__(32)('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n __webpack_require__(65).appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjEuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1jcmVhdGUuanM/NjI4NiJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyAxOS4xLjIuMiAvIDE1LjIuMy41IE9iamVjdC5jcmVhdGUoTyBbLCBQcm9wZXJ0aWVzXSlcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4vX2FuLW9iamVjdCcpO1xudmFyIGRQcyA9IHJlcXVpcmUoJy4vX29iamVjdC1kcHMnKTtcbnZhciBlbnVtQnVnS2V5cyA9IHJlcXVpcmUoJy4vX2VudW0tYnVnLWtleXMnKTtcbnZhciBJRV9QUk9UTyA9IHJlcXVpcmUoJy4vX3NoYXJlZC1rZXknKSgnSUVfUFJPVE8nKTtcbnZhciBFbXB0eSA9IGZ1bmN0aW9uICgpIHsgLyogZW1wdHkgKi8gfTtcbnZhciBQUk9UT1RZUEUgPSAncHJvdG90eXBlJztcblxuLy8gQ3JlYXRlIG9iamVjdCB3aXRoIGZha2UgYG51bGxgIHByb3RvdHlwZTogdXNlIGlmcmFtZSBPYmplY3Qgd2l0aCBjbGVhcmVkIHByb3RvdHlwZVxudmFyIGNyZWF0ZURpY3QgPSBmdW5jdGlvbiAoKSB7XG4gIC8vIFRocmFzaCwgd2FzdGUgYW5kIHNvZG9teTogSUUgR0MgYnVnXG4gIHZhciBpZnJhbWUgPSByZXF1aXJlKCcuL19kb20tY3JlYXRlJykoJ2lmcmFtZScpO1xuICB2YXIgaSA9IGVudW1CdWdLZXlzLmxlbmd0aDtcbiAgdmFyIGx0ID0gJzwnO1xuICB2YXIgZ3QgPSAnPic7XG4gIHZhciBpZnJhbWVEb2N1bWVudDtcbiAgaWZyYW1lLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gIHJlcXVpcmUoJy4vX2h0bWwnKS5hcHBlbmRDaGlsZChpZnJhbWUpO1xuICBpZnJhbWUuc3JjID0gJ2phdmFzY3JpcHQ6JzsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1zY3JpcHQtdXJsXG4gIC8vIGNyZWF0ZURpY3QgPSBpZnJhbWUuY29udGVudFdpbmRvdy5PYmplY3Q7XG4gIC8vIGh0bWwucmVtb3ZlQ2hpbGQoaWZyYW1lKTtcbiAgaWZyYW1lRG9jdW1lbnQgPSBpZnJhbWUuY29udGVudFdpbmRvdy5kb2N1bWVudDtcbiAgaWZyYW1lRG9jdW1lbnQub3BlbigpO1xuICBpZnJhbWVEb2N1bWVudC53cml0ZShsdCArICdzY3JpcHQnICsgZ3QgKyAnZG9jdW1lbnQuRj1PYmplY3QnICsgbHQgKyAnL3NjcmlwdCcgKyBndCk7XG4gIGlmcmFtZURvY3VtZW50LmNsb3NlKCk7XG4gIGNyZWF0ZURpY3QgPSBpZnJhbWVEb2N1bWVudC5GO1xuICB3aGlsZSAoaS0tKSBkZWxldGUgY3JlYXRlRGljdFtQUk9UT1RZUEVdW2VudW1CdWdLZXlzW2ldXTtcbiAgcmV0dXJuIGNyZWF0ZURpY3QoKTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gT2JqZWN0LmNyZWF0ZSB8fCBmdW5jdGlvbiBjcmVhdGUoTywgUHJvcGVydGllcykge1xuICB2YXIgcmVzdWx0O1xuICBpZiAoTyAhPT0gbnVsbCkge1xuICAgIEVtcHR5W1BST1RPVFlQRV0gPSBhbk9iamVjdChPKTtcbiAgICByZXN1bHQgPSBuZXcgRW1wdHkoKTtcbiAgICBFbXB0eVtQUk9UT1RZUEVdID0gbnVsbDtcbiAgICAvLyBhZGQgXCJfX3Byb3RvX19cIiBmb3IgT2JqZWN0LmdldFByb3RvdHlwZU9mIHBvbHlmaWxsXG4gICAgcmVzdWx0W0lFX1BST1RPXSA9IE87XG4gIH0gZWxzZSByZXN1bHQgPSBjcmVhdGVEaWN0KCk7XG4gIHJldHVybiBQcm9wZXJ0aWVzID09PSB1bmRlZmluZWQgPyByZXN1bHQgOiBkUHMocmVzdWx0LCBQcm9wZXJ0aWVzKTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fb2JqZWN0LWNyZWF0ZS5qc1xuLy8gbW9kdWxlIGlkID0gMjFcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///21\n")},function(module,exports,__webpack_require__){eval("// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = __webpack_require__(36);\nvar enumBugKeys = __webpack_require__(23);\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjIuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1rZXlzLmpzPzk2NGIiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gMTkuMS4yLjE0IC8gMTUuMi4zLjE0IE9iamVjdC5rZXlzKE8pXG52YXIgJGtleXMgPSByZXF1aXJlKCcuL19vYmplY3Qta2V5cy1pbnRlcm5hbCcpO1xudmFyIGVudW1CdWdLZXlzID0gcmVxdWlyZSgnLi9fZW51bS1idWcta2V5cycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IE9iamVjdC5rZXlzIHx8IGZ1bmN0aW9uIGtleXMoTykge1xuICByZXR1cm4gJGtleXMoTywgZW51bUJ1Z0tleXMpO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3Qta2V5cy5qc1xuLy8gbW9kdWxlIGlkID0gMjJcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///22\n")},function(module,exports){eval("// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2VudW0tYnVnLWtleXMuanM/YzY3NyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBJRSA4LSBkb24ndCBlbnVtIGJ1ZyBrZXlzXG5tb2R1bGUuZXhwb3J0cyA9IChcbiAgJ2NvbnN0cnVjdG9yLGhhc093blByb3BlcnR5LGlzUHJvdG90eXBlT2YscHJvcGVydHlJc0VudW1lcmFibGUsdG9Mb2NhbGVTdHJpbmcsdG9TdHJpbmcsdmFsdWVPZidcbikuc3BsaXQoJywnKTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19lbnVtLWJ1Zy1rZXlzLmpzXG4vLyBtb2R1bGUgaWQgPSAyM1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///23\n")},function(module,exports,__webpack_require__){eval("var def = __webpack_require__(3).f;\nvar has = __webpack_require__(2);\nvar TAG = __webpack_require__(9)('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjQuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3NldC10by1zdHJpbmctdGFnLmpzPzdiYTkiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIGRlZiA9IHJlcXVpcmUoJy4vX29iamVjdC1kcCcpLmY7XG52YXIgaGFzID0gcmVxdWlyZSgnLi9faGFzJyk7XG52YXIgVEFHID0gcmVxdWlyZSgnLi9fd2tzJykoJ3RvU3RyaW5nVGFnJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0LCB0YWcsIHN0YXQpIHtcbiAgaWYgKGl0ICYmICFoYXMoaXQgPSBzdGF0ID8gaXQgOiBpdC5wcm90b3R5cGUsIFRBRykpIGRlZihpdCwgVEFHLCB7IGNvbmZpZ3VyYWJsZTogdHJ1ZSwgdmFsdWU6IHRhZyB9KTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fc2V0LXRvLXN0cmluZy10YWcuanNcbi8vIG1vZHVsZSBpZCA9IDI0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///24\n")},function(module,exports,__webpack_require__){eval("exports.f = __webpack_require__(9);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjUuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3drcy1leHQuanM/MmExZSJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnRzLmYgPSByZXF1aXJlKCcuL193a3MnKTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL193a3MtZXh0LmpzXG4vLyBtb2R1bGUgaWQgPSAyNVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///25\n")},function(module,exports,__webpack_require__){eval("var global = __webpack_require__(1);\nvar core = __webpack_require__(0);\nvar LIBRARY = __webpack_require__(12);\nvar wksExt = __webpack_require__(25);\nvar defineProperty = __webpack_require__(3).f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjYuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3drcy1kZWZpbmUuanM/NzJiOSJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi9fZ2xvYmFsJyk7XG52YXIgY29yZSA9IHJlcXVpcmUoJy4vX2NvcmUnKTtcbnZhciBMSUJSQVJZID0gcmVxdWlyZSgnLi9fbGlicmFyeScpO1xudmFyIHdrc0V4dCA9IHJlcXVpcmUoJy4vX3drcy1leHQnKTtcbnZhciBkZWZpbmVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4vX29iamVjdC1kcCcpLmY7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChuYW1lKSB7XG4gIHZhciAkU3ltYm9sID0gY29yZS5TeW1ib2wgfHwgKGNvcmUuU3ltYm9sID0gTElCUkFSWSA/IHt9IDogZ2xvYmFsLlN5bWJvbCB8fCB7fSk7XG4gIGlmIChuYW1lLmNoYXJBdCgwKSAhPSAnXycgJiYgIShuYW1lIGluICRTeW1ib2wpKSBkZWZpbmVQcm9wZXJ0eSgkU3ltYm9sLCBuYW1lLCB7IHZhbHVlOiB3a3NFeHQuZihuYW1lKSB9KTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fd2tzLWRlZmluZS5qc1xuLy8gbW9kdWxlIGlkID0gMjZcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///26\n")},function(module,exports){eval("exports.f = {}.propertyIsEnumerable;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjcuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1waWUuanM/MzY5MiJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnRzLmYgPSB7fS5wcm9wZXJ0eUlzRW51bWVyYWJsZTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3QtcGllLmpzXG4vLyBtb2R1bGUgaWQgPSAyN1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///27\n")},function(module,exports,__webpack_require__){eval("// 7.1.13 ToObject(argument)\nvar defined = __webpack_require__(15);\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjguanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3RvLW9iamVjdC5qcz9iMDFkIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIDcuMS4xMyBUb09iamVjdChhcmd1bWVudClcbnZhciBkZWZpbmVkID0gcmVxdWlyZSgnLi9fZGVmaW5lZCcpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIE9iamVjdChkZWZpbmVkKGl0KSk7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3RvLW9iamVjdC5qc1xuLy8gbW9kdWxlIGlkID0gMjhcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///28\n")},function(module,exports,__webpack_require__){eval("// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = __webpack_require__(2);\nvar toObject = __webpack_require__(28);\nvar IE_PROTO = __webpack_require__(16)('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjkuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1ncG8uanM/M2YzYyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyAxOS4xLjIuOSAvIDE1LjIuMy4yIE9iamVjdC5nZXRQcm90b3R5cGVPZihPKVxudmFyIGhhcyA9IHJlcXVpcmUoJy4vX2hhcycpO1xudmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi9fdG8tb2JqZWN0Jyk7XG52YXIgSUVfUFJPVE8gPSByZXF1aXJlKCcuL19zaGFyZWQta2V5JykoJ0lFX1BST1RPJyk7XG52YXIgT2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG5tb2R1bGUuZXhwb3J0cyA9IE9iamVjdC5nZXRQcm90b3R5cGVPZiB8fCBmdW5jdGlvbiAoTykge1xuICBPID0gdG9PYmplY3QoTyk7XG4gIGlmIChoYXMoTywgSUVfUFJPVE8pKSByZXR1cm4gT1tJRV9QUk9UT107XG4gIGlmICh0eXBlb2YgTy5jb25zdHJ1Y3RvciA9PSAnZnVuY3Rpb24nICYmIE8gaW5zdGFuY2VvZiBPLmNvbnN0cnVjdG9yKSB7XG4gICAgcmV0dXJuIE8uY29uc3RydWN0b3IucHJvdG90eXBlO1xuICB9IHJldHVybiBPIGluc3RhbmNlb2YgT2JqZWN0ID8gT2JqZWN0UHJvdG8gOiBudWxsO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3QtZ3BvLmpzXG4vLyBtb2R1bGUgaWQgPSAyOVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///29\n")},function(module,exports,__webpack_require__){eval("// optional / simple context binding\nvar aFunction = __webpack_require__(48);\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzAuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2N0eC5qcz9mOTkzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIG9wdGlvbmFsIC8gc2ltcGxlIGNvbnRleHQgYmluZGluZ1xudmFyIGFGdW5jdGlvbiA9IHJlcXVpcmUoJy4vX2EtZnVuY3Rpb24nKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGZuLCB0aGF0LCBsZW5ndGgpIHtcbiAgYUZ1bmN0aW9uKGZuKTtcbiAgaWYgKHRoYXQgPT09IHVuZGVmaW5lZCkgcmV0dXJuIGZuO1xuICBzd2l0Y2ggKGxlbmd0aCkge1xuICAgIGNhc2UgMTogcmV0dXJuIGZ1bmN0aW9uIChhKSB7XG4gICAgICByZXR1cm4gZm4uY2FsbCh0aGF0LCBhKTtcbiAgICB9O1xuICAgIGNhc2UgMjogcmV0dXJuIGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgICByZXR1cm4gZm4uY2FsbCh0aGF0LCBhLCBiKTtcbiAgICB9O1xuICAgIGNhc2UgMzogcmV0dXJuIGZ1bmN0aW9uIChhLCBiLCBjKSB7XG4gICAgICByZXR1cm4gZm4uY2FsbCh0aGF0LCBhLCBiLCBjKTtcbiAgICB9O1xuICB9XG4gIHJldHVybiBmdW5jdGlvbiAoLyogLi4uYXJncyAqLykge1xuICAgIHJldHVybiBmbi5hcHBseSh0aGF0LCBhcmd1bWVudHMpO1xuICB9O1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19jdHguanNcbi8vIG1vZHVsZSBpZCA9IDMwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///30\n")},function(module,exports,__webpack_require__){eval("module.exports = !__webpack_require__(4) && !__webpack_require__(11)(function () {\n return Object.defineProperty(__webpack_require__(32)('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzEuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2llOC1kb20tZGVmaW5lLmpzPzQ5ZjAiXSwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSAhcmVxdWlyZSgnLi9fZGVzY3JpcHRvcnMnKSAmJiAhcmVxdWlyZSgnLi9fZmFpbHMnKShmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkocmVxdWlyZSgnLi9fZG9tLWNyZWF0ZScpKCdkaXYnKSwgJ2EnLCB7IGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gNzsgfSB9KS5hICE9IDc7XG59KTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19pZTgtZG9tLWRlZmluZS5qc1xuLy8gbW9kdWxlIGlkID0gMzFcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///31\n")},function(module,exports,__webpack_require__){eval("var isObject = __webpack_require__(7);\nvar document = __webpack_require__(1).document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzIuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2RvbS1jcmVhdGUuanM/MzhkZCJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL19pcy1vYmplY3QnKTtcbnZhciBkb2N1bWVudCA9IHJlcXVpcmUoJy4vX2dsb2JhbCcpLmRvY3VtZW50O1xuLy8gdHlwZW9mIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQgaXMgJ29iamVjdCcgaW4gb2xkIElFXG52YXIgaXMgPSBpc09iamVjdChkb2N1bWVudCkgJiYgaXNPYmplY3QoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gaXMgPyBkb2N1bWVudC5jcmVhdGVFbGVtZW50KGl0KSA6IHt9O1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19kb20tY3JlYXRlLmpzXG4vLyBtb2R1bGUgaWQgPSAzMlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///32\n")},function(module,exports,__webpack_require__){"use strict";eval('\n\nexports.__esModule = true;\n\nvar _iterator = __webpack_require__(55);\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _symbol = __webpack_require__(70);\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nvar _typeof = typeof _symbol2.default === "function" && typeof _iterator2.default === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = typeof _symbol2.default === "function" && _typeof(_iterator2.default) === "symbol" ? function (obj) {\n return typeof obj === "undefined" ? "undefined" : _typeof(obj);\n} : function (obj) {\n return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj === "undefined" ? "undefined" : _typeof(obj);\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9oZWxwZXJzL3R5cGVvZi5qcz9hNDU2Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG52YXIgX2l0ZXJhdG9yID0gcmVxdWlyZShcIi4uL2NvcmUtanMvc3ltYm9sL2l0ZXJhdG9yXCIpO1xuXG52YXIgX2l0ZXJhdG9yMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2l0ZXJhdG9yKTtcblxudmFyIF9zeW1ib2wgPSByZXF1aXJlKFwiLi4vY29yZS1qcy9zeW1ib2xcIik7XG5cbnZhciBfc3ltYm9sMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3N5bWJvbCk7XG5cbnZhciBfdHlwZW9mID0gdHlwZW9mIF9zeW1ib2wyLmRlZmF1bHQgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgX2l0ZXJhdG9yMi5kZWZhdWx0ID09PSBcInN5bWJvbFwiID8gZnVuY3Rpb24gKG9iaikgeyByZXR1cm4gdHlwZW9mIG9iajsgfSA6IGZ1bmN0aW9uIChvYmopIHsgcmV0dXJuIG9iaiAmJiB0eXBlb2YgX3N5bWJvbDIuZGVmYXVsdCA9PT0gXCJmdW5jdGlvblwiICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gX3N5bWJvbDIuZGVmYXVsdCAmJiBvYmogIT09IF9zeW1ib2wyLmRlZmF1bHQucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvYmo7IH07XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IGRlZmF1bHQ6IG9iaiB9OyB9XG5cbmV4cG9ydHMuZGVmYXVsdCA9IHR5cGVvZiBfc3ltYm9sMi5kZWZhdWx0ID09PSBcImZ1bmN0aW9uXCIgJiYgX3R5cGVvZihfaXRlcmF0b3IyLmRlZmF1bHQpID09PSBcInN5bWJvbFwiID8gZnVuY3Rpb24gKG9iaikge1xuICByZXR1cm4gdHlwZW9mIG9iaiA9PT0gXCJ1bmRlZmluZWRcIiA/IFwidW5kZWZpbmVkXCIgOiBfdHlwZW9mKG9iaik7XG59IDogZnVuY3Rpb24gKG9iaikge1xuICByZXR1cm4gb2JqICYmIHR5cGVvZiBfc3ltYm9sMi5kZWZhdWx0ID09PSBcImZ1bmN0aW9uXCIgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBfc3ltYm9sMi5kZWZhdWx0ICYmIG9iaiAhPT0gX3N5bWJvbDIuZGVmYXVsdC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iaiA9PT0gXCJ1bmRlZmluZWRcIiA/IFwidW5kZWZpbmVkXCIgOiBfdHlwZW9mKG9iaik7XG59O1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvaGVscGVycy90eXBlb2YuanNcbi8vIG1vZHVsZSBpZCA9IDMzXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///33\n')},function(module,exports,__webpack_require__){"use strict";eval("\nvar LIBRARY = __webpack_require__(12);\nvar $export = __webpack_require__(5);\nvar redefine = __webpack_require__(35);\nvar hide = __webpack_require__(6);\nvar Iterators = __webpack_require__(20);\nvar $iterCreate = __webpack_require__(59);\nvar setToStringTag = __webpack_require__(24);\nvar getPrototypeOf = __webpack_require__(29);\nvar ITERATOR = __webpack_require__(9)('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzQuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2l0ZXItZGVmaW5lLmpzP2JjODAiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xudmFyIExJQlJBUlkgPSByZXF1aXJlKCcuL19saWJyYXJ5Jyk7XG52YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xudmFyIHJlZGVmaW5lID0gcmVxdWlyZSgnLi9fcmVkZWZpbmUnKTtcbnZhciBoaWRlID0gcmVxdWlyZSgnLi9faGlkZScpO1xudmFyIEl0ZXJhdG9ycyA9IHJlcXVpcmUoJy4vX2l0ZXJhdG9ycycpO1xudmFyICRpdGVyQ3JlYXRlID0gcmVxdWlyZSgnLi9faXRlci1jcmVhdGUnKTtcbnZhciBzZXRUb1N0cmluZ1RhZyA9IHJlcXVpcmUoJy4vX3NldC10by1zdHJpbmctdGFnJyk7XG52YXIgZ2V0UHJvdG90eXBlT2YgPSByZXF1aXJlKCcuL19vYmplY3QtZ3BvJyk7XG52YXIgSVRFUkFUT1IgPSByZXF1aXJlKCcuL193a3MnKSgnaXRlcmF0b3InKTtcbnZhciBCVUdHWSA9ICEoW10ua2V5cyAmJiAnbmV4dCcgaW4gW10ua2V5cygpKTsgLy8gU2FmYXJpIGhhcyBidWdneSBpdGVyYXRvcnMgdy9vIGBuZXh0YFxudmFyIEZGX0lURVJBVE9SID0gJ0BAaXRlcmF0b3InO1xudmFyIEtFWVMgPSAna2V5cyc7XG52YXIgVkFMVUVTID0gJ3ZhbHVlcyc7XG5cbnZhciByZXR1cm5UaGlzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoQmFzZSwgTkFNRSwgQ29uc3RydWN0b3IsIG5leHQsIERFRkFVTFQsIElTX1NFVCwgRk9SQ0VEKSB7XG4gICRpdGVyQ3JlYXRlKENvbnN0cnVjdG9yLCBOQU1FLCBuZXh0KTtcbiAgdmFyIGdldE1ldGhvZCA9IGZ1bmN0aW9uIChraW5kKSB7XG4gICAgaWYgKCFCVUdHWSAmJiBraW5kIGluIHByb3RvKSByZXR1cm4gcHJvdG9ba2luZF07XG4gICAgc3dpdGNoIChraW5kKSB7XG4gICAgICBjYXNlIEtFWVM6IHJldHVybiBmdW5jdGlvbiBrZXlzKCkgeyByZXR1cm4gbmV3IENvbnN0cnVjdG9yKHRoaXMsIGtpbmQpOyB9O1xuICAgICAgY2FzZSBWQUxVRVM6IHJldHVybiBmdW5jdGlvbiB2YWx1ZXMoKSB7IHJldHVybiBuZXcgQ29uc3RydWN0b3IodGhpcywga2luZCk7IH07XG4gICAgfSByZXR1cm4gZnVuY3Rpb24gZW50cmllcygpIHsgcmV0dXJuIG5ldyBDb25zdHJ1Y3Rvcih0aGlzLCBraW5kKTsgfTtcbiAgfTtcbiAgdmFyIFRBRyA9IE5BTUUgKyAnIEl0ZXJhdG9yJztcbiAgdmFyIERFRl9WQUxVRVMgPSBERUZBVUxUID09IFZBTFVFUztcbiAgdmFyIFZBTFVFU19CVUcgPSBmYWxzZTtcbiAgdmFyIHByb3RvID0gQmFzZS5wcm90b3R5cGU7XG4gIHZhciAkbmF0aXZlID0gcHJvdG9bSVRFUkFUT1JdIHx8IHByb3RvW0ZGX0lURVJBVE9SXSB8fCBERUZBVUxUICYmIHByb3RvW0RFRkFVTFRdO1xuICB2YXIgJGRlZmF1bHQgPSAkbmF0aXZlIHx8IGdldE1ldGhvZChERUZBVUxUKTtcbiAgdmFyICRlbnRyaWVzID0gREVGQVVMVCA/ICFERUZfVkFMVUVTID8gJGRlZmF1bHQgOiBnZXRNZXRob2QoJ2VudHJpZXMnKSA6IHVuZGVmaW5lZDtcbiAgdmFyICRhbnlOYXRpdmUgPSBOQU1FID09ICdBcnJheScgPyBwcm90by5lbnRyaWVzIHx8ICRuYXRpdmUgOiAkbmF0aXZlO1xuICB2YXIgbWV0aG9kcywga2V5LCBJdGVyYXRvclByb3RvdHlwZTtcbiAgLy8gRml4IG5hdGl2ZVxuICBpZiAoJGFueU5hdGl2ZSkge1xuICAgIEl0ZXJhdG9yUHJvdG90eXBlID0gZ2V0UHJvdG90eXBlT2YoJGFueU5hdGl2ZS5jYWxsKG5ldyBCYXNlKCkpKTtcbiAgICBpZiAoSXRlcmF0b3JQcm90b3R5cGUgIT09IE9iamVjdC5wcm90b3R5cGUgJiYgSXRlcmF0b3JQcm90b3R5cGUubmV4dCkge1xuICAgICAgLy8gU2V0IEBAdG9TdHJpbmdUYWcgdG8gbmF0aXZlIGl0ZXJhdG9yc1xuICAgICAgc2V0VG9TdHJpbmdUYWcoSXRlcmF0b3JQcm90b3R5cGUsIFRBRywgdHJ1ZSk7XG4gICAgICAvLyBmaXggZm9yIHNvbWUgb2xkIGVuZ2luZXNcbiAgICAgIGlmICghTElCUkFSWSAmJiB0eXBlb2YgSXRlcmF0b3JQcm90b3R5cGVbSVRFUkFUT1JdICE9ICdmdW5jdGlvbicpIGhpZGUoSXRlcmF0b3JQcm90b3R5cGUsIElURVJBVE9SLCByZXR1cm5UaGlzKTtcbiAgICB9XG4gIH1cbiAgLy8gZml4IEFycmF5I3t2YWx1ZXMsIEBAaXRlcmF0b3J9Lm5hbWUgaW4gVjggLyBGRlxuICBpZiAoREVGX1ZBTFVFUyAmJiAkbmF0aXZlICYmICRuYXRpdmUubmFtZSAhPT0gVkFMVUVTKSB7XG4gICAgVkFMVUVTX0JVRyA9IHRydWU7XG4gICAgJGRlZmF1bHQgPSBmdW5jdGlvbiB2YWx1ZXMoKSB7IHJldHVybiAkbmF0aXZlLmNhbGwodGhpcyk7IH07XG4gIH1cbiAgLy8gRGVmaW5lIGl0ZXJhdG9yXG4gIGlmICgoIUxJQlJBUlkgfHwgRk9SQ0VEKSAmJiAoQlVHR1kgfHwgVkFMVUVTX0JVRyB8fCAhcHJvdG9bSVRFUkFUT1JdKSkge1xuICAgIGhpZGUocHJvdG8sIElURVJBVE9SLCAkZGVmYXVsdCk7XG4gIH1cbiAgLy8gUGx1ZyBmb3IgbGlicmFyeVxuICBJdGVyYXRvcnNbTkFNRV0gPSAkZGVmYXVsdDtcbiAgSXRlcmF0b3JzW1RBR10gPSByZXR1cm5UaGlzO1xuICBpZiAoREVGQVVMVCkge1xuICAgIG1ldGhvZHMgPSB7XG4gICAgICB2YWx1ZXM6IERFRl9WQUxVRVMgPyAkZGVmYXVsdCA6IGdldE1ldGhvZChWQUxVRVMpLFxuICAgICAga2V5czogSVNfU0VUID8gJGRlZmF1bHQgOiBnZXRNZXRob2QoS0VZUyksXG4gICAgICBlbnRyaWVzOiAkZW50cmllc1xuICAgIH07XG4gICAgaWYgKEZPUkNFRCkgZm9yIChrZXkgaW4gbWV0aG9kcykge1xuICAgICAgaWYgKCEoa2V5IGluIHByb3RvKSkgcmVkZWZpbmUocHJvdG8sIGtleSwgbWV0aG9kc1trZXldKTtcbiAgICB9IGVsc2UgJGV4cG9ydCgkZXhwb3J0LlAgKyAkZXhwb3J0LkYgKiAoQlVHR1kgfHwgVkFMVUVTX0JVRyksIE5BTUUsIG1ldGhvZHMpO1xuICB9XG4gIHJldHVybiBtZXRob2RzO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19pdGVyLWRlZmluZS5qc1xuLy8gbW9kdWxlIGlkID0gMzRcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///34\n")},function(module,exports,__webpack_require__){eval("module.exports = __webpack_require__(6);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzUuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3JlZGVmaW5lLmpzP2YzY2QiXSwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL19oaWRlJyk7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fcmVkZWZpbmUuanNcbi8vIG1vZHVsZSBpZCA9IDM1XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///35\n")},function(module,exports,__webpack_require__){eval("var has = __webpack_require__(2);\nvar toIObject = __webpack_require__(8);\nvar arrayIndexOf = __webpack_require__(62)(false);\nvar IE_PROTO = __webpack_require__(16)('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzYuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1rZXlzLWludGVybmFsLmpzPzIxYjgiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIGhhcyA9IHJlcXVpcmUoJy4vX2hhcycpO1xudmFyIHRvSU9iamVjdCA9IHJlcXVpcmUoJy4vX3RvLWlvYmplY3QnKTtcbnZhciBhcnJheUluZGV4T2YgPSByZXF1aXJlKCcuL19hcnJheS1pbmNsdWRlcycpKGZhbHNlKTtcbnZhciBJRV9QUk9UTyA9IHJlcXVpcmUoJy4vX3NoYXJlZC1rZXknKSgnSUVfUFJPVE8nKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob2JqZWN0LCBuYW1lcykge1xuICB2YXIgTyA9IHRvSU9iamVjdChvYmplY3QpO1xuICB2YXIgaSA9IDA7XG4gIHZhciByZXN1bHQgPSBbXTtcbiAgdmFyIGtleTtcbiAgZm9yIChrZXkgaW4gTykgaWYgKGtleSAhPSBJRV9QUk9UTykgaGFzKE8sIGtleSkgJiYgcmVzdWx0LnB1c2goa2V5KTtcbiAgLy8gRG9uJ3QgZW51bSBidWcgJiBoaWRkZW4ga2V5c1xuICB3aGlsZSAobmFtZXMubGVuZ3RoID4gaSkgaWYgKGhhcyhPLCBrZXkgPSBuYW1lc1tpKytdKSkge1xuICAgIH5hcnJheUluZGV4T2YocmVzdWx0LCBrZXkpIHx8IHJlc3VsdC5wdXNoKGtleSk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fb2JqZWN0LWtleXMtaW50ZXJuYWwuanNcbi8vIG1vZHVsZSBpZCA9IDM2XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///36\n")},function(module,exports){eval("var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzcuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2NvZi5qcz80N2QzIl0sInNvdXJjZXNDb250ZW50IjpbInZhciB0b1N0cmluZyA9IHt9LnRvU3RyaW5nO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gdG9TdHJpbmcuY2FsbChpdCkuc2xpY2UoOCwgLTEpO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19jb2YuanNcbi8vIG1vZHVsZSBpZCA9IDM3XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///37\n")},function(module,exports){eval("exports.f = Object.getOwnPropertySymbols;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzguanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1nb3BzLmpzP2Q2NDQiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0cy5mID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scztcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3QtZ29wcy5qc1xuLy8gbW9kdWxlIGlkID0gMzhcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///38\n")},function(module,exports,__webpack_require__){eval("// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = __webpack_require__(36);\nvar hiddenKeys = __webpack_require__(23).concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzkuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1nb3BuLmpzPzlmNDQiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gMTkuMS4yLjcgLyAxNS4yLjMuNCBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhPKVxudmFyICRrZXlzID0gcmVxdWlyZSgnLi9fb2JqZWN0LWtleXMtaW50ZXJuYWwnKTtcbnZhciBoaWRkZW5LZXlzID0gcmVxdWlyZSgnLi9fZW51bS1idWcta2V5cycpLmNvbmNhdCgnbGVuZ3RoJywgJ3Byb3RvdHlwZScpO1xuXG5leHBvcnRzLmYgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyB8fCBmdW5jdGlvbiBnZXRPd25Qcm9wZXJ0eU5hbWVzKE8pIHtcbiAgcmV0dXJuICRrZXlzKE8sIGhpZGRlbktleXMpO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3QtZ29wbi5qc1xuLy8gbW9kdWxlIGlkID0gMzlcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///39\n")},function(module,exports,__webpack_require__){eval("var pIE = __webpack_require__(27);\nvar createDesc = __webpack_require__(14);\nvar toIObject = __webpack_require__(8);\nvar toPrimitive = __webpack_require__(18);\nvar has = __webpack_require__(2);\nvar IE8_DOM_DEFINE = __webpack_require__(31);\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = __webpack_require__(4) ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDAuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1nb3BkLmpzPzJjYTYiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIHBJRSA9IHJlcXVpcmUoJy4vX29iamVjdC1waWUnKTtcbnZhciBjcmVhdGVEZXNjID0gcmVxdWlyZSgnLi9fcHJvcGVydHktZGVzYycpO1xudmFyIHRvSU9iamVjdCA9IHJlcXVpcmUoJy4vX3RvLWlvYmplY3QnKTtcbnZhciB0b1ByaW1pdGl2ZSA9IHJlcXVpcmUoJy4vX3RvLXByaW1pdGl2ZScpO1xudmFyIGhhcyA9IHJlcXVpcmUoJy4vX2hhcycpO1xudmFyIElFOF9ET01fREVGSU5FID0gcmVxdWlyZSgnLi9faWU4LWRvbS1kZWZpbmUnKTtcbnZhciBnT1BEID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtcblxuZXhwb3J0cy5mID0gcmVxdWlyZSgnLi9fZGVzY3JpcHRvcnMnKSA/IGdPUEQgOiBmdW5jdGlvbiBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTywgUCkge1xuICBPID0gdG9JT2JqZWN0KE8pO1xuICBQID0gdG9QcmltaXRpdmUoUCwgdHJ1ZSk7XG4gIGlmIChJRThfRE9NX0RFRklORSkgdHJ5IHtcbiAgICByZXR1cm4gZ09QRChPLCBQKTtcbiAgfSBjYXRjaCAoZSkgeyAvKiBlbXB0eSAqLyB9XG4gIGlmIChoYXMoTywgUCkpIHJldHVybiBjcmVhdGVEZXNjKCFwSUUuZi5jYWxsKE8sIFApLCBPW1BdKTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fb2JqZWN0LWdvcGQuanNcbi8vIG1vZHVsZSBpZCA9IDQwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///40\n")},function(module,__webpack_exports__,__webpack_require__){"use strict";eval("Object.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__style_scss__ = __webpack_require__(42);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__style_scss___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__style_scss__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__sidebar_js__ = __webpack_require__(43);\n// Include stylesheet\n\n\n// Import Click to Tweet Block\n//import './block.js';\n\n// Import Gutenberg Boilerplate Sidebar\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDEuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvaW5kZXguanM/ODc0OSJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBJbmNsdWRlIHN0eWxlc2hlZXRcbmltcG9ydCAnLi9zdHlsZS5zY3NzJztcblxuLy8gSW1wb3J0IENsaWNrIHRvIFR3ZWV0IEJsb2NrXG4vL2ltcG9ydCAnLi9ibG9jay5qcyc7XG5cbi8vIEltcG9ydCBHdXRlbmJlcmcgQm9pbGVycGxhdGUgU2lkZWJhclxuaW1wb3J0ICcuL3NpZGViYXIuanMnO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vc3JjL2luZGV4LmpzXG4vLyBtb2R1bGUgaWQgPSA0MVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///41\n")},function(module,exports){eval("// removed by extract-text-webpack-plugin//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDIuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvc3R5bGUuc2Nzcz9hY2Q4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIHJlbW92ZWQgYnkgZXh0cmFjdC10ZXh0LXdlYnBhY2stcGx1Z2luXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9zcmMvc3R5bGUuc2Nzc1xuLy8gbW9kdWxlIGlkID0gNDJcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///42\n")},function(module,__webpack_exports__,__webpack_require__){"use strict";eval("/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_get_prototype_of__ = __webpack_require__(44);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_get_prototype_of___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_get_prototype_of__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__ = __webpack_require__(49);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass__ = __webpack_require__(50);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn__ = __webpack_require__(54);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits__ = __webpack_require__(80);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits__);\n\n\n\n\n\n/**\n * Internal block libraries.\n * @since 2.2.3\n */\nvar __ = wp.i18n.__;\nvar _wp$editPost = wp.editPost,\n PluginSidebar = _wp$editPost.PluginSidebar,\n PluginSidebarMoreMenuItem = _wp$editPost.PluginSidebarMoreMenuItem;\nvar _wp$components = wp.components,\n PanelBody = _wp$components.PanelBody,\n TextControl = _wp$components.TextControl,\n Button = _wp$components.Button,\n Notice = _wp$components.Notice;\nvar _wp$element = wp.element,\n Component = _wp$element.Component,\n Fragment = _wp$element.Fragment;\nvar withSelect = wp.data.withSelect;\nvar compose = wp.compose.compose;\n\n\nvar LanguageSwitcherNotice = function LanguageSwitcherNotice(props) {\n\tif (WPGlobusGutenberg.pagenow == WPGlobusGutenberg.postNewPage) {\n\t\treturn wp.element.createElement('div', null);\n\t}\n\n\tvar dev = '';\n\tif ('undefined' !== typeof WPGlobusBlockEditorDevelop && !WPGlobusBlockEditorDevelop.production) {\n\t\tdev = '(develop)';\n\t}\n\n\treturn wp.element.createElement(\n\t\tNotice,\n\t\t{ className: 'wpglobus-block-editor-panel__notice', status: 'informational', isDismissible: false },\n\t\t__('Select language'),\n\t\t' ',\n\t\tdev\n\t);\n};\n\nvar LanguageSwitcher = function LanguageSwitcher(props) {\n\n\tif (WPGlobusGutenberg.pagenow == WPGlobusGutenberg.postNewPage) {\n\t\treturn wp.element.createElement(\n\t\t\t'div',\n\t\t\t{ className: 'wpglobus-block-editor-panel__switcher-box' },\n\t\t\tWPGlobusGutenberg.i18n.save_post\n\t\t);\n\t}\n\n\tvar language = WPGlobusGutenberg.language;\n\tvar flagsUrl = WPGlobusGutenberg.flags_url;\n\tvar enabledLanguages = WPGlobusCoreData.enabled_languages;\n\tvar languageNames = WPGlobusCoreData.en_language_name;\n\tvar ref = location.href;\n\tvar refs = {};\n\tfor (var key in enabledLanguages) {\n\t\tif (-1 == ref.indexOf('language=' + language)) {\n\t\t\trefs[enabledLanguages[key]] = ref + '&language=' + enabledLanguages[key];\n\t\t} else {\n\t\t\trefs[enabledLanguages[key]] = ref.replace('language=' + language, 'language=' + enabledLanguages[key]);\n\t\t}\n\t}\n\n\treturn wp.element.createElement(\n\t\t'div',\n\t\t{ className: 'wpglobus-block-editor-panel__switcher-box' },\n\t\twp.element.createElement(\n\t\t\t'ul',\n\t\t\tnull,\n\t\t\tenabledLanguages.map(function (lang) {\n\t\t\t\treturn wp.element.createElement(\n\t\t\t\t\t'li',\n\t\t\t\t\t{ key: lang },\n\t\t\t\t\twp.element.createElement('img', { className: 'wpglobus-block-editor-panel__flag', height: '20px', width: '20px', src: flagsUrl[lang] }),\n\t\t\t\t\t'\\xA0\\xA0',\n\t\t\t\t\twp.element.createElement(\n\t\t\t\t\t\tButton,\n\t\t\t\t\t\t{ href: refs[lang], isSmall: true, isPrimary: true },\n\t\t\t\t\t\tlanguageNames[lang]\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t})\n\t\t)\n\t);\n};\n\nvar WPGlobusInfo = function WPGlobusInfo(props) {\n\treturn wp.element.createElement(\n\t\t'div',\n\t\t{ className: 'wpglobus-block-editor-panel__info' },\n\t\twp.element.createElement(\n\t\t\tButton,\n\t\t\t{ href: props.href, target: '_blank', isLink: true },\n\t\t\t__('WPGlobus Premium Add-ons')\n\t\t)\n\t);\n};\n\nvar SettingsLink = function SettingsLink(props) {\n\treturn wp.element.createElement(\n\t\t'div',\n\t\t{ className: 'wpglobus-block-editor-panel__settings-link' },\n\t\twp.element.createElement(\n\t\t\tButton,\n\t\t\t{ href: props.href, isLink: true },\n\t\t\t__('Settings')\n\t\t)\n\t);\n};\n\nvar registerPlugin = wp.plugins.registerPlugin;\n\nvar WPGlobus_BlockEditor = function (_Component) {\n\t__WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits___default()(WPGlobus_BlockEditor, _Component);\n\n\tfunction WPGlobus_BlockEditor() {\n\t\t__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, WPGlobus_BlockEditor);\n\n\t\tvar _this = __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn___default()(this, (WPGlobus_BlockEditor.__proto__ || __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_get_prototype_of___default()(WPGlobus_BlockEditor)).apply(this, arguments));\n\n\t\tvar dev = '';\n\t\tif ('undefined' !== typeof WPGlobusBlockEditorDevelop && !WPGlobusBlockEditorDevelop.production) {\n\t\t\tdev = ' (develop)';\n\t\t}\n\n\t\t_this.state = {\n\t\t\toptionsTabUrl: WPGlobusGutenberg.block_editor_tab_url,\n\t\t\tstoreLink: WPGlobusGutenberg.store_link,\n\t\t\theaderTitle: __('WPGlobus') + dev,\n\t\t\tmoreMenuItemTitle: __('WPGlobus')\n\t\t};\n\n\t\tsetTimeout(function () {\n\t\t\tvar buttons = document.getElementsByClassName('components-icon-button');\n\t\t\tfor (var i = 0; i < buttons.length; i++) {\n\t\t\t\tvar status = buttons[i].getAttribute('aria-label');\n\t\t\t\t//if ( status == 'WPGlobus' ) { \n\t\t\t\tif (-1 != status.indexOf('WPGlobus')) {\n\t\t\t\t\tvar done = buttons[i].dataset.done;\n\t\t\t\t\tif ('undefined' === typeof done) {\n\t\t\t\t\t\tvar content = buttons[i].innerHTML;\n\t\t\t\t\t\t//@todo buttons[i].classList.add('wpglobus-switcher-button');\n\t\t\t\t\t\tbuttons[i].innerHTML = content + '<img height=\"20px\" width=\"20px\" src=\"' + WPGlobusGutenberg.flags_url[WPGlobusGutenberg.language] + '\" /> ' + WPGlobusAdmin.data.en_language_name[WPGlobusGutenberg.language];\n\t\t\t\t\t\tbuttons[i].dataset.done = 'yes';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}, 500);\n\t\treturn _this;\n\t}\n\n\t__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass___default()(WPGlobus_BlockEditor, [{\n\t\tkey: 'render',\n\t\tvalue: function render() {\n\t\t\treturn wp.element.createElement(\n\t\t\t\tFragment,\n\t\t\t\tnull,\n\t\t\t\twp.element.createElement(\n\t\t\t\t\tPluginSidebarMoreMenuItem,\n\t\t\t\t\t{\n\t\t\t\t\t\ttarget: 'wpglobus-gutenberg-sidebar'\n\t\t\t\t\t},\n\t\t\t\t\tthis.state.moreMenuItemTitle\n\t\t\t\t),\n\t\t\t\twp.element.createElement(\n\t\t\t\t\tPluginSidebar,\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'wpglobus-gutenberg-sidebar',\n\t\t\t\t\t\ttitle: this.state.headerTitle\n\t\t\t\t\t},\n\t\t\t\t\twp.element.createElement(\n\t\t\t\t\t\tPanelBody,\n\t\t\t\t\t\t{ className: 'wpglobus-block-editor-panel__body' },\n\t\t\t\t\t\twp.element.createElement(LanguageSwitcherNotice, null),\n\t\t\t\t\t\twp.element.createElement(LanguageSwitcher, null),\n\t\t\t\t\t\twp.element.createElement(\n\t\t\t\t\t\t\t'div',\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\twp.element.createElement(WPGlobusInfo, { href: this.state.storeLink }),\n\t\t\t\t\t\t\twp.element.createElement(SettingsLink, { href: this.state.optionsTabUrl })\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t}]);\n\n\treturn WPGlobus_BlockEditor;\n}(Component);\n\nvar WPGBE = withSelect(function (select, _ref) {\n\tvar forceIsSaving = _ref.forceIsSaving;\n\n\tvar _select = select('core/editor'),\n\t getCurrentPostId = _select.getCurrentPostId,\n\t isSavingPost = _select.isSavingPost,\n\t isPublishingPost = _select.isPublishingPost,\n\t isAutosavingPost = _select.isAutosavingPost;\n\n\treturn {\n\t\tpostId: getCurrentPostId(),\n\t\tisSaving: forceIsSaving || isSavingPost(),\n\t\tisAutoSaving: isAutosavingPost(),\n\t\tisPublishing: isPublishingPost()\n\t};\n})(WPGlobus_BlockEditor);\n\nregisterPlugin('wpglobus-gutenberg', {\n\ticon: 'admin-site',\n\trender: WPGBE\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvc2lkZWJhci5qcz8yNWQ1Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfT2JqZWN0JGdldFByb3RvdHlwZU9mIGZyb20gJ2JhYmVsLXJ1bnRpbWUvY29yZS1qcy9vYmplY3QvZ2V0LXByb3RvdHlwZS1vZic7XG5pbXBvcnQgX2NsYXNzQ2FsbENoZWNrIGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9jbGFzc0NhbGxDaGVjayc7XG5pbXBvcnQgX2NyZWF0ZUNsYXNzIGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9jcmVhdGVDbGFzcyc7XG5pbXBvcnQgX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4gZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4nO1xuaW1wb3J0IF9pbmhlcml0cyBmcm9tICdiYWJlbC1ydW50aW1lL2hlbHBlcnMvaW5oZXJpdHMnO1xuLyoqXG4gKiBJbnRlcm5hbCBibG9jayBsaWJyYXJpZXMuXG4gKiBAc2luY2UgMi4yLjNcbiAqL1xudmFyIF9fID0gd3AuaTE4bi5fXztcbnZhciBfd3AkZWRpdFBvc3QgPSB3cC5lZGl0UG9zdCxcbiAgICBQbHVnaW5TaWRlYmFyID0gX3dwJGVkaXRQb3N0LlBsdWdpblNpZGViYXIsXG4gICAgUGx1Z2luU2lkZWJhck1vcmVNZW51SXRlbSA9IF93cCRlZGl0UG9zdC5QbHVnaW5TaWRlYmFyTW9yZU1lbnVJdGVtO1xudmFyIF93cCRjb21wb25lbnRzID0gd3AuY29tcG9uZW50cyxcbiAgICBQYW5lbEJvZHkgPSBfd3AkY29tcG9uZW50cy5QYW5lbEJvZHksXG4gICAgVGV4dENvbnRyb2wgPSBfd3AkY29tcG9uZW50cy5UZXh0Q29udHJvbCxcbiAgICBCdXR0b24gPSBfd3AkY29tcG9uZW50cy5CdXR0b24sXG4gICAgTm90aWNlID0gX3dwJGNvbXBvbmVudHMuTm90aWNlO1xudmFyIF93cCRlbGVtZW50ID0gd3AuZWxlbWVudCxcbiAgICBDb21wb25lbnQgPSBfd3AkZWxlbWVudC5Db21wb25lbnQsXG4gICAgRnJhZ21lbnQgPSBfd3AkZWxlbWVudC5GcmFnbWVudDtcbnZhciB3aXRoU2VsZWN0ID0gd3AuZGF0YS53aXRoU2VsZWN0O1xudmFyIGNvbXBvc2UgPSB3cC5jb21wb3NlLmNvbXBvc2U7XG5cblxudmFyIExhbmd1YWdlU3dpdGNoZXJOb3RpY2UgPSBmdW5jdGlvbiBMYW5ndWFnZVN3aXRjaGVyTm90aWNlKHByb3BzKSB7XG5cdGlmIChXUEdsb2J1c0d1dGVuYmVyZy5wYWdlbm93ID09IFdQR2xvYnVzR3V0ZW5iZXJnLnBvc3ROZXdQYWdlKSB7XG5cdFx0cmV0dXJuIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JywgbnVsbCk7XG5cdH1cblxuXHR2YXIgZGV2ID0gJyc7XG5cdGlmICgndW5kZWZpbmVkJyAhPT0gdHlwZW9mIFdQR2xvYnVzQmxvY2tFZGl0b3JEZXZlbG9wICYmICFXUEdsb2J1c0Jsb2NrRWRpdG9yRGV2ZWxvcC5wcm9kdWN0aW9uKSB7XG5cdFx0ZGV2ID0gJyhkZXZlbG9wKSc7XG5cdH1cblxuXHRyZXR1cm4gd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdE5vdGljZSxcblx0XHR7IGNsYXNzTmFtZTogJ3dwZ2xvYnVzLWJsb2NrLWVkaXRvci1wYW5lbF9fbm90aWNlJywgc3RhdHVzOiAnaW5mb3JtYXRpb25hbCcsIGlzRGlzbWlzc2libGU6IGZhbHNlIH0sXG5cdFx0X18oJ1NlbGVjdCBsYW5ndWFnZScpLFxuXHRcdCcgJyxcblx0XHRkZXZcblx0KTtcbn07XG5cbnZhciBMYW5ndWFnZVN3aXRjaGVyID0gZnVuY3Rpb24gTGFuZ3VhZ2VTd2l0Y2hlcihwcm9wcykge1xuXG5cdGlmIChXUEdsb2J1c0d1dGVuYmVyZy5wYWdlbm93ID09IFdQR2xvYnVzR3V0ZW5iZXJnLnBvc3ROZXdQYWdlKSB7XG5cdFx0cmV0dXJuIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdCdkaXYnLFxuXHRcdFx0eyBjbGFzc05hbWU6ICd3cGdsb2J1cy1ibG9jay1lZGl0b3ItcGFuZWxfX3N3aXRjaGVyLWJveCcgfSxcblx0XHRcdFdQR2xvYnVzR3V0ZW5iZXJnLmkxOG4uc2F2ZV9wb3N0XG5cdFx0KTtcblx0fVxuXG5cdHZhciBsYW5ndWFnZSA9IFdQR2xvYnVzR3V0ZW5iZXJnLmxhbmd1YWdlO1xuXHR2YXIgZmxhZ3NVcmwgPSBXUEdsb2J1c0d1dGVuYmVyZy5mbGFnc191cmw7XG5cdHZhciBlbmFibGVkTGFuZ3VhZ2VzID0gV1BHbG9idXNDb3JlRGF0YS5lbmFibGVkX2xhbmd1YWdlcztcblx0dmFyIGxhbmd1YWdlTmFtZXMgPSBXUEdsb2J1c0NvcmVEYXRhLmVuX2xhbmd1YWdlX25hbWU7XG5cdHZhciByZWYgPSBsb2NhdGlvbi5ocmVmO1xuXHR2YXIgcmVmcyA9IHt9O1xuXHRmb3IgKHZhciBrZXkgaW4gZW5hYmxlZExhbmd1YWdlcykge1xuXHRcdGlmICgtMSA9PSByZWYuaW5kZXhPZignbGFuZ3VhZ2U9JyArIGxhbmd1YWdlKSkge1xuXHRcdFx0cmVmc1tlbmFibGVkTGFuZ3VhZ2VzW2tleV1dID0gcmVmICsgJyZsYW5ndWFnZT0nICsgZW5hYmxlZExhbmd1YWdlc1trZXldO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZWZzW2VuYWJsZWRMYW5ndWFnZXNba2V5XV0gPSByZWYucmVwbGFjZSgnbGFuZ3VhZ2U9JyArIGxhbmd1YWdlLCAnbGFuZ3VhZ2U9JyArIGVuYWJsZWRMYW5ndWFnZXNba2V5XSk7XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHQnZGl2Jyxcblx0XHR7IGNsYXNzTmFtZTogJ3dwZ2xvYnVzLWJsb2NrLWVkaXRvci1wYW5lbF9fc3dpdGNoZXItYm94JyB9LFxuXHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdCd1bCcsXG5cdFx0XHRudWxsLFxuXHRcdFx0ZW5hYmxlZExhbmd1YWdlcy5tYXAoZnVuY3Rpb24gKGxhbmcpIHtcblx0XHRcdFx0cmV0dXJuIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdFx0XHQnbGknLFxuXHRcdFx0XHRcdHsga2V5OiBsYW5nIH0sXG5cdFx0XHRcdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KCdpbWcnLCB7IGNsYXNzTmFtZTogJ3dwZ2xvYnVzLWJsb2NrLWVkaXRvci1wYW5lbF9fZmxhZycsIGhlaWdodDogJzIwcHgnLCB3aWR0aDogJzIwcHgnLCBzcmM6IGZsYWdzVXJsW2xhbmddIH0pLFxuXHRcdFx0XHRcdCdcXHhBMFxceEEwJyxcblx0XHRcdFx0XHR3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRcdFx0XHRCdXR0b24sXG5cdFx0XHRcdFx0XHR7IGhyZWY6IHJlZnNbbGFuZ10sIGlzU21hbGw6IHRydWUsIGlzUHJpbWFyeTogdHJ1ZSB9LFxuXHRcdFx0XHRcdFx0bGFuZ3VhZ2VOYW1lc1tsYW5nXVxuXHRcdFx0XHRcdClcblx0XHRcdFx0KTtcblx0XHRcdH0pXG5cdFx0KVxuXHQpO1xufTtcblxudmFyIFdQR2xvYnVzSW5mbyA9IGZ1bmN0aW9uIFdQR2xvYnVzSW5mbyhwcm9wcykge1xuXHRyZXR1cm4gd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdCdkaXYnLFxuXHRcdHsgY2xhc3NOYW1lOiAnd3BnbG9idXMtYmxvY2stZWRpdG9yLXBhbmVsX19pbmZvJyB9LFxuXHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdEJ1dHRvbixcblx0XHRcdHsgaHJlZjogcHJvcHMuaHJlZiwgdGFyZ2V0OiAnX2JsYW5rJywgaXNMaW5rOiB0cnVlIH0sXG5cdFx0XHRfXygnV1BHbG9idXMgUHJlbWl1bSBBZGQtb25zJylcblx0XHQpXG5cdCk7XG59O1xuXG52YXIgU2V0dGluZ3NMaW5rID0gZnVuY3Rpb24gU2V0dGluZ3NMaW5rKHByb3BzKSB7XG5cdHJldHVybiB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0J2RpdicsXG5cdFx0eyBjbGFzc05hbWU6ICd3cGdsb2J1cy1ibG9jay1lZGl0b3ItcGFuZWxfX3NldHRpbmdzLWxpbmsnIH0sXG5cdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0QnV0dG9uLFxuXHRcdFx0eyBocmVmOiBwcm9wcy5ocmVmLCBpc0xpbms6IHRydWUgfSxcblx0XHRcdF9fKCdTZXR0aW5ncycpXG5cdFx0KVxuXHQpO1xufTtcblxudmFyIHJlZ2lzdGVyUGx1Z2luID0gd3AucGx1Z2lucy5yZWdpc3RlclBsdWdpbjtcblxudmFyIFdQR2xvYnVzX0Jsb2NrRWRpdG9yID0gZnVuY3Rpb24gKF9Db21wb25lbnQpIHtcblx0X2luaGVyaXRzKFdQR2xvYnVzX0Jsb2NrRWRpdG9yLCBfQ29tcG9uZW50KTtcblxuXHRmdW5jdGlvbiBXUEdsb2J1c19CbG9ja0VkaXRvcigpIHtcblx0XHRfY2xhc3NDYWxsQ2hlY2sodGhpcywgV1BHbG9idXNfQmxvY2tFZGl0b3IpO1xuXG5cdFx0dmFyIF90aGlzID0gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgKFdQR2xvYnVzX0Jsb2NrRWRpdG9yLl9fcHJvdG9fXyB8fCBfT2JqZWN0JGdldFByb3RvdHlwZU9mKFdQR2xvYnVzX0Jsb2NrRWRpdG9yKSkuYXBwbHkodGhpcywgYXJndW1lbnRzKSk7XG5cblx0XHR2YXIgZGV2ID0gJyc7XG5cdFx0aWYgKCd1bmRlZmluZWQnICE9PSB0eXBlb2YgV1BHbG9idXNCbG9ja0VkaXRvckRldmVsb3AgJiYgIVdQR2xvYnVzQmxvY2tFZGl0b3JEZXZlbG9wLnByb2R1Y3Rpb24pIHtcblx0XHRcdGRldiA9ICcgKGRldmVsb3ApJztcblx0XHR9XG5cblx0XHRfdGhpcy5zdGF0ZSA9IHtcblx0XHRcdG9wdGlvbnNUYWJVcmw6IFdQR2xvYnVzR3V0ZW5iZXJnLmJsb2NrX2VkaXRvcl90YWJfdXJsLFxuXHRcdFx0c3RvcmVMaW5rOiBXUEdsb2J1c0d1dGVuYmVyZy5zdG9yZV9saW5rLFxuXHRcdFx0aGVhZGVyVGl0bGU6IF9fKCdXUEdsb2J1cycpICsgZGV2LFxuXHRcdFx0bW9yZU1lbnVJdGVtVGl0bGU6IF9fKCdXUEdsb2J1cycpXG5cdFx0fTtcblxuXHRcdHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuXHRcdFx0dmFyIGJ1dHRvbnMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdjb21wb25lbnRzLWljb24tYnV0dG9uJyk7XG5cdFx0XHRmb3IgKHZhciBpID0gMDsgaSA8IGJ1dHRvbnMubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0dmFyIHN0YXR1cyA9IGJ1dHRvbnNbaV0uZ2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJyk7XG5cdFx0XHRcdC8vaWYgKCBzdGF0dXMgPT0gJ1dQR2xvYnVzJyApIHsgXG5cdFx0XHRcdGlmICgtMSAhPSBzdGF0dXMuaW5kZXhPZignV1BHbG9idXMnKSkge1xuXHRcdFx0XHRcdHZhciBkb25lID0gYnV0dG9uc1tpXS5kYXRhc2V0LmRvbmU7XG5cdFx0XHRcdFx0aWYgKCd1bmRlZmluZWQnID09PSB0eXBlb2YgZG9uZSkge1xuXHRcdFx0XHRcdFx0dmFyIGNvbnRlbnQgPSBidXR0b25zW2ldLmlubmVySFRNTDtcblx0XHRcdFx0XHRcdC8vQHRvZG8gYnV0dG9uc1tpXS5jbGFzc0xpc3QuYWRkKCd3cGdsb2J1cy1zd2l0Y2hlci1idXR0b24nKTtcblx0XHRcdFx0XHRcdGJ1dHRvbnNbaV0uaW5uZXJIVE1MID0gY29udGVudCArICc8aW1nIGhlaWdodD1cIjIwcHhcIiB3aWR0aD1cIjIwcHhcIiBzcmM9XCInICsgV1BHbG9idXNHdXRlbmJlcmcuZmxhZ3NfdXJsW1dQR2xvYnVzR3V0ZW5iZXJnLmxhbmd1YWdlXSArICdcIiAvPiZuYnNwOycgKyBXUEdsb2J1c0FkbWluLmRhdGEuZW5fbGFuZ3VhZ2VfbmFtZVtXUEdsb2J1c0d1dGVuYmVyZy5sYW5ndWFnZV07XG5cdFx0XHRcdFx0XHRidXR0b25zW2ldLmRhdGFzZXQuZG9uZSA9ICd5ZXMnO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0sIDUwMCk7XG5cdFx0cmV0dXJuIF90aGlzO1xuXHR9XG5cblx0X2NyZWF0ZUNsYXNzKFdQR2xvYnVzX0Jsb2NrRWRpdG9yLCBbe1xuXHRcdGtleTogJ3JlbmRlcicsXG5cdFx0dmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcblx0XHRcdHJldHVybiB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRcdEZyYWdtZW50LFxuXHRcdFx0XHRudWxsLFxuXHRcdFx0XHR3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRcdFx0UGx1Z2luU2lkZWJhck1vcmVNZW51SXRlbSxcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHR0YXJnZXQ6ICd3cGdsb2J1cy1ndXRlbmJlcmctc2lkZWJhcidcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdHRoaXMuc3RhdGUubW9yZU1lbnVJdGVtVGl0bGVcblx0XHRcdFx0KSxcblx0XHRcdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0XHRcdFBsdWdpblNpZGViYXIsXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0bmFtZTogJ3dwZ2xvYnVzLWd1dGVuYmVyZy1zaWRlYmFyJyxcblx0XHRcdFx0XHRcdHRpdGxlOiB0aGlzLnN0YXRlLmhlYWRlclRpdGxlXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHR3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRcdFx0XHRQYW5lbEJvZHksXG5cdFx0XHRcdFx0XHR7IGNsYXNzTmFtZTogJ3dwZ2xvYnVzLWJsb2NrLWVkaXRvci1wYW5lbF9fYm9keScgfSxcblx0XHRcdFx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChMYW5ndWFnZVN3aXRjaGVyTm90aWNlLCBudWxsKSxcblx0XHRcdFx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChMYW5ndWFnZVN3aXRjaGVyLCBudWxsKSxcblx0XHRcdFx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdFx0XHRcdFx0J2RpdicsXG5cdFx0XHRcdFx0XHRcdG51bGwsXG5cdFx0XHRcdFx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChXUEdsb2J1c0luZm8sIHsgaHJlZjogdGhpcy5zdGF0ZS5zdG9yZUxpbmsgfSksXG5cdFx0XHRcdFx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChTZXR0aW5nc0xpbmssIHsgaHJlZjogdGhpcy5zdGF0ZS5vcHRpb25zVGFiVXJsIH0pXG5cdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0KVxuXHRcdFx0XHQpXG5cdFx0XHQpO1xuXHRcdH1cblx0fV0pO1xuXG5cdHJldHVybiBXUEdsb2J1c19CbG9ja0VkaXRvcjtcbn0oQ29tcG9uZW50KTtcblxudmFyIFdQR0JFID0gd2l0aFNlbGVjdChmdW5jdGlvbiAoc2VsZWN0LCBfcmVmKSB7XG5cdHZhciBmb3JjZUlzU2F2aW5nID0gX3JlZi5mb3JjZUlzU2F2aW5nO1xuXG5cdHZhciBfc2VsZWN0ID0gc2VsZWN0KCdjb3JlL2VkaXRvcicpLFxuXHQgICAgZ2V0Q3VycmVudFBvc3RJZCA9IF9zZWxlY3QuZ2V0Q3VycmVudFBvc3RJZCxcblx0ICAgIGlzU2F2aW5nUG9zdCA9IF9zZWxlY3QuaXNTYXZpbmdQb3N0LFxuXHQgICAgaXNQdWJsaXNoaW5nUG9zdCA9IF9zZWxlY3QuaXNQdWJsaXNoaW5nUG9zdCxcblx0ICAgIGlzQXV0b3NhdmluZ1Bvc3QgPSBfc2VsZWN0LmlzQXV0b3NhdmluZ1Bvc3Q7XG5cblx0cmV0dXJuIHtcblx0XHRwb3N0SWQ6IGdldEN1cnJlbnRQb3N0SWQoKSxcblx0XHRpc1NhdmluZzogZm9yY2VJc1NhdmluZyB8fCBpc1NhdmluZ1Bvc3QoKSxcblx0XHRpc0F1dG9TYXZpbmc6IGlzQXV0b3NhdmluZ1Bvc3QoKSxcblx0XHRpc1B1Ymxpc2hpbmc6IGlzUHVibGlzaGluZ1Bvc3QoKVxuXHR9O1xufSkoV1BHbG9idXNfQmxvY2tFZGl0b3IpO1xuXG5yZWdpc3RlclBsdWdpbignd3BnbG9idXMtZ3V0ZW5iZXJnJywge1xuXHRpY29uOiAnYWRtaW4tc2l0ZScsXG5cdHJlbmRlcjogV1BHQkVcbn0pO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vc3JjL3NpZGViYXIuanNcbi8vIG1vZHVsZSBpZCA9IDQzXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///43\n")},function(module,exports,__webpack_require__){eval('module.exports = { "default": __webpack_require__(45), __esModule: true };//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDQuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9jb3JlLWpzL29iamVjdC9nZXQtcHJvdG90eXBlLW9mLmpzPzY3MWUiXSwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSB7IFwiZGVmYXVsdFwiOiByZXF1aXJlKFwiY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9nZXQtcHJvdG90eXBlLW9mXCIpLCBfX2VzTW9kdWxlOiB0cnVlIH07XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9jb3JlLWpzL29iamVjdC9nZXQtcHJvdG90eXBlLW9mLmpzXG4vLyBtb2R1bGUgaWQgPSA0NFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///44\n')},function(module,exports,__webpack_require__){eval("__webpack_require__(46);\nmodule.exports = __webpack_require__(0).Object.getPrototypeOf;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDUuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9nZXQtcHJvdG90eXBlLW9mLmpzPzdkMmUiXSwic291cmNlc0NvbnRlbnQiOlsicmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lczYub2JqZWN0LmdldC1wcm90b3R5cGUtb2YnKTtcbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9fY29yZScpLk9iamVjdC5nZXRQcm90b3R5cGVPZjtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9mbi9vYmplY3QvZ2V0LXByb3RvdHlwZS1vZi5qc1xuLy8gbW9kdWxlIGlkID0gNDVcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///45\n")},function(module,exports,__webpack_require__){eval("// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = __webpack_require__(28);\nvar $getPrototypeOf = __webpack_require__(29);\n\n__webpack_require__(47)('getPrototypeOf', function () {\n return function getPrototypeOf(it) {\n return $getPrototypeOf(toObject(it));\n };\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDYuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2Lm9iamVjdC5nZXQtcHJvdG90eXBlLW9mLmpzPzJhMWUiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gMTkuMS4yLjkgT2JqZWN0LmdldFByb3RvdHlwZU9mKE8pXG52YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuL190by1vYmplY3QnKTtcbnZhciAkZ2V0UHJvdG90eXBlT2YgPSByZXF1aXJlKCcuL19vYmplY3QtZ3BvJyk7XG5cbnJlcXVpcmUoJy4vX29iamVjdC1zYXAnKSgnZ2V0UHJvdG90eXBlT2YnLCBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBmdW5jdGlvbiBnZXRQcm90b3R5cGVPZihpdCkge1xuICAgIHJldHVybiAkZ2V0UHJvdG90eXBlT2YodG9PYmplY3QoaXQpKTtcbiAgfTtcbn0pO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2Lm9iamVjdC5nZXQtcHJvdG90eXBlLW9mLmpzXG4vLyBtb2R1bGUgaWQgPSA0NlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///46\n")},function(module,exports,__webpack_require__){eval("// most Object methods by ES6 should accept primitives\nvar $export = __webpack_require__(5);\nvar core = __webpack_require__(0);\nvar fails = __webpack_require__(11);\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDcuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1zYXAuanM/YmFhNSJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBtb3N0IE9iamVjdCBtZXRob2RzIGJ5IEVTNiBzaG91bGQgYWNjZXB0IHByaW1pdGl2ZXNcbnZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG52YXIgY29yZSA9IHJlcXVpcmUoJy4vX2NvcmUnKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4vX2ZhaWxzJyk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChLRVksIGV4ZWMpIHtcbiAgdmFyIGZuID0gKGNvcmUuT2JqZWN0IHx8IHt9KVtLRVldIHx8IE9iamVjdFtLRVldO1xuICB2YXIgZXhwID0ge307XG4gIGV4cFtLRVldID0gZXhlYyhmbik7XG4gICRleHBvcnQoJGV4cG9ydC5TICsgJGV4cG9ydC5GICogZmFpbHMoZnVuY3Rpb24gKCkgeyBmbigxKTsgfSksICdPYmplY3QnLCBleHApO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3Qtc2FwLmpzXG4vLyBtb2R1bGUgaWQgPSA0N1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///47\n")},function(module,exports){eval("module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDguanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2EtZnVuY3Rpb24uanM/OTRlOSJdLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICBpZiAodHlwZW9mIGl0ICE9ICdmdW5jdGlvbicpIHRocm93IFR5cGVFcnJvcihpdCArICcgaXMgbm90IGEgZnVuY3Rpb24hJyk7XG4gIHJldHVybiBpdDtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fYS1mdW5jdGlvbi5qc1xuLy8gbW9kdWxlIGlkID0gNDhcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///48\n")},function(module,exports,__webpack_require__){"use strict";eval('\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError("Cannot call a class as a function");\n }\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDkuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9oZWxwZXJzL2NsYXNzQ2FsbENoZWNrLmpzPzY2YjkiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmV4cG9ydHMuZGVmYXVsdCA9IGZ1bmN0aW9uIChpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHtcbiAgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpO1xuICB9XG59O1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvaGVscGVycy9jbGFzc0NhbGxDaGVjay5qc1xuLy8gbW9kdWxlIGlkID0gNDlcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///49\n')},function(module,exports,__webpack_require__){"use strict";eval('\n\nexports.__esModule = true;\n\nvar _defineProperty = __webpack_require__(51);\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ("value" in descriptor) descriptor.writable = true;\n (0, _defineProperty2.default)(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTAuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9oZWxwZXJzL2NyZWF0ZUNsYXNzLmpzP2MzMTAiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfZGVmaW5lUHJvcGVydHkgPSByZXF1aXJlKFwiLi4vY29yZS1qcy9vYmplY3QvZGVmaW5lLXByb3BlcnR5XCIpO1xuXG52YXIgX2RlZmluZVByb3BlcnR5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2RlZmluZVByb3BlcnR5KTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH1cblxuZXhwb3J0cy5kZWZhdWx0ID0gZnVuY3Rpb24gKCkge1xuICBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldO1xuICAgICAgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlO1xuICAgICAgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlO1xuICAgICAgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTtcbiAgICAgICgwLCBfZGVmaW5lUHJvcGVydHkyLmRlZmF1bHQpKHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmdW5jdGlvbiAoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7XG4gICAgaWYgKHByb3RvUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTtcbiAgICBpZiAoc3RhdGljUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTtcbiAgICByZXR1cm4gQ29uc3RydWN0b3I7XG4gIH07XG59KCk7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9oZWxwZXJzL2NyZWF0ZUNsYXNzLmpzXG4vLyBtb2R1bGUgaWQgPSA1MFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///50\n')},function(module,exports,__webpack_require__){eval('module.exports = { "default": __webpack_require__(52), __esModule: true };//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTEuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9jb3JlLWpzL29iamVjdC9kZWZpbmUtcHJvcGVydHkuanM/MGI4MyJdLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHsgXCJkZWZhdWx0XCI6IHJlcXVpcmUoXCJjb3JlLWpzL2xpYnJhcnkvZm4vb2JqZWN0L2RlZmluZS1wcm9wZXJ0eVwiKSwgX19lc01vZHVsZTogdHJ1ZSB9O1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvY29yZS1qcy9vYmplY3QvZGVmaW5lLXByb3BlcnR5LmpzXG4vLyBtb2R1bGUgaWQgPSA1MVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///51\n')},function(module,exports,__webpack_require__){eval("__webpack_require__(53);\nvar $Object = __webpack_require__(0).Object;\nmodule.exports = function defineProperty(it, key, desc) {\n return $Object.defineProperty(it, key, desc);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTIuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9kZWZpbmUtcHJvcGVydHkuanM/ZjViMCJdLCJzb3VyY2VzQ29udGVudCI6WyJyZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzNi5vYmplY3QuZGVmaW5lLXByb3BlcnR5Jyk7XG52YXIgJE9iamVjdCA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZXMvX2NvcmUnKS5PYmplY3Q7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGRlZmluZVByb3BlcnR5KGl0LCBrZXksIGRlc2MpIHtcbiAgcmV0dXJuICRPYmplY3QuZGVmaW5lUHJvcGVydHkoaXQsIGtleSwgZGVzYyk7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9kZWZpbmUtcHJvcGVydHkuanNcbi8vIG1vZHVsZSBpZCA9IDUyXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///52\n")},function(module,exports,__webpack_require__){eval("var $export = __webpack_require__(5);\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !__webpack_require__(4), 'Object', { defineProperty: __webpack_require__(3).f });\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2Lm9iamVjdC5kZWZpbmUtcHJvcGVydHkuanM/OTgyOSJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xuLy8gMTkuMS4yLjQgLyAxNS4yLjMuNiBPYmplY3QuZGVmaW5lUHJvcGVydHkoTywgUCwgQXR0cmlidXRlcylcbiRleHBvcnQoJGV4cG9ydC5TICsgJGV4cG9ydC5GICogIXJlcXVpcmUoJy4vX2Rlc2NyaXB0b3JzJyksICdPYmplY3QnLCB7IGRlZmluZVByb3BlcnR5OiByZXF1aXJlKCcuL19vYmplY3QtZHAnKS5mIH0pO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2Lm9iamVjdC5kZWZpbmUtcHJvcGVydHkuanNcbi8vIG1vZHVsZSBpZCA9IDUzXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///53\n")},function(module,exports,__webpack_require__){"use strict";eval('\n\nexports.__esModule = true;\n\nvar _typeof2 = __webpack_require__(33);\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (self, call) {\n if (!self) {\n throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called");\n }\n\n return call && ((typeof call === "undefined" ? "undefined" : (0, _typeof3.default)(call)) === "object" || typeof call === "function") ? call : self;\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTQuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9oZWxwZXJzL3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4uanM/Y2YwYSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxudmFyIF90eXBlb2YyID0gcmVxdWlyZShcIi4uL2hlbHBlcnMvdHlwZW9mXCIpO1xuXG52YXIgX3R5cGVvZjMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF90eXBlb2YyKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH1cblxuZXhwb3J0cy5kZWZhdWx0ID0gZnVuY3Rpb24gKHNlbGYsIGNhbGwpIHtcbiAgaWYgKCFzZWxmKSB7XG4gICAgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpO1xuICB9XG5cbiAgcmV0dXJuIGNhbGwgJiYgKCh0eXBlb2YgY2FsbCA9PT0gXCJ1bmRlZmluZWRcIiA/IFwidW5kZWZpbmVkXCIgOiAoMCwgX3R5cGVvZjMuZGVmYXVsdCkoY2FsbCkpID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBjYWxsID09PSBcImZ1bmN0aW9uXCIpID8gY2FsbCA6IHNlbGY7XG59O1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvaGVscGVycy9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuLmpzXG4vLyBtb2R1bGUgaWQgPSA1NFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///54\n')},function(module,exports,__webpack_require__){eval('module.exports = { "default": __webpack_require__(56), __esModule: true };//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTUuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9jb3JlLWpzL3N5bWJvbC9pdGVyYXRvci5qcz82NzM4Il0sInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0geyBcImRlZmF1bHRcIjogcmVxdWlyZShcImNvcmUtanMvbGlicmFyeS9mbi9zeW1ib2wvaXRlcmF0b3JcIiksIF9fZXNNb2R1bGU6IHRydWUgfTtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL2NvcmUtanMvc3ltYm9sL2l0ZXJhdG9yLmpzXG4vLyBtb2R1bGUgaWQgPSA1NVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///55\n')},function(module,exports,__webpack_require__){eval("__webpack_require__(57);\n__webpack_require__(66);\nmodule.exports = __webpack_require__(25).f('iterator');\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTYuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL3N5bWJvbC9pdGVyYXRvci5qcz9mZTdlIl0sInNvdXJjZXNDb250ZW50IjpbInJlcXVpcmUoJy4uLy4uL21vZHVsZXMvZXM2LnN0cmluZy5pdGVyYXRvcicpO1xucmVxdWlyZSgnLi4vLi4vbW9kdWxlcy93ZWIuZG9tLml0ZXJhYmxlJyk7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZXMvX3drcy1leHQnKS5mKCdpdGVyYXRvcicpO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL3N5bWJvbC9pdGVyYXRvci5qc1xuLy8gbW9kdWxlIGlkID0gNTZcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///56\n")},function(module,exports,__webpack_require__){"use strict";eval("\nvar $at = __webpack_require__(58)(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\n__webpack_require__(34)(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTcuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2LnN0cmluZy5pdGVyYXRvci5qcz9jZDA0Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcbnZhciAkYXQgPSByZXF1aXJlKCcuL19zdHJpbmctYXQnKSh0cnVlKTtcblxuLy8gMjEuMS4zLjI3IFN0cmluZy5wcm90b3R5cGVbQEBpdGVyYXRvcl0oKVxucmVxdWlyZSgnLi9faXRlci1kZWZpbmUnKShTdHJpbmcsICdTdHJpbmcnLCBmdW5jdGlvbiAoaXRlcmF0ZWQpIHtcbiAgdGhpcy5fdCA9IFN0cmluZyhpdGVyYXRlZCk7IC8vIHRhcmdldFxuICB0aGlzLl9pID0gMDsgICAgICAgICAgICAgICAgLy8gbmV4dCBpbmRleFxuLy8gMjEuMS41LjIuMSAlU3RyaW5nSXRlcmF0b3JQcm90b3R5cGUlLm5leHQoKVxufSwgZnVuY3Rpb24gKCkge1xuICB2YXIgTyA9IHRoaXMuX3Q7XG4gIHZhciBpbmRleCA9IHRoaXMuX2k7XG4gIHZhciBwb2ludDtcbiAgaWYgKGluZGV4ID49IE8ubGVuZ3RoKSByZXR1cm4geyB2YWx1ZTogdW5kZWZpbmVkLCBkb25lOiB0cnVlIH07XG4gIHBvaW50ID0gJGF0KE8sIGluZGV4KTtcbiAgdGhpcy5faSArPSBwb2ludC5sZW5ndGg7XG4gIHJldHVybiB7IHZhbHVlOiBwb2ludCwgZG9uZTogZmFsc2UgfTtcbn0pO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2LnN0cmluZy5pdGVyYXRvci5qc1xuLy8gbW9kdWxlIGlkID0gNTdcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///57\n")},function(module,exports,__webpack_require__){eval("var toInteger = __webpack_require__(19);\nvar defined = __webpack_require__(15);\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTguanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3N0cmluZy1hdC5qcz84N2FlIl0sInNvdXJjZXNDb250ZW50IjpbInZhciB0b0ludGVnZXIgPSByZXF1aXJlKCcuL190by1pbnRlZ2VyJyk7XG52YXIgZGVmaW5lZCA9IHJlcXVpcmUoJy4vX2RlZmluZWQnKTtcbi8vIHRydWUgIC0+IFN0cmluZyNhdFxuLy8gZmFsc2UgLT4gU3RyaW5nI2NvZGVQb2ludEF0XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChUT19TVFJJTkcpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICh0aGF0LCBwb3MpIHtcbiAgICB2YXIgcyA9IFN0cmluZyhkZWZpbmVkKHRoYXQpKTtcbiAgICB2YXIgaSA9IHRvSW50ZWdlcihwb3MpO1xuICAgIHZhciBsID0gcy5sZW5ndGg7XG4gICAgdmFyIGEsIGI7XG4gICAgaWYgKGkgPCAwIHx8IGkgPj0gbCkgcmV0dXJuIFRPX1NUUklORyA/ICcnIDogdW5kZWZpbmVkO1xuICAgIGEgPSBzLmNoYXJDb2RlQXQoaSk7XG4gICAgcmV0dXJuIGEgPCAweGQ4MDAgfHwgYSA+IDB4ZGJmZiB8fCBpICsgMSA9PT0gbCB8fCAoYiA9IHMuY2hhckNvZGVBdChpICsgMSkpIDwgMHhkYzAwIHx8IGIgPiAweGRmZmZcbiAgICAgID8gVE9fU1RSSU5HID8gcy5jaGFyQXQoaSkgOiBhXG4gICAgICA6IFRPX1NUUklORyA/IHMuc2xpY2UoaSwgaSArIDIpIDogKGEgLSAweGQ4MDAgPDwgMTApICsgKGIgLSAweGRjMDApICsgMHgxMDAwMDtcbiAgfTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fc3RyaW5nLWF0LmpzXG4vLyBtb2R1bGUgaWQgPSA1OFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///58\n")},function(module,exports,__webpack_require__){"use strict";eval("\nvar create = __webpack_require__(21);\nvar descriptor = __webpack_require__(14);\nvar setToStringTag = __webpack_require__(24);\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\n__webpack_require__(6)(IteratorPrototype, __webpack_require__(9)('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTkuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2l0ZXItY3JlYXRlLmpzP2Y3ODUiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xudmFyIGNyZWF0ZSA9IHJlcXVpcmUoJy4vX29iamVjdC1jcmVhdGUnKTtcbnZhciBkZXNjcmlwdG9yID0gcmVxdWlyZSgnLi9fcHJvcGVydHktZGVzYycpO1xudmFyIHNldFRvU3RyaW5nVGFnID0gcmVxdWlyZSgnLi9fc2V0LXRvLXN0cmluZy10YWcnKTtcbnZhciBJdGVyYXRvclByb3RvdHlwZSA9IHt9O1xuXG4vLyAyNS4xLjIuMS4xICVJdGVyYXRvclByb3RvdHlwZSVbQEBpdGVyYXRvcl0oKVxucmVxdWlyZSgnLi9faGlkZScpKEl0ZXJhdG9yUHJvdG90eXBlLCByZXF1aXJlKCcuL193a3MnKSgnaXRlcmF0b3InKSwgZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfSk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKENvbnN0cnVjdG9yLCBOQU1FLCBuZXh0KSB7XG4gIENvbnN0cnVjdG9yLnByb3RvdHlwZSA9IGNyZWF0ZShJdGVyYXRvclByb3RvdHlwZSwgeyBuZXh0OiBkZXNjcmlwdG9yKDEsIG5leHQpIH0pO1xuICBzZXRUb1N0cmluZ1RhZyhDb25zdHJ1Y3RvciwgTkFNRSArICcgSXRlcmF0b3InKTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9faXRlci1jcmVhdGUuanNcbi8vIG1vZHVsZSBpZCA9IDU5XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///59\n")},function(module,exports,__webpack_require__){eval("var dP = __webpack_require__(3);\nvar anObject = __webpack_require__(10);\nvar getKeys = __webpack_require__(22);\n\nmodule.exports = __webpack_require__(4) ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjAuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1kcHMuanM/YWEyYSJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgZFAgPSByZXF1aXJlKCcuL19vYmplY3QtZHAnKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4vX2FuLW9iamVjdCcpO1xudmFyIGdldEtleXMgPSByZXF1aXJlKCcuL19vYmplY3Qta2V5cycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vX2Rlc2NyaXB0b3JzJykgPyBPYmplY3QuZGVmaW5lUHJvcGVydGllcyA6IGZ1bmN0aW9uIGRlZmluZVByb3BlcnRpZXMoTywgUHJvcGVydGllcykge1xuICBhbk9iamVjdChPKTtcbiAgdmFyIGtleXMgPSBnZXRLZXlzKFByb3BlcnRpZXMpO1xuICB2YXIgbGVuZ3RoID0ga2V5cy5sZW5ndGg7XG4gIHZhciBpID0gMDtcbiAgdmFyIFA7XG4gIHdoaWxlIChsZW5ndGggPiBpKSBkUC5mKE8sIFAgPSBrZXlzW2krK10sIFByb3BlcnRpZXNbUF0pO1xuICByZXR1cm4gTztcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fb2JqZWN0LWRwcy5qc1xuLy8gbW9kdWxlIGlkID0gNjBcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///60\n")},function(module,exports,__webpack_require__){eval("// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = __webpack_require__(37);\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjEuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2lvYmplY3QuanM/MzE0ZSJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBmYWxsYmFjayBmb3Igbm9uLWFycmF5LWxpa2UgRVMzIGFuZCBub24tZW51bWVyYWJsZSBvbGQgVjggc3RyaW5nc1xudmFyIGNvZiA9IHJlcXVpcmUoJy4vX2NvZicpO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXByb3RvdHlwZS1idWlsdGluc1xubW9kdWxlLmV4cG9ydHMgPSBPYmplY3QoJ3onKS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgwKSA/IE9iamVjdCA6IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gY29mKGl0KSA9PSAnU3RyaW5nJyA/IGl0LnNwbGl0KCcnKSA6IE9iamVjdChpdCk7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2lvYmplY3QuanNcbi8vIG1vZHVsZSBpZCA9IDYxXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///61\n")},function(module,exports,__webpack_require__){eval("// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = __webpack_require__(8);\nvar toLength = __webpack_require__(63);\nvar toAbsoluteIndex = __webpack_require__(64);\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjIuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2FycmF5LWluY2x1ZGVzLmpzP2JjNTciXSwic291cmNlc0NvbnRlbnQiOlsiLy8gZmFsc2UgLT4gQXJyYXkjaW5kZXhPZlxuLy8gdHJ1ZSAgLT4gQXJyYXkjaW5jbHVkZXNcbnZhciB0b0lPYmplY3QgPSByZXF1aXJlKCcuL190by1pb2JqZWN0Jyk7XG52YXIgdG9MZW5ndGggPSByZXF1aXJlKCcuL190by1sZW5ndGgnKTtcbnZhciB0b0Fic29sdXRlSW5kZXggPSByZXF1aXJlKCcuL190by1hYnNvbHV0ZS1pbmRleCcpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoSVNfSU5DTFVERVMpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgkdGhpcywgZWwsIGZyb21JbmRleCkge1xuICAgIHZhciBPID0gdG9JT2JqZWN0KCR0aGlzKTtcbiAgICB2YXIgbGVuZ3RoID0gdG9MZW5ndGgoTy5sZW5ndGgpO1xuICAgIHZhciBpbmRleCA9IHRvQWJzb2x1dGVJbmRleChmcm9tSW5kZXgsIGxlbmd0aCk7XG4gICAgdmFyIHZhbHVlO1xuICAgIC8vIEFycmF5I2luY2x1ZGVzIHVzZXMgU2FtZVZhbHVlWmVybyBlcXVhbGl0eSBhbGdvcml0aG1cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2VsZi1jb21wYXJlXG4gICAgaWYgKElTX0lOQ0xVREVTICYmIGVsICE9IGVsKSB3aGlsZSAobGVuZ3RoID4gaW5kZXgpIHtcbiAgICAgIHZhbHVlID0gT1tpbmRleCsrXTtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1zZWxmLWNvbXBhcmVcbiAgICAgIGlmICh2YWx1ZSAhPSB2YWx1ZSkgcmV0dXJuIHRydWU7XG4gICAgLy8gQXJyYXkjaW5kZXhPZiBpZ25vcmVzIGhvbGVzLCBBcnJheSNpbmNsdWRlcyAtIG5vdFxuICAgIH0gZWxzZSBmb3IgKDtsZW5ndGggPiBpbmRleDsgaW5kZXgrKykgaWYgKElTX0lOQ0xVREVTIHx8IGluZGV4IGluIE8pIHtcbiAgICAgIGlmIChPW2luZGV4XSA9PT0gZWwpIHJldHVybiBJU19JTkNMVURFUyB8fCBpbmRleCB8fCAwO1xuICAgIH0gcmV0dXJuICFJU19JTkNMVURFUyAmJiAtMTtcbiAgfTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fYXJyYXktaW5jbHVkZXMuanNcbi8vIG1vZHVsZSBpZCA9IDYyXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///62\n")},function(module,exports,__webpack_require__){eval("// 7.1.15 ToLength\nvar toInteger = __webpack_require__(19);\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3RvLWxlbmd0aC5qcz80MTExIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIDcuMS4xNSBUb0xlbmd0aFxudmFyIHRvSW50ZWdlciA9IHJlcXVpcmUoJy4vX3RvLWludGVnZXInKTtcbnZhciBtaW4gPSBNYXRoLm1pbjtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBpdCA+IDAgPyBtaW4odG9JbnRlZ2VyKGl0KSwgMHgxZmZmZmZmZmZmZmZmZikgOiAwOyAvLyBwb3coMiwgNTMpIC0gMSA9PSA5MDA3MTk5MjU0NzQwOTkxXG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3RvLWxlbmd0aC5qc1xuLy8gbW9kdWxlIGlkID0gNjNcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///63\n")},function(module,exports,__webpack_require__){eval("var toInteger = __webpack_require__(19);\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjQuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3RvLWFic29sdXRlLWluZGV4LmpzPzdlNDAiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIHRvSW50ZWdlciA9IHJlcXVpcmUoJy4vX3RvLWludGVnZXInKTtcbnZhciBtYXggPSBNYXRoLm1heDtcbnZhciBtaW4gPSBNYXRoLm1pbjtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGluZGV4LCBsZW5ndGgpIHtcbiAgaW5kZXggPSB0b0ludGVnZXIoaW5kZXgpO1xuICByZXR1cm4gaW5kZXggPCAwID8gbWF4KGluZGV4ICsgbGVuZ3RoLCAwKSA6IG1pbihpbmRleCwgbGVuZ3RoKTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fdG8tYWJzb2x1dGUtaW5kZXguanNcbi8vIG1vZHVsZSBpZCA9IDY0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///64\n")},function(module,exports,__webpack_require__){eval("var document = __webpack_require__(1).document;\nmodule.exports = document && document.documentElement;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjUuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2h0bWwuanM/NDRmMiJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgZG9jdW1lbnQgPSByZXF1aXJlKCcuL19nbG9iYWwnKS5kb2N1bWVudDtcbm1vZHVsZS5leHBvcnRzID0gZG9jdW1lbnQgJiYgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2h0bWwuanNcbi8vIG1vZHVsZSBpZCA9IDY1XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///65\n")},function(module,exports,__webpack_require__){eval("__webpack_require__(67);\nvar global = __webpack_require__(1);\nvar hide = __webpack_require__(6);\nvar Iterators = __webpack_require__(20);\nvar TO_STRING_TAG = __webpack_require__(9)('toStringTag');\n\nvar DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +\n 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +\n 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +\n 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +\n 'TextTrackList,TouchList').split(',');\n\nfor (var i = 0; i < DOMIterables.length; i++) {\n var NAME = DOMIterables[i];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjYuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvd2ViLmRvbS5pdGVyYWJsZS5qcz9mYWQzIl0sInNvdXJjZXNDb250ZW50IjpbInJlcXVpcmUoJy4vZXM2LmFycmF5Lml0ZXJhdG9yJyk7XG52YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi9fZ2xvYmFsJyk7XG52YXIgaGlkZSA9IHJlcXVpcmUoJy4vX2hpZGUnKTtcbnZhciBJdGVyYXRvcnMgPSByZXF1aXJlKCcuL19pdGVyYXRvcnMnKTtcbnZhciBUT19TVFJJTkdfVEFHID0gcmVxdWlyZSgnLi9fd2tzJykoJ3RvU3RyaW5nVGFnJyk7XG5cbnZhciBET01JdGVyYWJsZXMgPSAoJ0NTU1J1bGVMaXN0LENTU1N0eWxlRGVjbGFyYXRpb24sQ1NTVmFsdWVMaXN0LENsaWVudFJlY3RMaXN0LERPTVJlY3RMaXN0LERPTVN0cmluZ0xpc3QsJyArXG4gICdET01Ub2tlbkxpc3QsRGF0YVRyYW5zZmVySXRlbUxpc3QsRmlsZUxpc3QsSFRNTEFsbENvbGxlY3Rpb24sSFRNTENvbGxlY3Rpb24sSFRNTEZvcm1FbGVtZW50LEhUTUxTZWxlY3RFbGVtZW50LCcgK1xuICAnTWVkaWFMaXN0LE1pbWVUeXBlQXJyYXksTmFtZWROb2RlTWFwLE5vZGVMaXN0LFBhaW50UmVxdWVzdExpc3QsUGx1Z2luLFBsdWdpbkFycmF5LFNWR0xlbmd0aExpc3QsU1ZHTnVtYmVyTGlzdCwnICtcbiAgJ1NWR1BhdGhTZWdMaXN0LFNWR1BvaW50TGlzdCxTVkdTdHJpbmdMaXN0LFNWR1RyYW5zZm9ybUxpc3QsU291cmNlQnVmZmVyTGlzdCxTdHlsZVNoZWV0TGlzdCxUZXh0VHJhY2tDdWVMaXN0LCcgK1xuICAnVGV4dFRyYWNrTGlzdCxUb3VjaExpc3QnKS5zcGxpdCgnLCcpO1xuXG5mb3IgKHZhciBpID0gMDsgaSA8IERPTUl0ZXJhYmxlcy5sZW5ndGg7IGkrKykge1xuICB2YXIgTkFNRSA9IERPTUl0ZXJhYmxlc1tpXTtcbiAgdmFyIENvbGxlY3Rpb24gPSBnbG9iYWxbTkFNRV07XG4gIHZhciBwcm90byA9IENvbGxlY3Rpb24gJiYgQ29sbGVjdGlvbi5wcm90b3R5cGU7XG4gIGlmIChwcm90byAmJiAhcHJvdG9bVE9fU1RSSU5HX1RBR10pIGhpZGUocHJvdG8sIFRPX1NUUklOR19UQUcsIE5BTUUpO1xuICBJdGVyYXRvcnNbTkFNRV0gPSBJdGVyYXRvcnMuQXJyYXk7XG59XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy93ZWIuZG9tLml0ZXJhYmxlLmpzXG4vLyBtb2R1bGUgaWQgPSA2NlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///66\n")},function(module,exports,__webpack_require__){"use strict";eval("\nvar addToUnscopables = __webpack_require__(68);\nvar step = __webpack_require__(69);\nvar Iterators = __webpack_require__(20);\nvar toIObject = __webpack_require__(8);\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = __webpack_require__(34)(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjcuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2LmFycmF5Lml0ZXJhdG9yLmpzP2M0NjkiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xudmFyIGFkZFRvVW5zY29wYWJsZXMgPSByZXF1aXJlKCcuL19hZGQtdG8tdW5zY29wYWJsZXMnKTtcbnZhciBzdGVwID0gcmVxdWlyZSgnLi9faXRlci1zdGVwJyk7XG52YXIgSXRlcmF0b3JzID0gcmVxdWlyZSgnLi9faXRlcmF0b3JzJyk7XG52YXIgdG9JT2JqZWN0ID0gcmVxdWlyZSgnLi9fdG8taW9iamVjdCcpO1xuXG4vLyAyMi4xLjMuNCBBcnJheS5wcm90b3R5cGUuZW50cmllcygpXG4vLyAyMi4xLjMuMTMgQXJyYXkucHJvdG90eXBlLmtleXMoKVxuLy8gMjIuMS4zLjI5IEFycmF5LnByb3RvdHlwZS52YWx1ZXMoKVxuLy8gMjIuMS4zLjMwIEFycmF5LnByb3RvdHlwZVtAQGl0ZXJhdG9yXSgpXG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vX2l0ZXItZGVmaW5lJykoQXJyYXksICdBcnJheScsIGZ1bmN0aW9uIChpdGVyYXRlZCwga2luZCkge1xuICB0aGlzLl90ID0gdG9JT2JqZWN0KGl0ZXJhdGVkKTsgLy8gdGFyZ2V0XG4gIHRoaXMuX2kgPSAwOyAgICAgICAgICAgICAgICAgICAvLyBuZXh0IGluZGV4XG4gIHRoaXMuX2sgPSBraW5kOyAgICAgICAgICAgICAgICAvLyBraW5kXG4vLyAyMi4xLjUuMi4xICVBcnJheUl0ZXJhdG9yUHJvdG90eXBlJS5uZXh0KClcbn0sIGZ1bmN0aW9uICgpIHtcbiAgdmFyIE8gPSB0aGlzLl90O1xuICB2YXIga2luZCA9IHRoaXMuX2s7XG4gIHZhciBpbmRleCA9IHRoaXMuX2krKztcbiAgaWYgKCFPIHx8IGluZGV4ID49IE8ubGVuZ3RoKSB7XG4gICAgdGhpcy5fdCA9IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gc3RlcCgxKTtcbiAgfVxuICBpZiAoa2luZCA9PSAna2V5cycpIHJldHVybiBzdGVwKDAsIGluZGV4KTtcbiAgaWYgKGtpbmQgPT0gJ3ZhbHVlcycpIHJldHVybiBzdGVwKDAsIE9baW5kZXhdKTtcbiAgcmV0dXJuIHN0ZXAoMCwgW2luZGV4LCBPW2luZGV4XV0pO1xufSwgJ3ZhbHVlcycpO1xuXG4vLyBhcmd1bWVudHNMaXN0W0BAaXRlcmF0b3JdIGlzICVBcnJheVByb3RvX3ZhbHVlcyUgKDkuNC40LjYsIDkuNC40LjcpXG5JdGVyYXRvcnMuQXJndW1lbnRzID0gSXRlcmF0b3JzLkFycmF5O1xuXG5hZGRUb1Vuc2NvcGFibGVzKCdrZXlzJyk7XG5hZGRUb1Vuc2NvcGFibGVzKCd2YWx1ZXMnKTtcbmFkZFRvVW5zY29wYWJsZXMoJ2VudHJpZXMnKTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL2VzNi5hcnJheS5pdGVyYXRvci5qc1xuLy8gbW9kdWxlIGlkID0gNjdcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///67\n")},function(module,exports){eval("module.exports = function () { /* empty */ };\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjguanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2FkZC10by11bnNjb3BhYmxlcy5qcz9lMjY3Il0sInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKCkgeyAvKiBlbXB0eSAqLyB9O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2FkZC10by11bnNjb3BhYmxlcy5qc1xuLy8gbW9kdWxlIGlkID0gNjhcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///68\n")},function(module,exports){eval("module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjkuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2l0ZXItc3RlcC5qcz8xMDY2Il0sInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGRvbmUsIHZhbHVlKSB7XG4gIHJldHVybiB7IHZhbHVlOiB2YWx1ZSwgZG9uZTogISFkb25lIH07XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2l0ZXItc3RlcC5qc1xuLy8gbW9kdWxlIGlkID0gNjlcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///69\n")},function(module,exports,__webpack_require__){eval('module.exports = { "default": __webpack_require__(71), __esModule: true };//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzAuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9jb3JlLWpzL3N5bWJvbC5qcz9lNTA1Il0sInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0geyBcImRlZmF1bHRcIjogcmVxdWlyZShcImNvcmUtanMvbGlicmFyeS9mbi9zeW1ib2xcIiksIF9fZXNNb2R1bGU6IHRydWUgfTtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL2NvcmUtanMvc3ltYm9sLmpzXG4vLyBtb2R1bGUgaWQgPSA3MFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///70\n')},function(module,exports,__webpack_require__){eval("__webpack_require__(72);\n__webpack_require__(77);\n__webpack_require__(78);\n__webpack_require__(79);\nmodule.exports = __webpack_require__(0).Symbol;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzEuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL3N5bWJvbC9pbmRleC5qcz8wNzA3Il0sInNvdXJjZXNDb250ZW50IjpbInJlcXVpcmUoJy4uLy4uL21vZHVsZXMvZXM2LnN5bWJvbCcpO1xucmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lczYub2JqZWN0LnRvLXN0cmluZycpO1xucmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lczcuc3ltYm9sLmFzeW5jLWl0ZXJhdG9yJyk7XG5yZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzNy5zeW1ib2wub2JzZXJ2YWJsZScpO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuLi8uLi9tb2R1bGVzL19jb3JlJykuU3ltYm9sO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL3N5bWJvbC9pbmRleC5qc1xuLy8gbW9kdWxlIGlkID0gNzFcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///71\n")},function(module,exports,__webpack_require__){"use strict";eval("\n// ECMAScript 6 symbols shim\nvar global = __webpack_require__(1);\nvar has = __webpack_require__(2);\nvar DESCRIPTORS = __webpack_require__(4);\nvar $export = __webpack_require__(5);\nvar redefine = __webpack_require__(35);\nvar META = __webpack_require__(73).KEY;\nvar $fails = __webpack_require__(11);\nvar shared = __webpack_require__(17);\nvar setToStringTag = __webpack_require__(24);\nvar uid = __webpack_require__(13);\nvar wks = __webpack_require__(9);\nvar wksExt = __webpack_require__(25);\nvar wksDefine = __webpack_require__(26);\nvar enumKeys = __webpack_require__(74);\nvar isArray = __webpack_require__(75);\nvar anObject = __webpack_require__(10);\nvar isObject = __webpack_require__(7);\nvar toIObject = __webpack_require__(8);\nvar toPrimitive = __webpack_require__(18);\nvar createDesc = __webpack_require__(14);\nvar _create = __webpack_require__(21);\nvar gOPNExt = __webpack_require__(76);\nvar $GOPD = __webpack_require__(40);\nvar $DP = __webpack_require__(3);\nvar $keys = __webpack_require__(22);\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function';\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n __webpack_require__(39).f = gOPNExt.f = $getOwnPropertyNames;\n __webpack_require__(27).f = $propertyIsEnumerable;\n __webpack_require__(38).f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !__webpack_require__(12)) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(6)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzIuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2LnN5bWJvbC5qcz83ZDY3Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0Jztcbi8vIEVDTUFTY3JpcHQgNiBzeW1ib2xzIHNoaW1cbnZhciBnbG9iYWwgPSByZXF1aXJlKCcuL19nbG9iYWwnKTtcbnZhciBoYXMgPSByZXF1aXJlKCcuL19oYXMnKTtcbnZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4vX2Rlc2NyaXB0b3JzJyk7XG52YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xudmFyIHJlZGVmaW5lID0gcmVxdWlyZSgnLi9fcmVkZWZpbmUnKTtcbnZhciBNRVRBID0gcmVxdWlyZSgnLi9fbWV0YScpLktFWTtcbnZhciAkZmFpbHMgPSByZXF1aXJlKCcuL19mYWlscycpO1xudmFyIHNoYXJlZCA9IHJlcXVpcmUoJy4vX3NoYXJlZCcpO1xudmFyIHNldFRvU3RyaW5nVGFnID0gcmVxdWlyZSgnLi9fc2V0LXRvLXN0cmluZy10YWcnKTtcbnZhciB1aWQgPSByZXF1aXJlKCcuL191aWQnKTtcbnZhciB3a3MgPSByZXF1aXJlKCcuL193a3MnKTtcbnZhciB3a3NFeHQgPSByZXF1aXJlKCcuL193a3MtZXh0Jyk7XG52YXIgd2tzRGVmaW5lID0gcmVxdWlyZSgnLi9fd2tzLWRlZmluZScpO1xudmFyIGVudW1LZXlzID0gcmVxdWlyZSgnLi9fZW51bS1rZXlzJyk7XG52YXIgaXNBcnJheSA9IHJlcXVpcmUoJy4vX2lzLWFycmF5Jyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuL19hbi1vYmplY3QnKTtcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4vX2lzLW9iamVjdCcpO1xudmFyIHRvSU9iamVjdCA9IHJlcXVpcmUoJy4vX3RvLWlvYmplY3QnKTtcbnZhciB0b1ByaW1pdGl2ZSA9IHJlcXVpcmUoJy4vX3RvLXByaW1pdGl2ZScpO1xudmFyIGNyZWF0ZURlc2MgPSByZXF1aXJlKCcuL19wcm9wZXJ0eS1kZXNjJyk7XG52YXIgX2NyZWF0ZSA9IHJlcXVpcmUoJy4vX29iamVjdC1jcmVhdGUnKTtcbnZhciBnT1BORXh0ID0gcmVxdWlyZSgnLi9fb2JqZWN0LWdvcG4tZXh0Jyk7XG52YXIgJEdPUEQgPSByZXF1aXJlKCcuL19vYmplY3QtZ29wZCcpO1xudmFyICREUCA9IHJlcXVpcmUoJy4vX29iamVjdC1kcCcpO1xudmFyICRrZXlzID0gcmVxdWlyZSgnLi9fb2JqZWN0LWtleXMnKTtcbnZhciBnT1BEID0gJEdPUEQuZjtcbnZhciBkUCA9ICREUC5mO1xudmFyIGdPUE4gPSBnT1BORXh0LmY7XG52YXIgJFN5bWJvbCA9IGdsb2JhbC5TeW1ib2w7XG52YXIgJEpTT04gPSBnbG9iYWwuSlNPTjtcbnZhciBfc3RyaW5naWZ5ID0gJEpTT04gJiYgJEpTT04uc3RyaW5naWZ5O1xudmFyIFBST1RPVFlQRSA9ICdwcm90b3R5cGUnO1xudmFyIEhJRERFTiA9IHdrcygnX2hpZGRlbicpO1xudmFyIFRPX1BSSU1JVElWRSA9IHdrcygndG9QcmltaXRpdmUnKTtcbnZhciBpc0VudW0gPSB7fS5wcm9wZXJ0eUlzRW51bWVyYWJsZTtcbnZhciBTeW1ib2xSZWdpc3RyeSA9IHNoYXJlZCgnc3ltYm9sLXJlZ2lzdHJ5Jyk7XG52YXIgQWxsU3ltYm9scyA9IHNoYXJlZCgnc3ltYm9scycpO1xudmFyIE9QU3ltYm9scyA9IHNoYXJlZCgnb3Atc3ltYm9scycpO1xudmFyIE9iamVjdFByb3RvID0gT2JqZWN0W1BST1RPVFlQRV07XG52YXIgVVNFX05BVElWRSA9IHR5cGVvZiAkU3ltYm9sID09ICdmdW5jdGlvbic7XG52YXIgUU9iamVjdCA9IGdsb2JhbC5RT2JqZWN0O1xuLy8gRG9uJ3QgdXNlIHNldHRlcnMgaW4gUXQgU2NyaXB0LCBodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9pc3N1ZXMvMTczXG52YXIgc2V0dGVyID0gIVFPYmplY3QgfHwgIVFPYmplY3RbUFJPVE9UWVBFXSB8fCAhUU9iamVjdFtQUk9UT1RZUEVdLmZpbmRDaGlsZDtcblxuLy8gZmFsbGJhY2sgZm9yIG9sZCBBbmRyb2lkLCBodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9Njg3XG52YXIgc2V0U3ltYm9sRGVzYyA9IERFU0NSSVBUT1JTICYmICRmYWlscyhmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBfY3JlYXRlKGRQKHt9LCAnYScsIHtcbiAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGRQKHRoaXMsICdhJywgeyB2YWx1ZTogNyB9KS5hOyB9XG4gIH0pKS5hICE9IDc7XG59KSA/IGZ1bmN0aW9uIChpdCwga2V5LCBEKSB7XG4gIHZhciBwcm90b0Rlc2MgPSBnT1BEKE9iamVjdFByb3RvLCBrZXkpO1xuICBpZiAocHJvdG9EZXNjKSBkZWxldGUgT2JqZWN0UHJvdG9ba2V5XTtcbiAgZFAoaXQsIGtleSwgRCk7XG4gIGlmIChwcm90b0Rlc2MgJiYgaXQgIT09IE9iamVjdFByb3RvKSBkUChPYmplY3RQcm90bywga2V5LCBwcm90b0Rlc2MpO1xufSA6IGRQO1xuXG52YXIgd3JhcCA9IGZ1bmN0aW9uICh0YWcpIHtcbiAgdmFyIHN5bSA9IEFsbFN5bWJvbHNbdGFnXSA9IF9jcmVhdGUoJFN5bWJvbFtQUk9UT1RZUEVdKTtcbiAgc3ltLl9rID0gdGFnO1xuICByZXR1cm4gc3ltO1xufTtcblxudmFyIGlzU3ltYm9sID0gVVNFX05BVElWRSAmJiB0eXBlb2YgJFN5bWJvbC5pdGVyYXRvciA9PSAnc3ltYm9sJyA/IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gdHlwZW9mIGl0ID09ICdzeW1ib2wnO1xufSA6IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gaXQgaW5zdGFuY2VvZiAkU3ltYm9sO1xufTtcblxudmFyICRkZWZpbmVQcm9wZXJ0eSA9IGZ1bmN0aW9uIGRlZmluZVByb3BlcnR5KGl0LCBrZXksIEQpIHtcbiAgaWYgKGl0ID09PSBPYmplY3RQcm90bykgJGRlZmluZVByb3BlcnR5KE9QU3ltYm9scywga2V5LCBEKTtcbiAgYW5PYmplY3QoaXQpO1xuICBrZXkgPSB0b1ByaW1pdGl2ZShrZXksIHRydWUpO1xuICBhbk9iamVjdChEKTtcbiAgaWYgKGhhcyhBbGxTeW1ib2xzLCBrZXkpKSB7XG4gICAgaWYgKCFELmVudW1lcmFibGUpIHtcbiAgICAgIGlmICghaGFzKGl0LCBISURERU4pKSBkUChpdCwgSElEREVOLCBjcmVhdGVEZXNjKDEsIHt9KSk7XG4gICAgICBpdFtISURERU5dW2tleV0gPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoaGFzKGl0LCBISURERU4pICYmIGl0W0hJRERFTl1ba2V5XSkgaXRbSElEREVOXVtrZXldID0gZmFsc2U7XG4gICAgICBEID0gX2NyZWF0ZShELCB7IGVudW1lcmFibGU6IGNyZWF0ZURlc2MoMCwgZmFsc2UpIH0pO1xuICAgIH0gcmV0dXJuIHNldFN5bWJvbERlc2MoaXQsIGtleSwgRCk7XG4gIH0gcmV0dXJuIGRQKGl0LCBrZXksIEQpO1xufTtcbnZhciAkZGVmaW5lUHJvcGVydGllcyA9IGZ1bmN0aW9uIGRlZmluZVByb3BlcnRpZXMoaXQsIFApIHtcbiAgYW5PYmplY3QoaXQpO1xuICB2YXIga2V5cyA9IGVudW1LZXlzKFAgPSB0b0lPYmplY3QoUCkpO1xuICB2YXIgaSA9IDA7XG4gIHZhciBsID0ga2V5cy5sZW5ndGg7XG4gIHZhciBrZXk7XG4gIHdoaWxlIChsID4gaSkgJGRlZmluZVByb3BlcnR5KGl0LCBrZXkgPSBrZXlzW2krK10sIFBba2V5XSk7XG4gIHJldHVybiBpdDtcbn07XG52YXIgJGNyZWF0ZSA9IGZ1bmN0aW9uIGNyZWF0ZShpdCwgUCkge1xuICByZXR1cm4gUCA9PT0gdW5kZWZpbmVkID8gX2NyZWF0ZShpdCkgOiAkZGVmaW5lUHJvcGVydGllcyhfY3JlYXRlKGl0KSwgUCk7XG59O1xudmFyICRwcm9wZXJ0eUlzRW51bWVyYWJsZSA9IGZ1bmN0aW9uIHByb3BlcnR5SXNFbnVtZXJhYmxlKGtleSkge1xuICB2YXIgRSA9IGlzRW51bS5jYWxsKHRoaXMsIGtleSA9IHRvUHJpbWl0aXZlKGtleSwgdHJ1ZSkpO1xuICBpZiAodGhpcyA9PT0gT2JqZWN0UHJvdG8gJiYgaGFzKEFsbFN5bWJvbHMsIGtleSkgJiYgIWhhcyhPUFN5bWJvbHMsIGtleSkpIHJldHVybiBmYWxzZTtcbiAgcmV0dXJuIEUgfHwgIWhhcyh0aGlzLCBrZXkpIHx8ICFoYXMoQWxsU3ltYm9scywga2V5KSB8fCBoYXModGhpcywgSElEREVOKSAmJiB0aGlzW0hJRERFTl1ba2V5XSA/IEUgOiB0cnVlO1xufTtcbnZhciAkZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yID0gZnVuY3Rpb24gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGl0LCBrZXkpIHtcbiAgaXQgPSB0b0lPYmplY3QoaXQpO1xuICBrZXkgPSB0b1ByaW1pdGl2ZShrZXksIHRydWUpO1xuICBpZiAoaXQgPT09IE9iamVjdFByb3RvICYmIGhhcyhBbGxTeW1ib2xzLCBrZXkpICYmICFoYXMoT1BTeW1ib2xzLCBrZXkpKSByZXR1cm47XG4gIHZhciBEID0gZ09QRChpdCwga2V5KTtcbiAgaWYgKEQgJiYgaGFzKEFsbFN5bWJvbHMsIGtleSkgJiYgIShoYXMoaXQsIEhJRERFTikgJiYgaXRbSElEREVOXVtrZXldKSkgRC5lbnVtZXJhYmxlID0gdHJ1ZTtcbiAgcmV0dXJuIEQ7XG59O1xudmFyICRnZXRPd25Qcm9wZXJ0eU5hbWVzID0gZnVuY3Rpb24gZ2V0T3duUHJvcGVydHlOYW1lcyhpdCkge1xuICB2YXIgbmFtZXMgPSBnT1BOKHRvSU9iamVjdChpdCkpO1xuICB2YXIgcmVzdWx0ID0gW107XG4gIHZhciBpID0gMDtcbiAgdmFyIGtleTtcbiAgd2hpbGUgKG5hbWVzLmxlbmd0aCA+IGkpIHtcbiAgICBpZiAoIWhhcyhBbGxTeW1ib2xzLCBrZXkgPSBuYW1lc1tpKytdKSAmJiBrZXkgIT0gSElEREVOICYmIGtleSAhPSBNRVRBKSByZXN1bHQucHVzaChrZXkpO1xuICB9IHJldHVybiByZXN1bHQ7XG59O1xudmFyICRnZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPSBmdW5jdGlvbiBnZXRPd25Qcm9wZXJ0eVN5bWJvbHMoaXQpIHtcbiAgdmFyIElTX09QID0gaXQgPT09IE9iamVjdFByb3RvO1xuICB2YXIgbmFtZXMgPSBnT1BOKElTX09QID8gT1BTeW1ib2xzIDogdG9JT2JqZWN0KGl0KSk7XG4gIHZhciByZXN1bHQgPSBbXTtcbiAgdmFyIGkgPSAwO1xuICB2YXIga2V5O1xuICB3aGlsZSAobmFtZXMubGVuZ3RoID4gaSkge1xuICAgIGlmIChoYXMoQWxsU3ltYm9scywga2V5ID0gbmFtZXNbaSsrXSkgJiYgKElTX09QID8gaGFzKE9iamVjdFByb3RvLCBrZXkpIDogdHJ1ZSkpIHJlc3VsdC5wdXNoKEFsbFN5bWJvbHNba2V5XSk7XG4gIH0gcmV0dXJuIHJlc3VsdDtcbn07XG5cbi8vIDE5LjQuMS4xIFN5bWJvbChbZGVzY3JpcHRpb25dKVxuaWYgKCFVU0VfTkFUSVZFKSB7XG4gICRTeW1ib2wgPSBmdW5jdGlvbiBTeW1ib2woKSB7XG4gICAgaWYgKHRoaXMgaW5zdGFuY2VvZiAkU3ltYm9sKSB0aHJvdyBUeXBlRXJyb3IoJ1N5bWJvbCBpcyBub3QgYSBjb25zdHJ1Y3RvciEnKTtcbiAgICB2YXIgdGFnID0gdWlkKGFyZ3VtZW50cy5sZW5ndGggPiAwID8gYXJndW1lbnRzWzBdIDogdW5kZWZpbmVkKTtcbiAgICB2YXIgJHNldCA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgaWYgKHRoaXMgPT09IE9iamVjdFByb3RvKSAkc2V0LmNhbGwoT1BTeW1ib2xzLCB2YWx1ZSk7XG4gICAgICBpZiAoaGFzKHRoaXMsIEhJRERFTikgJiYgaGFzKHRoaXNbSElEREVOXSwgdGFnKSkgdGhpc1tISURERU5dW3RhZ10gPSBmYWxzZTtcbiAgICAgIHNldFN5bWJvbERlc2ModGhpcywgdGFnLCBjcmVhdGVEZXNjKDEsIHZhbHVlKSk7XG4gICAgfTtcbiAgICBpZiAoREVTQ1JJUFRPUlMgJiYgc2V0dGVyKSBzZXRTeW1ib2xEZXNjKE9iamVjdFByb3RvLCB0YWcsIHsgY29uZmlndXJhYmxlOiB0cnVlLCBzZXQ6ICRzZXQgfSk7XG4gICAgcmV0dXJuIHdyYXAodGFnKTtcbiAgfTtcbiAgcmVkZWZpbmUoJFN5bWJvbFtQUk9UT1RZUEVdLCAndG9TdHJpbmcnLCBmdW5jdGlvbiB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5faztcbiAgfSk7XG5cbiAgJEdPUEQuZiA9ICRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG4gICREUC5mID0gJGRlZmluZVByb3BlcnR5O1xuICByZXF1aXJlKCcuL19vYmplY3QtZ29wbicpLmYgPSBnT1BORXh0LmYgPSAkZ2V0T3duUHJvcGVydHlOYW1lcztcbiAgcmVxdWlyZSgnLi9fb2JqZWN0LXBpZScpLmYgPSAkcHJvcGVydHlJc0VudW1lcmFibGU7XG4gIHJlcXVpcmUoJy4vX29iamVjdC1nb3BzJykuZiA9ICRnZXRPd25Qcm9wZXJ0eVN5bWJvbHM7XG5cbiAgaWYgKERFU0NSSVBUT1JTICYmICFyZXF1aXJlKCcuL19saWJyYXJ5JykpIHtcbiAgICByZWRlZmluZShPYmplY3RQcm90bywgJ3Byb3BlcnR5SXNFbnVtZXJhYmxlJywgJHByb3BlcnR5SXNFbnVtZXJhYmxlLCB0cnVlKTtcbiAgfVxuXG4gIHdrc0V4dC5mID0gZnVuY3Rpb24gKG5hbWUpIHtcbiAgICByZXR1cm4gd3JhcCh3a3MobmFtZSkpO1xuICB9O1xufVxuXG4kZXhwb3J0KCRleHBvcnQuRyArICRleHBvcnQuVyArICRleHBvcnQuRiAqICFVU0VfTkFUSVZFLCB7IFN5bWJvbDogJFN5bWJvbCB9KTtcblxuZm9yICh2YXIgZXM2U3ltYm9scyA9IChcbiAgLy8gMTkuNC4yLjIsIDE5LjQuMi4zLCAxOS40LjIuNCwgMTkuNC4yLjYsIDE5LjQuMi44LCAxOS40LjIuOSwgMTkuNC4yLjEwLCAxOS40LjIuMTEsIDE5LjQuMi4xMiwgMTkuNC4yLjEzLCAxOS40LjIuMTRcbiAgJ2hhc0luc3RhbmNlLGlzQ29uY2F0U3ByZWFkYWJsZSxpdGVyYXRvcixtYXRjaCxyZXBsYWNlLHNlYXJjaCxzcGVjaWVzLHNwbGl0LHRvUHJpbWl0aXZlLHRvU3RyaW5nVGFnLHVuc2NvcGFibGVzJ1xuKS5zcGxpdCgnLCcpLCBqID0gMDsgZXM2U3ltYm9scy5sZW5ndGggPiBqOyl3a3MoZXM2U3ltYm9sc1tqKytdKTtcblxuZm9yICh2YXIgd2VsbEtub3duU3ltYm9scyA9ICRrZXlzKHdrcy5zdG9yZSksIGsgPSAwOyB3ZWxsS25vd25TeW1ib2xzLmxlbmd0aCA+IGs7KSB3a3NEZWZpbmUod2VsbEtub3duU3ltYm9sc1trKytdKTtcblxuJGV4cG9ydCgkZXhwb3J0LlMgKyAkZXhwb3J0LkYgKiAhVVNFX05BVElWRSwgJ1N5bWJvbCcsIHtcbiAgLy8gMTkuNC4yLjEgU3ltYm9sLmZvcihrZXkpXG4gICdmb3InOiBmdW5jdGlvbiAoa2V5KSB7XG4gICAgcmV0dXJuIGhhcyhTeW1ib2xSZWdpc3RyeSwga2V5ICs9ICcnKVxuICAgICAgPyBTeW1ib2xSZWdpc3RyeVtrZXldXG4gICAgICA6IFN5bWJvbFJlZ2lzdHJ5W2tleV0gPSAkU3ltYm9sKGtleSk7XG4gIH0sXG4gIC8vIDE5LjQuMi41IFN5bWJvbC5rZXlGb3Ioc3ltKVxuICBrZXlGb3I6IGZ1bmN0aW9uIGtleUZvcihzeW0pIHtcbiAgICBpZiAoIWlzU3ltYm9sKHN5bSkpIHRocm93IFR5cGVFcnJvcihzeW0gKyAnIGlzIG5vdCBhIHN5bWJvbCEnKTtcbiAgICBmb3IgKHZhciBrZXkgaW4gU3ltYm9sUmVnaXN0cnkpIGlmIChTeW1ib2xSZWdpc3RyeVtrZXldID09PSBzeW0pIHJldHVybiBrZXk7XG4gIH0sXG4gIHVzZVNldHRlcjogZnVuY3Rpb24gKCkgeyBzZXR0ZXIgPSB0cnVlOyB9LFxuICB1c2VTaW1wbGU6IGZ1bmN0aW9uICgpIHsgc2V0dGVyID0gZmFsc2U7IH1cbn0pO1xuXG4kZXhwb3J0KCRleHBvcnQuUyArICRleHBvcnQuRiAqICFVU0VfTkFUSVZFLCAnT2JqZWN0Jywge1xuICAvLyAxOS4xLjIuMiBPYmplY3QuY3JlYXRlKE8gWywgUHJvcGVydGllc10pXG4gIGNyZWF0ZTogJGNyZWF0ZSxcbiAgLy8gMTkuMS4yLjQgT2JqZWN0LmRlZmluZVByb3BlcnR5KE8sIFAsIEF0dHJpYnV0ZXMpXG4gIGRlZmluZVByb3BlcnR5OiAkZGVmaW5lUHJvcGVydHksXG4gIC8vIDE5LjEuMi4zIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKE8sIFByb3BlcnRpZXMpXG4gIGRlZmluZVByb3BlcnRpZXM6ICRkZWZpbmVQcm9wZXJ0aWVzLFxuICAvLyAxOS4xLjIuNiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE8sIFApXG4gIGdldE93blByb3BlcnR5RGVzY3JpcHRvcjogJGdldE93blByb3BlcnR5RGVzY3JpcHRvcixcbiAgLy8gMTkuMS4yLjcgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoTylcbiAgZ2V0T3duUHJvcGVydHlOYW1lczogJGdldE93blByb3BlcnR5TmFtZXMsXG4gIC8vIDE5LjEuMi44IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoTylcbiAgZ2V0T3duUHJvcGVydHlTeW1ib2xzOiAkZ2V0T3duUHJvcGVydHlTeW1ib2xzXG59KTtcblxuLy8gMjQuMy4yIEpTT04uc3RyaW5naWZ5KHZhbHVlIFssIHJlcGxhY2VyIFssIHNwYWNlXV0pXG4kSlNPTiAmJiAkZXhwb3J0KCRleHBvcnQuUyArICRleHBvcnQuRiAqICghVVNFX05BVElWRSB8fCAkZmFpbHMoZnVuY3Rpb24gKCkge1xuICB2YXIgUyA9ICRTeW1ib2woKTtcbiAgLy8gTVMgRWRnZSBjb252ZXJ0cyBzeW1ib2wgdmFsdWVzIHRvIEpTT04gYXMge31cbiAgLy8gV2ViS2l0IGNvbnZlcnRzIHN5bWJvbCB2YWx1ZXMgdG8gSlNPTiBhcyBudWxsXG4gIC8vIFY4IHRocm93cyBvbiBib3hlZCBzeW1ib2xzXG4gIHJldHVybiBfc3RyaW5naWZ5KFtTXSkgIT0gJ1tudWxsXScgfHwgX3N0cmluZ2lmeSh7IGE6IFMgfSkgIT0gJ3t9JyB8fCBfc3RyaW5naWZ5KE9iamVjdChTKSkgIT0gJ3t9Jztcbn0pKSwgJ0pTT04nLCB7XG4gIHN0cmluZ2lmeTogZnVuY3Rpb24gc3RyaW5naWZ5KGl0KSB7XG4gICAgdmFyIGFyZ3MgPSBbaXRdO1xuICAgIHZhciBpID0gMTtcbiAgICB2YXIgcmVwbGFjZXIsICRyZXBsYWNlcjtcbiAgICB3aGlsZSAoYXJndW1lbnRzLmxlbmd0aCA+IGkpIGFyZ3MucHVzaChhcmd1bWVudHNbaSsrXSk7XG4gICAgJHJlcGxhY2VyID0gcmVwbGFjZXIgPSBhcmdzWzFdO1xuICAgIGlmICghaXNPYmplY3QocmVwbGFjZXIpICYmIGl0ID09PSB1bmRlZmluZWQgfHwgaXNTeW1ib2woaXQpKSByZXR1cm47IC8vIElFOCByZXR1cm5zIHN0cmluZyBvbiB1bmRlZmluZWRcbiAgICBpZiAoIWlzQXJyYXkocmVwbGFjZXIpKSByZXBsYWNlciA9IGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7XG4gICAgICBpZiAodHlwZW9mICRyZXBsYWNlciA9PSAnZnVuY3Rpb24nKSB2YWx1ZSA9ICRyZXBsYWNlci5jYWxsKHRoaXMsIGtleSwgdmFsdWUpO1xuICAgICAgaWYgKCFpc1N5bWJvbCh2YWx1ZSkpIHJldHVybiB2YWx1ZTtcbiAgICB9O1xuICAgIGFyZ3NbMV0gPSByZXBsYWNlcjtcbiAgICByZXR1cm4gX3N0cmluZ2lmeS5hcHBseSgkSlNPTiwgYXJncyk7XG4gIH1cbn0pO1xuXG4vLyAxOS40LjMuNCBTeW1ib2wucHJvdG90eXBlW0BAdG9QcmltaXRpdmVdKGhpbnQpXG4kU3ltYm9sW1BST1RPVFlQRV1bVE9fUFJJTUlUSVZFXSB8fCByZXF1aXJlKCcuL19oaWRlJykoJFN5bWJvbFtQUk9UT1RZUEVdLCBUT19QUklNSVRJVkUsICRTeW1ib2xbUFJPVE9UWVBFXS52YWx1ZU9mKTtcbi8vIDE5LjQuMy41IFN5bWJvbC5wcm90b3R5cGVbQEB0b1N0cmluZ1RhZ11cbnNldFRvU3RyaW5nVGFnKCRTeW1ib2wsICdTeW1ib2wnKTtcbi8vIDIwLjIuMS45IE1hdGhbQEB0b1N0cmluZ1RhZ11cbnNldFRvU3RyaW5nVGFnKE1hdGgsICdNYXRoJywgdHJ1ZSk7XG4vLyAyNC4zLjMgSlNPTltAQHRvU3RyaW5nVGFnXVxuc2V0VG9TdHJpbmdUYWcoZ2xvYmFsLkpTT04sICdKU09OJywgdHJ1ZSk7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9lczYuc3ltYm9sLmpzXG4vLyBtb2R1bGUgaWQgPSA3MlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///72\n")},function(module,exports,__webpack_require__){eval("var META = __webpack_require__(13)('meta');\nvar isObject = __webpack_require__(7);\nvar has = __webpack_require__(2);\nvar setDesc = __webpack_require__(3).f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !__webpack_require__(11)(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX21ldGEuanM/ZDNhMyJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgTUVUQSA9IHJlcXVpcmUoJy4vX3VpZCcpKCdtZXRhJyk7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL19pcy1vYmplY3QnKTtcbnZhciBoYXMgPSByZXF1aXJlKCcuL19oYXMnKTtcbnZhciBzZXREZXNjID0gcmVxdWlyZSgnLi9fb2JqZWN0LWRwJykuZjtcbnZhciBpZCA9IDA7XG52YXIgaXNFeHRlbnNpYmxlID0gT2JqZWN0LmlzRXh0ZW5zaWJsZSB8fCBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0cnVlO1xufTtcbnZhciBGUkVFWkUgPSAhcmVxdWlyZSgnLi9fZmFpbHMnKShmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBpc0V4dGVuc2libGUoT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKHt9KSk7XG59KTtcbnZhciBzZXRNZXRhID0gZnVuY3Rpb24gKGl0KSB7XG4gIHNldERlc2MoaXQsIE1FVEEsIHsgdmFsdWU6IHtcbiAgICBpOiAnTycgKyArK2lkLCAvLyBvYmplY3QgSURcbiAgICB3OiB7fSAgICAgICAgICAvLyB3ZWFrIGNvbGxlY3Rpb25zIElEc1xuICB9IH0pO1xufTtcbnZhciBmYXN0S2V5ID0gZnVuY3Rpb24gKGl0LCBjcmVhdGUpIHtcbiAgLy8gcmV0dXJuIHByaW1pdGl2ZSB3aXRoIHByZWZpeFxuICBpZiAoIWlzT2JqZWN0KGl0KSkgcmV0dXJuIHR5cGVvZiBpdCA9PSAnc3ltYm9sJyA/IGl0IDogKHR5cGVvZiBpdCA9PSAnc3RyaW5nJyA/ICdTJyA6ICdQJykgKyBpdDtcbiAgaWYgKCFoYXMoaXQsIE1FVEEpKSB7XG4gICAgLy8gY2FuJ3Qgc2V0IG1ldGFkYXRhIHRvIHVuY2F1Z2h0IGZyb3plbiBvYmplY3RcbiAgICBpZiAoIWlzRXh0ZW5zaWJsZShpdCkpIHJldHVybiAnRic7XG4gICAgLy8gbm90IG5lY2Vzc2FyeSB0byBhZGQgbWV0YWRhdGFcbiAgICBpZiAoIWNyZWF0ZSkgcmV0dXJuICdFJztcbiAgICAvLyBhZGQgbWlzc2luZyBtZXRhZGF0YVxuICAgIHNldE1ldGEoaXQpO1xuICAvLyByZXR1cm4gb2JqZWN0IElEXG4gIH0gcmV0dXJuIGl0W01FVEFdLmk7XG59O1xudmFyIGdldFdlYWsgPSBmdW5jdGlvbiAoaXQsIGNyZWF0ZSkge1xuICBpZiAoIWhhcyhpdCwgTUVUQSkpIHtcbiAgICAvLyBjYW4ndCBzZXQgbWV0YWRhdGEgdG8gdW5jYXVnaHQgZnJvemVuIG9iamVjdFxuICAgIGlmICghaXNFeHRlbnNpYmxlKGl0KSkgcmV0dXJuIHRydWU7XG4gICAgLy8gbm90IG5lY2Vzc2FyeSB0byBhZGQgbWV0YWRhdGFcbiAgICBpZiAoIWNyZWF0ZSkgcmV0dXJuIGZhbHNlO1xuICAgIC8vIGFkZCBtaXNzaW5nIG1ldGFkYXRhXG4gICAgc2V0TWV0YShpdCk7XG4gIC8vIHJldHVybiBoYXNoIHdlYWsgY29sbGVjdGlvbnMgSURzXG4gIH0gcmV0dXJuIGl0W01FVEFdLnc7XG59O1xuLy8gYWRkIG1ldGFkYXRhIG9uIGZyZWV6ZS1mYW1pbHkgbWV0aG9kcyBjYWxsaW5nXG52YXIgb25GcmVlemUgPSBmdW5jdGlvbiAoaXQpIHtcbiAgaWYgKEZSRUVaRSAmJiBtZXRhLk5FRUQgJiYgaXNFeHRlbnNpYmxlKGl0KSAmJiAhaGFzKGl0LCBNRVRBKSkgc2V0TWV0YShpdCk7XG4gIHJldHVybiBpdDtcbn07XG52YXIgbWV0YSA9IG1vZHVsZS5leHBvcnRzID0ge1xuICBLRVk6IE1FVEEsXG4gIE5FRUQ6IGZhbHNlLFxuICBmYXN0S2V5OiBmYXN0S2V5LFxuICBnZXRXZWFrOiBnZXRXZWFrLFxuICBvbkZyZWV6ZTogb25GcmVlemVcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fbWV0YS5qc1xuLy8gbW9kdWxlIGlkID0gNzNcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///73\n")},function(module,exports,__webpack_require__){eval("// all enumerable object keys, includes symbols\nvar getKeys = __webpack_require__(22);\nvar gOPS = __webpack_require__(38);\nvar pIE = __webpack_require__(27);\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzQuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2VudW0ta2V5cy5qcz81ZGNlIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIGFsbCBlbnVtZXJhYmxlIG9iamVjdCBrZXlzLCBpbmNsdWRlcyBzeW1ib2xzXG52YXIgZ2V0S2V5cyA9IHJlcXVpcmUoJy4vX29iamVjdC1rZXlzJyk7XG52YXIgZ09QUyA9IHJlcXVpcmUoJy4vX29iamVjdC1nb3BzJyk7XG52YXIgcElFID0gcmVxdWlyZSgnLi9fb2JqZWN0LXBpZScpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgdmFyIHJlc3VsdCA9IGdldEtleXMoaXQpO1xuICB2YXIgZ2V0U3ltYm9scyA9IGdPUFMuZjtcbiAgaWYgKGdldFN5bWJvbHMpIHtcbiAgICB2YXIgc3ltYm9scyA9IGdldFN5bWJvbHMoaXQpO1xuICAgIHZhciBpc0VudW0gPSBwSUUuZjtcbiAgICB2YXIgaSA9IDA7XG4gICAgdmFyIGtleTtcbiAgICB3aGlsZSAoc3ltYm9scy5sZW5ndGggPiBpKSBpZiAoaXNFbnVtLmNhbGwoaXQsIGtleSA9IHN5bWJvbHNbaSsrXSkpIHJlc3VsdC5wdXNoKGtleSk7XG4gIH0gcmV0dXJuIHJlc3VsdDtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fZW51bS1rZXlzLmpzXG4vLyBtb2R1bGUgaWQgPSA3NFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///74\n")},function(module,exports,__webpack_require__){eval("// 7.2.2 IsArray(argument)\nvar cof = __webpack_require__(37);\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzUuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2lzLWFycmF5LmpzP2VkNDMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gNy4yLjIgSXNBcnJheShhcmd1bWVudClcbnZhciBjb2YgPSByZXF1aXJlKCcuL19jb2YnKTtcbm1vZHVsZS5leHBvcnRzID0gQXJyYXkuaXNBcnJheSB8fCBmdW5jdGlvbiBpc0FycmF5KGFyZykge1xuICByZXR1cm4gY29mKGFyZykgPT0gJ0FycmF5Jztcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9faXMtYXJyYXkuanNcbi8vIG1vZHVsZSBpZCA9IDc1XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///75\n")},function(module,exports,__webpack_require__){eval("// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = __webpack_require__(8);\nvar gOPN = __webpack_require__(39).f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzYuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1nb3BuLWV4dC5qcz80NmI3Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIGZhbGxiYWNrIGZvciBJRTExIGJ1Z2d5IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzIHdpdGggaWZyYW1lIGFuZCB3aW5kb3dcbnZhciB0b0lPYmplY3QgPSByZXF1aXJlKCcuL190by1pb2JqZWN0Jyk7XG52YXIgZ09QTiA9IHJlcXVpcmUoJy4vX29iamVjdC1nb3BuJykuZjtcbnZhciB0b1N0cmluZyA9IHt9LnRvU3RyaW5nO1xuXG52YXIgd2luZG93TmFtZXMgPSB0eXBlb2Ygd2luZG93ID09ICdvYmplY3QnICYmIHdpbmRvdyAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lc1xuICA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHdpbmRvdykgOiBbXTtcblxudmFyIGdldFdpbmRvd05hbWVzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGdPUE4oaXQpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIHdpbmRvd05hbWVzLnNsaWNlKCk7XG4gIH1cbn07XG5cbm1vZHVsZS5leHBvcnRzLmYgPSBmdW5jdGlvbiBnZXRPd25Qcm9wZXJ0eU5hbWVzKGl0KSB7XG4gIHJldHVybiB3aW5kb3dOYW1lcyAmJiB0b1N0cmluZy5jYWxsKGl0KSA9PSAnW29iamVjdCBXaW5kb3ddJyA/IGdldFdpbmRvd05hbWVzKGl0KSA6IGdPUE4odG9JT2JqZWN0KGl0KSk7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1nb3BuLWV4dC5qc1xuLy8gbW9kdWxlIGlkID0gNzZcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///76\n")},function(module,exports){eval("//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzcuanMiLCJzb3VyY2VzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///77\n")},function(module,exports,__webpack_require__){eval("__webpack_require__(26)('asyncIterator');\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzguanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM3LnN5bWJvbC5hc3luYy1pdGVyYXRvci5qcz8zOTg5Il0sInNvdXJjZXNDb250ZW50IjpbInJlcXVpcmUoJy4vX3drcy1kZWZpbmUnKSgnYXN5bmNJdGVyYXRvcicpO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM3LnN5bWJvbC5hc3luYy1pdGVyYXRvci5qc1xuLy8gbW9kdWxlIGlkID0gNzhcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///78\n")},function(module,exports,__webpack_require__){eval("__webpack_require__(26)('observable');\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzkuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM3LnN5bWJvbC5vYnNlcnZhYmxlLmpzPzQxNjciXSwic291cmNlc0NvbnRlbnQiOlsicmVxdWlyZSgnLi9fd2tzLWRlZmluZScpKCdvYnNlcnZhYmxlJyk7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9lczcuc3ltYm9sLm9ic2VydmFibGUuanNcbi8vIG1vZHVsZSBpZCA9IDc5XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///79\n")},function(module,exports,__webpack_require__){"use strict";eval('\n\nexports.__esModule = true;\n\nvar _setPrototypeOf = __webpack_require__(81);\n\nvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\nvar _create = __webpack_require__(85);\n\nvar _create2 = _interopRequireDefault(_create);\n\nvar _typeof2 = __webpack_require__(33);\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (subClass, superClass) {\n if (typeof superClass !== "function" && superClass !== null) {\n throw new TypeError("Super expression must either be null or a function, not " + (typeof superClass === "undefined" ? "undefined" : (0, _typeof3.default)(superClass)));\n }\n\n subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODAuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9oZWxwZXJzL2luaGVyaXRzLmpzPzNkZmQiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfc2V0UHJvdG90eXBlT2YgPSByZXF1aXJlKFwiLi4vY29yZS1qcy9vYmplY3Qvc2V0LXByb3RvdHlwZS1vZlwiKTtcblxudmFyIF9zZXRQcm90b3R5cGVPZjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9zZXRQcm90b3R5cGVPZik7XG5cbnZhciBfY3JlYXRlID0gcmVxdWlyZShcIi4uL2NvcmUtanMvb2JqZWN0L2NyZWF0ZVwiKTtcblxudmFyIF9jcmVhdGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfY3JlYXRlKTtcblxudmFyIF90eXBlb2YyID0gcmVxdWlyZShcIi4uL2hlbHBlcnMvdHlwZW9mXCIpO1xuXG52YXIgX3R5cGVvZjMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF90eXBlb2YyKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH1cblxuZXhwb3J0cy5kZWZhdWx0ID0gZnVuY3Rpb24gKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7XG4gIGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCBcIiArICh0eXBlb2Ygc3VwZXJDbGFzcyA9PT0gXCJ1bmRlZmluZWRcIiA/IFwidW5kZWZpbmVkXCIgOiAoMCwgX3R5cGVvZjMuZGVmYXVsdCkoc3VwZXJDbGFzcykpKTtcbiAgfVxuXG4gIHN1YkNsYXNzLnByb3RvdHlwZSA9ICgwLCBfY3JlYXRlMi5kZWZhdWx0KShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7XG4gICAgY29uc3RydWN0b3I6IHtcbiAgICAgIHZhbHVlOiBzdWJDbGFzcyxcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9XG4gIH0pO1xuICBpZiAoc3VwZXJDbGFzcykgX3NldFByb3RvdHlwZU9mMi5kZWZhdWx0ID8gKDAsIF9zZXRQcm90b3R5cGVPZjIuZGVmYXVsdCkoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIDogc3ViQ2xhc3MuX19wcm90b19fID0gc3VwZXJDbGFzcztcbn07XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9oZWxwZXJzL2luaGVyaXRzLmpzXG4vLyBtb2R1bGUgaWQgPSA4MFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///80\n')},function(module,exports,__webpack_require__){eval('module.exports = { "default": __webpack_require__(82), __esModule: true };//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODEuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9jb3JlLWpzL29iamVjdC9zZXQtcHJvdG90eXBlLW9mLmpzPzkyMjAiXSwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSB7IFwiZGVmYXVsdFwiOiByZXF1aXJlKFwiY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9zZXQtcHJvdG90eXBlLW9mXCIpLCBfX2VzTW9kdWxlOiB0cnVlIH07XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9jb3JlLWpzL29iamVjdC9zZXQtcHJvdG90eXBlLW9mLmpzXG4vLyBtb2R1bGUgaWQgPSA4MVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///81\n')},function(module,exports,__webpack_require__){eval("__webpack_require__(83);\nmodule.exports = __webpack_require__(0).Object.setPrototypeOf;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODIuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9zZXQtcHJvdG90eXBlLW9mLmpzPzhiZjAiXSwic291cmNlc0NvbnRlbnQiOlsicmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lczYub2JqZWN0LnNldC1wcm90b3R5cGUtb2YnKTtcbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9fY29yZScpLk9iamVjdC5zZXRQcm90b3R5cGVPZjtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9mbi9vYmplY3Qvc2V0LXByb3RvdHlwZS1vZi5qc1xuLy8gbW9kdWxlIGlkID0gODJcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///82\n")},function(module,exports,__webpack_require__){eval("// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = __webpack_require__(5);\n$export($export.S, 'Object', { setPrototypeOf: __webpack_require__(84).set });\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2Lm9iamVjdC5zZXQtcHJvdG90eXBlLW9mLmpzPzdiMTgiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gMTkuMS4zLjE5IE9iamVjdC5zZXRQcm90b3R5cGVPZihPLCBwcm90bylcbnZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG4kZXhwb3J0KCRleHBvcnQuUywgJ09iamVjdCcsIHsgc2V0UHJvdG90eXBlT2Y6IHJlcXVpcmUoJy4vX3NldC1wcm90bycpLnNldCB9KTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL2VzNi5vYmplY3Quc2V0LXByb3RvdHlwZS1vZi5qc1xuLy8gbW9kdWxlIGlkID0gODNcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///83\n")},function(module,exports,__webpack_require__){eval("// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = __webpack_require__(7);\nvar anObject = __webpack_require__(10);\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = __webpack_require__(30)(Function.call, __webpack_require__(40).f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODQuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3NldC1wcm90by5qcz82NWE0Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFdvcmtzIHdpdGggX19wcm90b19fIG9ubHkuIE9sZCB2OCBjYW4ndCB3b3JrIHdpdGggbnVsbCBwcm90byBvYmplY3RzLlxuLyogZXNsaW50LWRpc2FibGUgbm8tcHJvdG8gKi9cbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4vX2lzLW9iamVjdCcpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi9fYW4tb2JqZWN0Jyk7XG52YXIgY2hlY2sgPSBmdW5jdGlvbiAoTywgcHJvdG8pIHtcbiAgYW5PYmplY3QoTyk7XG4gIGlmICghaXNPYmplY3QocHJvdG8pICYmIHByb3RvICE9PSBudWxsKSB0aHJvdyBUeXBlRXJyb3IocHJvdG8gKyBcIjogY2FuJ3Qgc2V0IGFzIHByb3RvdHlwZSFcIik7XG59O1xubW9kdWxlLmV4cG9ydHMgPSB7XG4gIHNldDogT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8ICgnX19wcm90b19fJyBpbiB7fSA/IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcbiAgICBmdW5jdGlvbiAodGVzdCwgYnVnZ3ksIHNldCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgc2V0ID0gcmVxdWlyZSgnLi9fY3R4JykoRnVuY3Rpb24uY2FsbCwgcmVxdWlyZSgnLi9fb2JqZWN0LWdvcGQnKS5mKE9iamVjdC5wcm90b3R5cGUsICdfX3Byb3RvX18nKS5zZXQsIDIpO1xuICAgICAgICBzZXQodGVzdCwgW10pO1xuICAgICAgICBidWdneSA9ICEodGVzdCBpbnN0YW5jZW9mIEFycmF5KTtcbiAgICAgIH0gY2F0Y2ggKGUpIHsgYnVnZ3kgPSB0cnVlOyB9XG4gICAgICByZXR1cm4gZnVuY3Rpb24gc2V0UHJvdG90eXBlT2YoTywgcHJvdG8pIHtcbiAgICAgICAgY2hlY2soTywgcHJvdG8pO1xuICAgICAgICBpZiAoYnVnZ3kpIE8uX19wcm90b19fID0gcHJvdG87XG4gICAgICAgIGVsc2Ugc2V0KE8sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIE87XG4gICAgICB9O1xuICAgIH0oe30sIGZhbHNlKSA6IHVuZGVmaW5lZCksXG4gIGNoZWNrOiBjaGVja1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19zZXQtcHJvdG8uanNcbi8vIG1vZHVsZSBpZCA9IDg0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///84\n")},function(module,exports,__webpack_require__){eval('module.exports = { "default": __webpack_require__(86), __esModule: true };//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODUuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9jb3JlLWpzL29iamVjdC9jcmVhdGUuanM/M2FmNCJdLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHsgXCJkZWZhdWx0XCI6IHJlcXVpcmUoXCJjb3JlLWpzL2xpYnJhcnkvZm4vb2JqZWN0L2NyZWF0ZVwiKSwgX19lc01vZHVsZTogdHJ1ZSB9O1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvY29yZS1qcy9vYmplY3QvY3JlYXRlLmpzXG4vLyBtb2R1bGUgaWQgPSA4NVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///85\n')},function(module,exports,__webpack_require__){eval("__webpack_require__(87);\nvar $Object = __webpack_require__(0).Object;\nmodule.exports = function create(P, D) {\n return $Object.create(P, D);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODYuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9jcmVhdGUuanM/YTBjZSJdLCJzb3VyY2VzQ29udGVudCI6WyJyZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzNi5vYmplY3QuY3JlYXRlJyk7XG52YXIgJE9iamVjdCA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZXMvX2NvcmUnKS5PYmplY3Q7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGNyZWF0ZShQLCBEKSB7XG4gIHJldHVybiAkT2JqZWN0LmNyZWF0ZShQLCBEKTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvZm4vb2JqZWN0L2NyZWF0ZS5qc1xuLy8gbW9kdWxlIGlkID0gODZcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///86\n")},function(module,exports,__webpack_require__){eval("var $export = __webpack_require__(5);\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: __webpack_require__(21) });\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODcuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2Lm9iamVjdC5jcmVhdGUuanM/YjA1ZiJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xuLy8gMTkuMS4yLjIgLyAxNS4yLjMuNSBPYmplY3QuY3JlYXRlKE8gWywgUHJvcGVydGllc10pXG4kZXhwb3J0KCRleHBvcnQuUywgJ09iamVjdCcsIHsgY3JlYXRlOiByZXF1aXJlKCcuL19vYmplY3QtY3JlYXRlJykgfSk7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9lczYub2JqZWN0LmNyZWF0ZS5qc1xuLy8gbW9kdWxlIGlkID0gODdcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///87\n")}]);
|
|
trunk/includes/builders/gutenberg/assets/js/wpglobus-gutenberg.js
DELETED
@@ -1,632 +0,0 @@
|
|
1 |
-
/**
|
2 |
-
* WPGlobus Administration
|
3 |
-
* Interface JS functions
|
4 |
-
*
|
5 |
-
* @since 1.9.17
|
6 |
-
* @since 2.2.3
|
7 |
-
*
|
8 |
-
* @package WPGlobus
|
9 |
-
* @subpackage Administration/Gutenberg
|
10 |
-
*/
|
11 |
-
/*jslint browser: true */
|
12 |
-
/*global jQuery, console, _wpGutenbergCodeEditorSettings*/
|
13 |
-
|
14 |
-
jQuery(document).ready(function ($) {
|
15 |
-
"use strict";
|
16 |
-
|
17 |
-
var api = {
|
18 |
-
counter: 0,
|
19 |
-
noticeOn: false,
|
20 |
-
initDone: false,
|
21 |
-
languageSelectorBoxDelta: 0,
|
22 |
-
oldLanguageSelector: false,
|
23 |
-
languageSelectorEnabled: true,
|
24 |
-
parseBool: function(b) {
|
25 |
-
return !(/^(false|0)$/i).test(b) && !!b;
|
26 |
-
},
|
27 |
-
getCounter: function(alias) {
|
28 |
-
return api.counter;
|
29 |
-
},
|
30 |
-
getOptionKey: function(alias) {
|
31 |
-
alias = alias || '';
|
32 |
-
return WPGlobusGutenberg.keyOption[alias];
|
33 |
-
},
|
34 |
-
getOptions: function() {
|
35 |
-
return WPGlobusGutenberg.options;
|
36 |
-
},
|
37 |
-
isOldLanguageSelector: function() {
|
38 |
-
return api.oldLanguageSelector;
|
39 |
-
},
|
40 |
-
isPostDisabled: function() {
|
41 |
-
return WPGlobusGutenberg.__post.disabled;
|
42 |
-
},
|
43 |
-
isEnabledTab: function(tab) {
|
44 |
-
if ( 'undefined' === typeof tab ) {
|
45 |
-
tab = 'options';
|
46 |
-
}
|
47 |
-
var enabled = false;
|
48 |
-
if ( 'options' == tab ) {
|
49 |
-
if ( api.parseBool(WPGlobusGutenberg.enabledOptionsTab) ) {
|
50 |
-
enabled = true;
|
51 |
-
}
|
52 |
-
}
|
53 |
-
return enabled;
|
54 |
-
},
|
55 |
-
init: function() {
|
56 |
-
WPGlobusGutenberg.yoastSeo = api.parseBool(WPGlobusGutenberg.yoastSeo);
|
57 |
-
WPGlobusGutenberg.elementor = api.parseBool(WPGlobusGutenberg.elementor);
|
58 |
-
if ( api.isPostDisabled() ) {
|
59 |
-
return;
|
60 |
-
}
|
61 |
-
api.initListeners();
|
62 |
-
api.initNotifications();
|
63 |
-
api.setTabs();
|
64 |
-
api.formHandler();
|
65 |
-
api.attachListeners();
|
66 |
-
},
|
67 |
-
initListeners: function() {
|
68 |
-
if ( WPGlobusGutenberg.yoastSeo && 1 == $('.yoast.wpseo-metabox').length ) {
|
69 |
-
/**
|
70 |
-
* Prevent start of alert message when yoast seo is present.
|
71 |
-
* Check getEventListeners(window).beforeunload in Chrome console for beforeunload event.
|
72 |
-
* @see https://developers.google.com/web/tools/chrome-devtools/console/command-line-reference#monitoreventsobject-events
|
73 |
-
*/
|
74 |
-
$(window).on('beforeunload', function (event) {
|
75 |
-
event.stopImmediatePropagation()
|
76 |
-
});
|
77 |
-
}
|
78 |
-
},
|
79 |
-
formHandler: function() {
|
80 |
-
|
81 |
-
var val = $('.metabox-base-form #referredby').attr('value');
|
82 |
-
if ( 'undefined' !== typeof val ) {
|
83 |
-
if( val.indexOf('language=en') == -1 ) {
|
84 |
-
val = val+'&language='+WPGlobusGutenberg.language;
|
85 |
-
} else {
|
86 |
-
val = val.replace('language=en', 'language='+WPGlobusGutenberg.language);
|
87 |
-
}
|
88 |
-
$('.metabox-base-form #referredby').attr('value', val);
|
89 |
-
}
|
90 |
-
|
91 |
-
val = $('input[name="_wp_original_http_referer"]').attr('value');
|
92 |
-
if ( 'undefined' !== typeof val ) {
|
93 |
-
if( val.indexOf('language=en') == -1 ) {
|
94 |
-
val = val+'&language='+WPGlobusGutenberg.language;
|
95 |
-
} else {
|
96 |
-
val = val.replace('language=en', 'language='+WPGlobusGutenberg.language);
|
97 |
-
}
|
98 |
-
$('input[name="_wp_original_http_referer"]').attr('value', val);
|
99 |
-
}
|
100 |
-
},
|
101 |
-
initNotifications: function() {
|
102 |
-
// @since 2.4.11
|
103 |
-
if ( 'undefined' === typeof wp.editPost || 'undefined' === typeof wp.plugins ) {
|
104 |
-
return;
|
105 |
-
}
|
106 |
-
if ( ! WPGlobusGutenberg.elementor ) {
|
107 |
-
return;
|
108 |
-
}
|
109 |
-
if ( 'internal' != WPGlobusGutenberg.data.elementorCssPrintMethod ) {
|
110 |
-
return;
|
111 |
-
}
|
112 |
-
|
113 |
-
wp.data.dispatch('core/notices').createNotice(
|
114 |
-
'error', // Can be one of: success, info, warning, error.
|
115 |
-
WPGlobusGutenberg.i18n.elementorWarning, // Text string to display.
|
116 |
-
{
|
117 |
-
id: 'elementorcssprintmethodnotice', // Assigning an ID prevents the notice from being added repeatedly.
|
118 |
-
isDismissible: true, // Whether the user can dismiss the notice.
|
119 |
-
actions: [
|
120 |
-
// Any actions the user can perform.
|
121 |
-
{
|
122 |
-
url: WPGlobusGutenberg.i18n.elementorActionLink,
|
123 |
-
label: WPGlobusGutenberg.i18n.elementorActionLabel
|
124 |
-
}
|
125 |
-
]
|
126 |
-
}
|
127 |
-
);
|
128 |
-
},
|
129 |
-
setTabs: function() {
|
130 |
-
if ( WPGlobusGutenberg.tabs.length == 0 ) {
|
131 |
-
api.WPGlobusSwitcherPlugin();
|
132 |
-
return;
|
133 |
-
}
|
134 |
-
api.oldLanguageSelector = true;
|
135 |
-
var intervalID = setInterval( function() {
|
136 |
-
/** var $toolbar = $('.edit-post-header'); **/
|
137 |
-
var $toolbar = $('.edit-post-header__settings');
|
138 |
-
if( $toolbar.length == 1 ) {
|
139 |
-
$toolbar.before(WPGlobusGutenberg.tabs);
|
140 |
-
/*
|
141 |
-
var width = $('.edit-post-header-toolbar').css('width');
|
142 |
-
width = width.replace('px','') * 1;
|
143 |
-
if ( width < 50 ) {
|
144 |
-
width = width + 5;
|
145 |
-
} else {
|
146 |
-
width = width + 30;
|
147 |
-
}
|
148 |
-
$('.wpglobus-gutenberg-selector-box').css({'margin-left':width+'px'});
|
149 |
-
// */
|
150 |
-
clearInterval(intervalID)
|
151 |
-
} else {
|
152 |
-
//console.log('Here: else');
|
153 |
-
}
|
154 |
-
}, 200);
|
155 |
-
},
|
156 |
-
setSelectorStatus: function() {
|
157 |
-
if ( ! api.isOldLanguageSelector() ) {
|
158 |
-
return;
|
159 |
-
}
|
160 |
-
$('.wpglobus-gutenberg-selector-box').css({'opacity':'0.2'}).attr('onclick','return false;');
|
161 |
-
api.languageSelectorEnabled = false;
|
162 |
-
var iID = setInterval( function() {
|
163 |
-
if ( $('.is-saving').length == 0 ) {
|
164 |
-
clearInterval(iID);
|
165 |
-
if ( WPGlobusGutenberg.pagenow == WPGlobusGutenberg.postNewPage ) {
|
166 |
-
if ( location.pathname.indexOf(WPGlobusGutenberg.postEditPage) != -1 ) {
|
167 |
-
WPGlobusGutenberg.pagenow = WPGlobusGutenberg.postEditPage;
|
168 |
-
$('.wpglobus-gutenberg-selector-box').css({'opacity':'1'}).attr('onclick','');
|
169 |
-
api.reloadPage();
|
170 |
-
return;
|
171 |
-
}
|
172 |
-
}
|
173 |
-
api.languageSelectorEnabled = true;
|
174 |
-
$('.wpglobus-gutenberg-selector-box').css({'opacity':'1'}).attr('onclick','');
|
175 |
-
}
|
176 |
-
}, 400);
|
177 |
-
},
|
178 |
-
reloadPage: function() {
|
179 |
-
$('.wpglobus-selector-grid').css({'grid-template-columns':'10% 90%'});
|
180 |
-
$('.wpglobus-gutenberg-selector-text').text(WPGlobusGutenberg.i18n.reload);
|
181 |
-
(function blink() {
|
182 |
-
$('.wpglobus-gutenberg-selector').fadeOut(500).fadeIn(500, blink);
|
183 |
-
})();
|
184 |
-
setTimeout( function() {
|
185 |
-
location.reload();
|
186 |
-
}, 500);
|
187 |
-
},
|
188 |
-
attachListeners: function() {
|
189 |
-
if ( ! api.isOldLanguageSelector() ) {
|
190 |
-
return;
|
191 |
-
}
|
192 |
-
/**
|
193 |
-
* Language selector.
|
194 |
-
*/
|
195 |
-
$(document).on('mouseenter', '.wpglobus-gutenberg-selector', function(ev) {
|
196 |
-
if ( ! api.languageSelectorEnabled ) {
|
197 |
-
return;
|
198 |
-
}
|
199 |
-
$('.wpglobus-gutenberg-selector-dropdown').css({'display':'block'});
|
200 |
-
api.languageSelectorBoxDelta = ev.screenY;
|
201 |
-
$('.edit-post-header').css({'z-index':'100000'});
|
202 |
-
$('.wpglobus-gutenberg-selector-box').css({'z-index':'100001'});
|
203 |
-
});
|
204 |
-
$(document).on('mouseleave', '.wpglobus-gutenberg-selector', function(ev) {
|
205 |
-
if ( api.languageSelectorBoxDelta != 0 && ev.screenY - api.languageSelectorBoxDelta <= 0) {
|
206 |
-
$('.wpglobus-gutenberg-selector-dropdown').css({'display':'none'});
|
207 |
-
$('.edit-post-header').css({'z-index':'9989'});
|
208 |
-
$('.wpglobus-gutenberg-selector-box').css({'z-index':'100'});
|
209 |
-
}
|
210 |
-
});
|
211 |
-
|
212 |
-
/**
|
213 |
-
* Dropdown list.
|
214 |
-
*/
|
215 |
-
$(document).on('mouseleave', '.wpglobus-gutenberg-selector-dropdown', function(ev) {
|
216 |
-
$('.wpglobus-gutenberg-selector-dropdown').css({'display':'none'});
|
217 |
-
$('.edit-post-header').css({'z-index':'9989'});
|
218 |
-
$('.wpglobus-gutenberg-selector-box').css({'z-index':'10000'});
|
219 |
-
});
|
220 |
-
|
221 |
-
/**
|
222 |
-
* editor-post-save-draft.
|
223 |
-
*/
|
224 |
-
$(document).on('click', '.editor-post-save-draft', function() {
|
225 |
-
api.setSelectorStatus();
|
226 |
-
});
|
227 |
-
|
228 |
-
/**
|
229 |
-
* editor-post-publish-button.
|
230 |
-
*/
|
231 |
-
$(document).on('click', '.editor-post-publish-button', function() {
|
232 |
-
api.setSelectorStatus();
|
233 |
-
});
|
234 |
-
|
235 |
-
},
|
236 |
-
WPGlobusSwitcherPlugin: function(){
|
237 |
-
// @since 2.2.3
|
238 |
-
// @since 2.2.14
|
239 |
-
|
240 |
-
if ( 'undefined' === typeof wp.editPost || 'undefined' === typeof wp.plugins ) {
|
241 |
-
// @since 2.2.15
|
242 |
-
return;
|
243 |
-
}
|
244 |
-
var language = WPGlobusGutenberg.language;
|
245 |
-
var enabledLanguages = WPGlobusCoreData.enabled_languages;
|
246 |
-
var languageNames = WPGlobusCoreData.en_language_name;
|
247 |
-
var flagsUrl = WPGlobusGutenberg.flags_url;
|
248 |
-
var switcherButtonTitle = 'WPGlobus Switcher';
|
249 |
-
var ref = location.href;
|
250 |
-
var refs = {};
|
251 |
-
for (var key in enabledLanguages) {
|
252 |
-
if ( -1 == ref.indexOf('language='+language) ) {
|
253 |
-
refs[enabledLanguages[key]] = ref + '&language='+enabledLanguages[key];
|
254 |
-
} else {
|
255 |
-
refs[enabledLanguages[key]] = ref.replace( 'language='+language, 'language='+enabledLanguages[key] );
|
256 |
-
}
|
257 |
-
}
|
258 |
-
|
259 |
-
var __ = wp.i18n.__;
|
260 |
-
var el = wp.element.createElement;
|
261 |
-
var Fragment = wp.element.Fragment;
|
262 |
-
|
263 |
-
var TabPanel = wp.components.TabPanel;
|
264 |
-
var withState = wp.compose.withState;
|
265 |
-
var RadioControl = wp.components.RadioControl;
|
266 |
-
var Notice = wp.components.Notice;
|
267 |
-
var Button = wp.components.Button;
|
268 |
-
|
269 |
-
var PluginSidebarMoreMenuItem = wp.editPost.PluginSidebarMoreMenuItem;
|
270 |
-
var PanelBody = wp.components.PanelBody;
|
271 |
-
var PluginSidebar = wp.editPost.PluginSidebar;
|
272 |
-
var registerPlugin = wp.plugins.registerPlugin;
|
273 |
-
|
274 |
-
var pluginStarButton = $('.components-panel__header.edit-post-sidebar-header button.components-icon-button').eq(0);
|
275 |
-
|
276 |
-
var switcherButtonHTML = {
|
277 |
-
flagOnly: '<img height="20" width="20" style="width:20px;" src="'+WPGlobusGutenberg.flags_url[WPGlobusGutenberg.language]+'" />',
|
278 |
-
flagLanguage: '<img height="20" width="20" style="width:20px;" src="'+WPGlobusGutenberg.flags_url[WPGlobusGutenberg.language]+'" /> ' + WPGlobusAdmin.data.en_language_name[WPGlobusGutenberg.language],
|
279 |
-
flagCode: '<img height="20" width="20" style="width:20px;" src="'+WPGlobusGutenberg.flags_url[WPGlobusGutenberg.language]+'" /> ' + WPGlobusGutenberg.language,
|
280 |
-
languageOnly: ' ' + WPGlobusAdmin.data.en_language_name[WPGlobusGutenberg.language],
|
281 |
-
languageCode: ' ' + WPGlobusGutenberg.language,
|
282 |
-
};
|
283 |
-
|
284 |
-
var switcherPluginButtonType = '';
|
285 |
-
var promisedPluginButtonType = '';
|
286 |
-
var optionSwitcherButtonType = api.getOptionKey('switcherButtonType');
|
287 |
-
|
288 |
-
function setSwitcherButtonType(type) {
|
289 |
-
type = type || 'flagLanguage';
|
290 |
-
switcherPluginButtonType = type;
|
291 |
-
}
|
292 |
-
|
293 |
-
function getSwitcherButtonType() {
|
294 |
-
return switcherPluginButtonType;
|
295 |
-
}
|
296 |
-
|
297 |
-
function getSwitcherButtonTitle() {
|
298 |
-
return switcherButtonTitle;
|
299 |
-
}
|
300 |
-
|
301 |
-
setSwitcherButtonType(WPGlobusGutenberg.options[optionSwitcherButtonType]);
|
302 |
-
|
303 |
-
promisedPluginButtonType = getSwitcherButtonType();
|
304 |
-
|
305 |
-
$(document).on('click', pluginStarButton, function(){
|
306 |
-
setSwitcherPluginButton();
|
307 |
-
});
|
308 |
-
|
309 |
-
function rbAnimate(start) {
|
310 |
-
if ( 'undefined' === typeof start ) {
|
311 |
-
start = true;
|
312 |
-
}
|
313 |
-
var elems = document.querySelectorAll('.wpglobus-switcher-components-radio-control .components-radio-control__input');
|
314 |
-
if ( elems.length == 0 ) {
|
315 |
-
return;
|
316 |
-
}
|
317 |
-
if ( start ) {
|
318 |
-
elems.forEach(function(elem) {
|
319 |
-
elem.classList.add(elem.value);
|
320 |
-
elem.classList.remove('wpglobus-switcher-pulsate-radio');
|
321 |
-
elem.classList.add('wpglobus-switcher-pulsate-radio-off');
|
322 |
-
});
|
323 |
-
var elem = document.querySelector('.wpglobus-switcher-components-radio-control .'+promisedPluginButtonType);
|
324 |
-
elem.classList.remove('wpglobus-switcher-pulsate-radio-off');
|
325 |
-
elem.classList.add('wpglobus-switcher-pulsate-radio');
|
326 |
-
} else {
|
327 |
-
elems.forEach(function(elem) {
|
328 |
-
elem.classList.remove('wpglobus-switcher-pulsate-radio');
|
329 |
-
elem.classList.remove('wpglobus-switcher-pulsate-radio-off');
|
330 |
-
elem.classList.add('wpglobus-switcher-pulsate-radio-on');
|
331 |
-
});
|
332 |
-
}
|
333 |
-
}
|
334 |
-
function notice(el, mess) {
|
335 |
-
if ( 'undefined' === typeof el || api.noticeOn ) {
|
336 |
-
return;
|
337 |
-
}
|
338 |
-
api.noticeOn = true;
|
339 |
-
el.innerText = mess;
|
340 |
-
el.classList.remove('hidden');
|
341 |
-
setTimeout(function() {
|
342 |
-
el.classList.add('hidden');
|
343 |
-
api.noticeOn = false;
|
344 |
-
}, 3000);
|
345 |
-
}
|
346 |
-
|
347 |
-
function setOption(option, value) {
|
348 |
-
option = option || '';
|
349 |
-
value = value || '';
|
350 |
-
if ( optionSwitcherButtonType == option ) {
|
351 |
-
rbAnimate(true);
|
352 |
-
saveOptions(option, value).then(function(response){
|
353 |
-
if ('success' == response.result) {
|
354 |
-
setSwitcherButtonType(value);
|
355 |
-
WPGlobusGutenberg.options[optionSwitcherButtonType] = value;
|
356 |
-
setSwitcherPluginButton(value);
|
357 |
-
}
|
358 |
-
})
|
359 |
-
.fail( function(response) {
|
360 |
-
var el = document.getElementsByClassName('wpglobus-switcher-error-message');
|
361 |
-
if ('undefined' !== typeof el[0]) {
|
362 |
-
if ('error' == response.result) {
|
363 |
-
notice(el[0], response.message);
|
364 |
-
} else if (response.status == 400) {
|
365 |
-
notice(el[0], 'Error: '+response.status + ' (' + response.statusText + ')' );
|
366 |
-
}
|
367 |
-
promisedPluginButtonType = getSwitcherButtonType();
|
368 |
-
}
|
369 |
-
var tab = document.getElementsByClassName('wpglobus-panel-tab-options');
|
370 |
-
if ('undefined' !== typeof tab[0]) {
|
371 |
-
if ( -1 != tab[0].classList.value.indexOf('is-active') ) {
|
372 |
-
tab[0].click();
|
373 |
-
}
|
374 |
-
}
|
375 |
-
})
|
376 |
-
.always(function() {
|
377 |
-
rbAnimate(false);
|
378 |
-
});
|
379 |
-
}
|
380 |
-
}
|
381 |
-
|
382 |
-
function saveOptions(option, value) {
|
383 |
-
option = option || '';
|
384 |
-
if ( option == '' ) {
|
385 |
-
return;
|
386 |
-
}
|
387 |
-
var data = {};
|
388 |
-
data['sender'] = 'WPGlobusGutenberg';
|
389 |
-
data['_action'] = 'saveOption';
|
390 |
-
data['is_admin'] = 1;
|
391 |
-
data['counter'] = api.counter++;
|
392 |
-
data['options'] = {};
|
393 |
-
data['options'][option] = value;
|
394 |
-
return wp.ajax.post(WPGlobusGutenberg.wpglobusAjax, {data:data});
|
395 |
-
}
|
396 |
-
|
397 |
-
function getSwitcherButton(type) {
|
398 |
-
if ( 'undefined' === typeof switcherButtonHTML[type] ) {
|
399 |
-
type = switcherPluginButtonType;
|
400 |
-
}
|
401 |
-
return switcherButtonHTML[type];
|
402 |
-
}
|
403 |
-
|
404 |
-
function setSwitcherPluginButton(type) {
|
405 |
-
if ( 'undefined' === typeof type || 'undefined' === typeof switcherButtonHTML[type] ) {
|
406 |
-
type = switcherPluginButtonType;
|
407 |
-
}
|
408 |
-
|
409 |
-
setTimeout(function() {
|
410 |
-
var button = document.querySelector('[aria-label="'+getSwitcherButtonTitle()+'"]');
|
411 |
-
if ( 'undefined' === typeof button || null === button ) {
|
412 |
-
return;
|
413 |
-
}
|
414 |
-
var status = button.dataset.status;
|
415 |
-
if ( 'undefined' === typeof status ) {
|
416 |
-
var content = button.innerHTML;
|
417 |
-
button.innerHTML = content + getSwitcherButton(type);
|
418 |
-
button.dataset.status = 'init';
|
419 |
-
} else {
|
420 |
-
button.innerHTML = getSwitcherButton(type);
|
421 |
-
button.dataset.status = 'changed';
|
422 |
-
}
|
423 |
-
}, 300);
|
424 |
-
}
|
425 |
-
|
426 |
-
function languageList() {
|
427 |
-
|
428 |
-
if ( WPGlobusGutenberg.pagenow == WPGlobusGutenberg.postNewPage ) {
|
429 |
-
return el(
|
430 |
-
'div',
|
431 |
-
{style:{marginBottom:'20px'},className: "wpglobus-switcher-panel__switcher-notice"},
|
432 |
-
WPGlobusGutenberg.i18n.save_post
|
433 |
-
);
|
434 |
-
}
|
435 |
-
|
436 |
-
return el(
|
437 |
-
'ul',
|
438 |
-
{className: 'language-list'},
|
439 |
-
enabledLanguages.map(
|
440 |
-
function(lang){
|
441 |
-
return el( 'li', {key:lang, className:'language-item'},
|
442 |
-
el('img', {style:{marginRight:'7px',width:'20px'},className:'wpglobus-switcher-panel__flag', height:'20', width:'20', src:flagsUrl[lang]}),
|
443 |
-
el(Button, {href:refs[lang], isSmall:true, isPrimary:true}, languageNames[lang])
|
444 |
-
);
|
445 |
-
}
|
446 |
-
)
|
447 |
-
);
|
448 |
-
}
|
449 |
-
|
450 |
-
function onTabSelect(tab) {
|
451 |
-
if ( tab.name == 'switcher' ) {
|
452 |
-
return SwitcherTabContent();
|
453 |
-
} else if ( tab.name == 'options' ) {
|
454 |
-
return OptionsTabContent();
|
455 |
-
}
|
456 |
-
}
|
457 |
-
|
458 |
-
function TabLayout() {
|
459 |
-
|
460 |
-
var tabs = [
|
461 |
-
{
|
462 |
-
name: 'switcher',
|
463 |
-
title: 'Languages',
|
464 |
-
className: 'wpglobus-panel-tab wpglobus-panel-tab-selector edit-post-sidebar__panel-tab'
|
465 |
-
}
|
466 |
-
];
|
467 |
-
|
468 |
-
if ( WPGlobusGutenberg.isEnabledTab('options') ) {
|
469 |
-
tabs.push(
|
470 |
-
{
|
471 |
-
name: 'options',
|
472 |
-
title: 'Options',
|
473 |
-
className: 'wpglobus-panel-tab wpglobus-panel-tab-options edit-post-sidebar__panel-tab'
|
474 |
-
}
|
475 |
-
);
|
476 |
-
}
|
477 |
-
|
478 |
-
return el(
|
479 |
-
TabPanel,
|
480 |
-
{
|
481 |
-
name: 'WPGlobusSwitcherTabPanel',
|
482 |
-
className: 'wpglobus-tab-panel',
|
483 |
-
activeClass: 'is-active',
|
484 |
-
tabs: tabs
|
485 |
-
},
|
486 |
-
onTabSelect
|
487 |
-
);
|
488 |
-
}
|
489 |
-
|
490 |
-
function SwitcherTabContent() {
|
491 |
-
return el(
|
492 |
-
'div',
|
493 |
-
{
|
494 |
-
className: 'wpglobus-tab-content wpglobus-selector-tab-content',
|
495 |
-
},
|
496 |
-
el(
|
497 |
-
Notice,
|
498 |
-
{
|
499 |
-
className: 'wpglobus-switcher-panel__notice',
|
500 |
-
status: 'informational',
|
501 |
-
isDismissible: false
|
502 |
-
},
|
503 |
-
__( 'Select language' )
|
504 |
-
),
|
505 |
-
el(
|
506 |
-
'div',
|
507 |
-
{
|
508 |
-
className: 'wpglobus-switcher-panel__switcher-box'
|
509 |
-
},
|
510 |
-
languageList()
|
511 |
-
),
|
512 |
-
el(
|
513 |
-
Button,
|
514 |
-
{
|
515 |
-
className: 'wpglobus-switcher-panel__button-link wpglobus-switcher-panel__info',
|
516 |
-
href: WPGlobusGutenberg.store_link,
|
517 |
-
isLink: true,
|
518 |
-
target: "_blank"
|
519 |
-
},
|
520 |
-
__( 'WPGlobus Premium' )
|
521 |
-
),
|
522 |
-
el(
|
523 |
-
Button,
|
524 |
-
{
|
525 |
-
className: 'wpglobus-switcher-panel__button-link wpglobus-switcher-panel__settings-link',
|
526 |
-
href: WPGlobusGutenberg.options_page_url,
|
527 |
-
isLink: true
|
528 |
-
},
|
529 |
-
__( 'WPGlobus Options' )
|
530 |
-
)
|
531 |
-
);
|
532 |
-
}
|
533 |
-
|
534 |
-
var SwitcherPluginButton = withState({
|
535 |
-
value: promisedPluginButtonType
|
536 |
-
})(({
|
537 |
-
value,
|
538 |
-
setState
|
539 |
-
}) => el(RadioControl, {
|
540 |
-
label: '',
|
541 |
-
help: 'Select type of switcher language button.',
|
542 |
-
selected: promisedPluginButtonType,
|
543 |
-
className: 'wpglobus-switcher-components-radio-control',
|
544 |
-
options: [
|
545 |
-
{ label: 'Flag only', value: 'flagOnly' },
|
546 |
-
{ label: 'Flag with language', value: 'flagLanguage' },
|
547 |
-
{ label: 'Flag with language code', value: 'flagCode' },
|
548 |
-
{ label: 'Language only', value: 'languageOnly' },
|
549 |
-
{ label: 'Language code', value: 'languageCode' },
|
550 |
-
],
|
551 |
-
onChange: value => {
|
552 |
-
promisedPluginButtonType = value;
|
553 |
-
setState({
|
554 |
-
value
|
555 |
-
});
|
556 |
-
// @see setOption function for setSwitcherButtonType(value) and setSwitcherPluginButton(value)
|
557 |
-
setOption(optionSwitcherButtonType, value);
|
558 |
-
}
|
559 |
-
}));
|
560 |
-
|
561 |
-
function OptionsTabContent() {
|
562 |
-
return el(
|
563 |
-
'div',
|
564 |
-
{
|
565 |
-
className: 'wpglobus-tab-content wpglobus-options-tab-content',
|
566 |
-
},
|
567 |
-
el(
|
568 |
-
Notice,
|
569 |
-
{
|
570 |
-
className: 'wpglobus-switcher-panel__notice',
|
571 |
-
status: 'informational',
|
572 |
-
isDismissible: false
|
573 |
-
},
|
574 |
-
__( 'Select type' )
|
575 |
-
),
|
576 |
-
el(
|
577 |
-
SwitcherPluginButton,
|
578 |
-
null
|
579 |
-
)
|
580 |
-
);
|
581 |
-
}
|
582 |
-
|
583 |
-
function Component() {
|
584 |
-
setSwitcherPluginButton();
|
585 |
-
return el(
|
586 |
-
Fragment,
|
587 |
-
{},
|
588 |
-
el(
|
589 |
-
PluginSidebarMoreMenuItem,
|
590 |
-
{
|
591 |
-
target: 'wpglobus-switcher-sidebar',
|
592 |
-
icon: 'admin-site',
|
593 |
-
//onClick: @see wp-includes\js\dist\edit-post.js
|
594 |
-
},
|
595 |
-
__( 'WPGlobus' )
|
596 |
-
),
|
597 |
-
el(
|
598 |
-
PluginSidebar,
|
599 |
-
{
|
600 |
-
name: 'wpglobus-switcher-sidebar',
|
601 |
-
title: getSwitcherButtonTitle(),
|
602 |
-
className: 'wpglobus-switcher-components-panel',
|
603 |
-
//togglePin: @see wp-includes\js\dist\edit-post.js
|
604 |
-
},
|
605 |
-
el(
|
606 |
-
'div',
|
607 |
-
{
|
608 |
-
className: 'wpglobus-switcher-message wpglobus-switcher-error-message hidden',
|
609 |
-
style:{}
|
610 |
-
},
|
611 |
-
''
|
612 |
-
),
|
613 |
-
el(
|
614 |
-
PanelBody,
|
615 |
-
{
|
616 |
-
className: 'wpglobus-switcher-panel__body'
|
617 |
-
},
|
618 |
-
TabLayout()
|
619 |
-
)
|
620 |
-
|
621 |
-
)
|
622 |
-
);
|
623 |
-
}
|
624 |
-
registerPlugin( 'wpglobus-switcher', {
|
625 |
-
icon: '',
|
626 |
-
render: Component,
|
627 |
-
} );
|
628 |
-
}
|
629 |
-
}
|
630 |
-
WPGlobusGutenberg = $.extend({}, WPGlobusGutenberg, api);
|
631 |
-
WPGlobusGutenberg.init();
|
632 |
-
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/includes/builders/gutenberg/assets/js/wpglobus-gutenberg.min.js
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
"use strict";jQuery(document).ready(function(E){var C={counter:0,noticeOn:!1,initDone:!1,languageSelectorBoxDelta:0,oldLanguageSelector:!1,languageSelectorEnabled:!0,parseBool:function(e){return!/^(false|0)$/i.test(e)&&!!e},getCounter:function(){return C.counter},getOptionKey:function(e){return e=e||"",WPGlobusGutenberg.keyOption[e]},getOptions:function(){return WPGlobusGutenberg.options},isOldLanguageSelector:function(){return C.oldLanguageSelector},isPostDisabled:function(){return WPGlobusGutenberg.__post.disabled},isEnabledTab:function(e){void 0===e&&(e="options");var t=!1;return"options"==e&&C.parseBool(WPGlobusGutenberg.enabledOptionsTab)&&(t=!0),t},init:function(){WPGlobusGutenberg.yoastSeo=C.parseBool(WPGlobusGutenberg.yoastSeo),WPGlobusGutenberg.elementor=C.parseBool(WPGlobusGutenberg.elementor),C.isPostDisabled()||(C.initListeners(),C.initNotifications(),C.setTabs(),C.formHandler(),C.attachListeners())},initListeners:function(){WPGlobusGutenberg.yoastSeo&&1==E(".yoast.wpseo-metabox").length&&E(window).on("beforeunload",function(e){e.stopImmediatePropagation()})},formHandler:function(){var e=E(".metabox-base-form #referredby").attr("value");void 0!==e&&(e=-1==e.indexOf("language=en")?e+"&language="+WPGlobusGutenberg.language:e.replace("language=en","language="+WPGlobusGutenberg.language),E(".metabox-base-form #referredby").attr("value",e)),void 0!==(e=E('input[name="_wp_original_http_referer"]').attr("value"))&&(e=-1==e.indexOf("language=en")?e+"&language="+WPGlobusGutenberg.language:e.replace("language=en","language="+WPGlobusGutenberg.language),E('input[name="_wp_original_http_referer"]').attr("value",e))},initNotifications:function(){void 0!==wp.editPost&&void 0!==wp.plugins&&WPGlobusGutenberg.elementor&&"internal"==WPGlobusGutenberg.data.elementorCssPrintMethod&&wp.data.dispatch("core/notices").createNotice("error",WPGlobusGutenberg.i18n.elementorWarning,{id:"elementorcssprintmethodnotice",isDismissible:!0,actions:[{url:WPGlobusGutenberg.i18n.elementorActionLink,label:WPGlobusGutenberg.i18n.elementorActionLabel}]})},setTabs:function(){var t;0!=WPGlobusGutenberg.tabs.length?(C.oldLanguageSelector=!0,t=setInterval(function(){var e=E(".edit-post-header__settings");1==e.length&&(e.before(WPGlobusGutenberg.tabs),clearInterval(t))},200)):C.WPGlobusSwitcherPlugin()},setSelectorStatus:function(){var e;C.isOldLanguageSelector()&&(E(".wpglobus-gutenberg-selector-box").css({opacity:"0.2"}).attr("onclick","return false;"),C.languageSelectorEnabled=!1,e=setInterval(function(){if(0==E(".is-saving").length){if(clearInterval(e),WPGlobusGutenberg.pagenow==WPGlobusGutenberg.postNewPage&&-1!=location.pathname.indexOf(WPGlobusGutenberg.postEditPage))return WPGlobusGutenberg.pagenow=WPGlobusGutenberg.postEditPage,E(".wpglobus-gutenberg-selector-box").css({opacity:"1"}).attr("onclick",""),void C.reloadPage();C.languageSelectorEnabled=!0,E(".wpglobus-gutenberg-selector-box").css({opacity:"1"}).attr("onclick","")}},400))},reloadPage:function(){E(".wpglobus-selector-grid").css({"grid-template-columns":"10% 90%"}),E(".wpglobus-gutenberg-selector-text").text(WPGlobusGutenberg.i18n.reload),function e(){E(".wpglobus-gutenberg-selector").fadeOut(500).fadeIn(500,e)}(),setTimeout(function(){location.reload()},500)},attachListeners:function(){C.isOldLanguageSelector()&&(E(document).on("mouseenter",".wpglobus-gutenberg-selector",function(e){C.languageSelectorEnabled&&(E(".wpglobus-gutenberg-selector-dropdown").css({display:"block"}),C.languageSelectorBoxDelta=e.screenY,E(".edit-post-header").css({"z-index":"100000"}),E(".wpglobus-gutenberg-selector-box").css({"z-index":"100001"}))}),E(document).on("mouseleave",".wpglobus-gutenberg-selector",function(e){0!=C.languageSelectorBoxDelta&&e.screenY-C.languageSelectorBoxDelta<=0&&(E(".wpglobus-gutenberg-selector-dropdown").css({display:"none"}),E(".edit-post-header").css({"z-index":"9989"}),E(".wpglobus-gutenberg-selector-box").css({"z-index":"100"}))}),E(document).on("mouseleave",".wpglobus-gutenberg-selector-dropdown",function(e){E(".wpglobus-gutenberg-selector-dropdown").css({display:"none"}),E(".edit-post-header").css({"z-index":"9989"}),E(".wpglobus-gutenberg-selector-box").css({"z-index":"10000"})}),E(document).on("click",".editor-post-save-draft",function(){C.setSelectorStatus()}),E(document).on("click",".editor-post-publish-button",function(){C.setSelectorStatus()}))},WPGlobusSwitcherPlugin:function(){if(void 0!==wp.editPost&&void 0!==wp.plugins){var e,t=WPGlobusGutenberg.language,n=WPGlobusCoreData.enabled_languages,o=WPGlobusCoreData.en_language_name,s=WPGlobusGutenberg.flags_url,a="WPGlobus Switcher",l=location.href,u={};for(e in n)-1==l.indexOf("language="+t)?u[n[e]]=l+"&language="+n[e]:u[n[e]]=l.replace("language="+t,"language="+n[e]);var i=wp.i18n.__,r=wp.element.createElement,g=wp.element.Fragment,c=wp.components.TabPanel,b=wp.compose.withState,p=wp.components.RadioControl,d=wp.components.Notice,w=wp.components.Button,m=wp.editPost.PluginSidebarMoreMenuItem,G=wp.components.PanelBody,f=wp.editPost.PluginSidebar,h=wp.plugins.registerPlugin,P=E(".components-panel__header.edit-post-sidebar-header button.components-icon-button").eq(0),v={flagOnly:'<img height="20" width="20" style="width:20px;" src="'+WPGlobusGutenberg.flags_url[WPGlobusGutenberg.language]+'" />',flagLanguage:'<img height="20" width="20" style="width:20px;" src="'+WPGlobusGutenberg.flags_url[WPGlobusGutenberg.language]+'" /> '+WPGlobusAdmin.data.en_language_name[WPGlobusGutenberg.language],flagCode:'<img height="20" width="20" style="width:20px;" src="'+WPGlobusGutenberg.flags_url[WPGlobusGutenberg.language]+'" /> '+WPGlobusGutenberg.language,languageOnly:" "+WPGlobusAdmin.data.en_language_name[WPGlobusGutenberg.language],languageCode:" "+WPGlobusGutenberg.language},W="",_="",y=C.getOptionKey("switcherButtonType");S(WPGlobusGutenberg.options[y]),_=W,E(document).on("click",P,function(){T()});var x=b({value:_})(function(e){e.value;var t=e.setState;return r(p,{label:"",help:"Select type of switcher language button.",selected:_,className:"wpglobus-switcher-components-radio-control",options:[{label:"Flag only",value:"flagOnly"},{label:"Flag with language",value:"flagLanguage"},{label:"Flag with language code",value:"flagCode"},{label:"Language only",value:"languageOnly"},{label:"Language code",value:"languageCode"}],onChange:function(e){t({value:_=e}),O(y,e)}})});h("wpglobus-switcher",{icon:"",render:function(){return T(),r(g,{},r(m,{target:"wpglobus-switcher-sidebar",icon:"admin-site"},i("WPGlobus")),r(f,{name:"wpglobus-switcher-sidebar",title:a,className:"wpglobus-switcher-components-panel"},r("div",{className:"wpglobus-switcher-message wpglobus-switcher-error-message hidden",style:{}},""),r(G,{className:"wpglobus-switcher-panel__body"},(e=[{name:"switcher",title:"Languages",className:"wpglobus-panel-tab wpglobus-panel-tab-selector edit-post-sidebar__panel-tab"}],WPGlobusGutenberg.isEnabledTab("options")&&e.push({name:"options",title:"Options",className:"wpglobus-panel-tab wpglobus-panel-tab-options edit-post-sidebar__panel-tab"}),r(c,{name:"WPGlobusSwitcherTabPanel",className:"wpglobus-tab-panel",activeClass:"is-active",tabs:e},B)))));var e}})}function S(e){W=e=e||"flagLanguage"}function L(e){void 0===e&&(e=!0);var t,n=document.querySelectorAll(".wpglobus-switcher-components-radio-control .components-radio-control__input");0!=n.length&&(e?(n.forEach(function(e){e.classList.add(e.value),e.classList.remove("wpglobus-switcher-pulsate-radio"),e.classList.add("wpglobus-switcher-pulsate-radio-off")}),(t=document.querySelector(".wpglobus-switcher-components-radio-control ."+_)).classList.remove("wpglobus-switcher-pulsate-radio-off"),t.classList.add("wpglobus-switcher-pulsate-radio")):n.forEach(function(e){e.classList.remove("wpglobus-switcher-pulsate-radio"),e.classList.remove("wpglobus-switcher-pulsate-radio-off"),e.classList.add("wpglobus-switcher-pulsate-radio-on")}))}function N(e,t){void 0===e||C.noticeOn||(C.noticeOn=!0,e.innerText=t,e.classList.remove("hidden"),setTimeout(function(){e.classList.add("hidden"),C.noticeOn=!1},3e3))}function O(e,t){t=t||"",y==(e=e||"")&&(L(!0),function(e,t){if(""==(e=e||""))return;var n={sender:"WPGlobusGutenberg",_action:"saveOption",is_admin:1};return n.counter=C.counter++,n.options={},n.options[e]=t,wp.ajax.post(WPGlobusGutenberg.wpglobusAjax,{data:n})}(e,t).then(function(e){"success"==e.result&&(S(t),T(WPGlobusGutenberg.options[y]=t))}).fail(function(e){var t=document.getElementsByClassName("wpglobus-switcher-error-message");void 0!==t[0]&&("error"==e.result?N(t[0],e.message):400==e.status&&N(t[0],"Error: "+e.status+" ("+e.statusText+")"),_=W);var n=document.getElementsByClassName("wpglobus-panel-tab-options");void 0!==n[0]&&-1!=n[0].classList.value.indexOf("is-active")&&n[0].click()}).always(function(){L(!1)}))}function k(e){return void 0===v[e]&&(e=W),v[e]}function T(n){void 0!==n&&void 0!==v[n]||(n=W),setTimeout(function(){var e,t=document.querySelector('[aria-label="'+a+'"]');null!=t&&(void 0===t.dataset.status?(e=t.innerHTML,t.innerHTML=e+k(n),t.dataset.status="init"):(t.innerHTML=k(n),t.dataset.status="changed"))},300)}function B(e){return"switcher"==e.name?r("div",{className:"wpglobus-tab-content wpglobus-selector-tab-content"},r(d,{className:"wpglobus-switcher-panel__notice",status:"informational",isDismissible:!1},i("Select language")),r("div",{className:"wpglobus-switcher-panel__switcher-box"},WPGlobusGutenberg.pagenow==WPGlobusGutenberg.postNewPage?r("div",{style:{marginBottom:"20px"},className:"wpglobus-switcher-panel__switcher-notice"},WPGlobusGutenberg.i18n.save_post):r("ul",{className:"language-list"},n.map(function(e){return r("li",{key:e,className:"language-item"},r("img",{style:{marginRight:"7px",width:"20px"},className:"wpglobus-switcher-panel__flag",height:"20",width:"20",src:s[e]}),r(w,{href:u[e],isSmall:!0,isPrimary:!0},o[e]))}))),r(w,{className:"wpglobus-switcher-panel__button-link wpglobus-switcher-panel__info",href:WPGlobusGutenberg.store_link,isLink:!0,target:"_blank"},i("WPGlobus Premium")),r(w,{className:"wpglobus-switcher-panel__button-link wpglobus-switcher-panel__settings-link",href:WPGlobusGutenberg.options_page_url,isLink:!0},i("WPGlobus Options"))):"options"==e.name?r("div",{className:"wpglobus-tab-content wpglobus-options-tab-content"},r(d,{className:"wpglobus-switcher-panel__notice",status:"informational",isDismissible:!1},i("Select type")),r(x,null)):void 0}}};WPGlobusGutenberg=E.extend({},WPGlobusGutenberg,C),WPGlobusGutenberg.init()});
|
|
trunk/includes/builders/gutenberg/class-wpglobus-gutenberg-update-post.php
DELETED
@@ -1,304 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* File: class-wpglobus-gutenberg-update-post.php
|
4 |
-
*
|
5 |
-
* @package WPGlobus\Builders\Gutenberg
|
6 |
-
* @author Alex Gor(alexgff)
|
7 |
-
*/
|
8 |
-
|
9 |
-
if ( ! class_exists( 'WPGlobus_Gutenberg_Update_Post' ) ) :
|
10 |
-
|
11 |
-
/**
|
12 |
-
* Class WPGlobus_Gutenberg_Update_Post.
|
13 |
-
*/
|
14 |
-
class WPGlobus_Gutenberg_Update_Post extends WPGlobus_Builder_Update_Post {
|
15 |
-
|
16 |
-
/** @var string */
|
17 |
-
protected $language = null;
|
18 |
-
|
19 |
-
/** @var WP_Post */
|
20 |
-
protected $_prepared_post = null;
|
21 |
-
|
22 |
-
/**
|
23 |
-
* Constructor.
|
24 |
-
*/
|
25 |
-
public function __construct() {
|
26 |
-
|
27 |
-
parent::__construct( 'gutenberg' );
|
28 |
-
|
29 |
-
/**
|
30 |
-
* @todo to save meta see request ($_REQUEST)
|
31 |
-
* post.php?post=259&action=edit&classic-editor=1&meta_box=1
|
32 |
-
*/
|
33 |
-
|
34 |
-
//if ( defined('DOING_AJAX') && DOING_AJAX ) {
|
35 |
-
//}
|
36 |
-
|
37 |
-
/**
|
38 |
-
* Filter's order:
|
39 |
-
* 1. rest_pre_insert_post
|
40 |
-
* 2. wp_insert_post_data
|
41 |
-
* 3. rest_request_after_callbacks
|
42 |
-
*/
|
43 |
-
|
44 |
-
/**
|
45 |
-
* @see \WP_REST_Posts_Controller::prepare_item_for_database
|
46 |
-
*/
|
47 |
-
if ( 'core' === WPGlobus::Config()->builder->get( 'context' ) ) {
|
48 |
-
|
49 |
-
$post_type = WPGlobus::Config()->builder->get( 'post_type' );
|
50 |
-
if ( ! empty( $post_type ) ) {
|
51 |
-
add_filter( "rest_pre_insert_{$post_type}", array( $this, 'filter__pre_insert_post' ), 2, 2 );
|
52 |
-
}
|
53 |
-
} else {
|
54 |
-
|
55 |
-
add_filter( 'rest_pre_insert_post', array( $this, 'filter__pre_insert_post' ), 2, 2 );
|
56 |
-
add_filter( 'rest_pre_insert_page', array( $this, 'filter__pre_insert_post' ), 2, 2 );
|
57 |
-
|
58 |
-
}
|
59 |
-
|
60 |
-
/**
|
61 |
-
* @todo incorrect the saving post in extra languages with priority = 10
|
62 |
-
*/
|
63 |
-
add_filter( 'wp_insert_post_data', array( $this, 'filter__wp_insert_post_data' ), 100, 2 );
|
64 |
-
|
65 |
-
/**
|
66 |
-
* @see \WP_REST_Server::dispatch in \wp-includes\rest-api\class-wp-rest-server.php
|
67 |
-
*/
|
68 |
-
add_filter( 'rest_request_after_callbacks', array( $this, 'filter__rest_after_callbacks' ), 10, 3 );
|
69 |
-
|
70 |
-
}
|
71 |
-
|
72 |
-
/**
|
73 |
-
* Callback for 'rest_request_after_callbacks' will be fired after 'wp_insert_post_data' filter.
|
74 |
-
*
|
75 |
-
* @see 'filter__wp_insert_post_data'
|
76 |
-
*
|
77 |
-
* @param stdClass $response
|
78 |
-
* @param array $handler
|
79 |
-
* @param mixed $request Unused.
|
80 |
-
*
|
81 |
-
* @return mixed
|
82 |
-
*/
|
83 |
-
public function filter__rest_after_callbacks(
|
84 |
-
$response, $handler, /** @noinspection PhpUnusedParameterInspection */
|
85 |
-
$request
|
86 |
-
) {
|
87 |
-
|
88 |
-
if ( ! empty( $handler['methods']['POST'] ) && ! empty( $handler['methods']['PUT'] ) && ! empty( $handler['methods']['PATCH'] ) ) {
|
89 |
-
/**
|
90 |
-
* Update post.
|
91 |
-
*/
|
92 |
-
|
93 |
-
/**
|
94 |
-
* This returns incorrect language
|
95 |
-
* $builder_language = get_post_meta($post_id, WPGlobus::Config()->builder->get_language_meta_key(), true);
|
96 |
-
*
|
97 |
-
* @todo check updating language meta after UPDATE post
|
98 |
-
*/
|
99 |
-
$builder_language = $this->language;
|
100 |
-
|
101 |
-
// if ( empty( $builder_language ) ) {
|
102 |
-
// @todo incorrect case
|
103 |
-
// }
|
104 |
-
|
105 |
-
$fix_title = true;
|
106 |
-
if ( ! empty( $response->data['title']['raw'] ) && WPGlobus_Core::has_translations( $response->data['title']['raw'] ) ) {
|
107 |
-
$response->data['title']['raw'] = WPGlobus_Core::text_filter( $response->data['title']['raw'], $builder_language, WPGlobus::RETURN_EMPTY );
|
108 |
-
$response->data['title']['rendered'] = $response->data['title']['raw'];
|
109 |
-
$fix_title = false;
|
110 |
-
}
|
111 |
-
|
112 |
-
// $fix_excerpt = true;
|
113 |
-
if ( ! empty( $response->data['excerpt']['raw'] ) && WPGlobus_Core::has_translations( $response->data['excerpt']['raw'] ) ) {
|
114 |
-
$excerpt_in_default = WPGlobus_Core::text_filter( $response->data['excerpt']['raw'], WPGlobus::Config()->default_language );
|
115 |
-
//$excerpt = WPGlobus_Core::text_filter($response->data['excerpt']['raw'], $builder_language);
|
116 |
-
$excerpt = WPGlobus_Core::text_filter( $response->data['excerpt']['raw'], $builder_language, WPGlobus::RETURN_EMPTY );
|
117 |
-
$response->data['excerpt']['raw'] = $excerpt;
|
118 |
-
$response->data['excerpt']['rendered'] = str_replace( $excerpt_in_default, $excerpt, $response->data['excerpt']['rendered'] );
|
119 |
-
// $fix_excerpt = false;
|
120 |
-
}
|
121 |
-
|
122 |
-
if ( WPGlobus::Config()->default_language === $builder_language ) {
|
123 |
-
return $response;
|
124 |
-
}
|
125 |
-
|
126 |
-
if ( $fix_title ) :
|
127 |
-
/**
|
128 |
-
* Fix the title.
|
129 |
-
* When we have title with different value:
|
130 |
-
* $response->data[title][raw] => Русский заголовок
|
131 |
-
* $response->data[title][rendered] => English title
|
132 |
-
*/
|
133 |
-
if ( empty( $response->data['title'] ) ) {
|
134 |
-
return $response;
|
135 |
-
}
|
136 |
-
if ( empty( $response->data['title']['rendered'] ) || empty( $response->data['title']['raw'] ) ) {
|
137 |
-
return $response;
|
138 |
-
}
|
139 |
-
|
140 |
-
if ( $response->data['title']['rendered'] !== $response->data['title']['raw'] ) {
|
141 |
-
$response->data['title']['rendered'] = $response->data['title']['raw'];
|
142 |
-
}
|
143 |
-
|
144 |
-
endif;
|
145 |
-
|
146 |
-
}
|
147 |
-
|
148 |
-
return $response;
|
149 |
-
}
|
150 |
-
|
151 |
-
/**
|
152 |
-
* Callback for 'rest_pre_insert_post'.
|
153 |
-
*
|
154 |
-
* @param WP_Post $prepared_post
|
155 |
-
* @param mixed $request Unused.
|
156 |
-
*
|
157 |
-
* @return mixed
|
158 |
-
*/
|
159 |
-
public function filter__pre_insert_post(
|
160 |
-
$prepared_post, /** @noinspection PhpUnusedParameterInspection */
|
161 |
-
$request
|
162 |
-
) {
|
163 |
-
|
164 |
-
global $wpdb;
|
165 |
-
$_post = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $wpdb->posts WHERE ID = %d LIMIT 1", $prepared_post->ID ) );
|
166 |
-
|
167 |
-
$builder_language = WPGlobus::Config()->builder->get_language();
|
168 |
-
|
169 |
-
if ( empty( $builder_language ) ) {
|
170 |
-
/**
|
171 |
-
* @todo Probably we are working with WP Rest API here.
|
172 |
-
* Check superglobal variable $_SERVER or may be something other.
|
173 |
-
*/
|
174 |
-
$builder_language = get_post_meta( $prepared_post->ID, WPGlobus::get_language_meta_key(), true );
|
175 |
-
|
176 |
-
if ( empty( $builder_language ) ) {
|
177 |
-
/**
|
178 |
-
* Case when post is draft and has post_status 'auto-draft'.
|
179 |
-
*/
|
180 |
-
$builder_language = WPGlobus::Config()->default_language;
|
181 |
-
}
|
182 |
-
}
|
183 |
-
|
184 |
-
$this->language = $builder_language;
|
185 |
-
|
186 |
-
$fields = array();
|
187 |
-
|
188 |
-
/**
|
189 |
-
* Post title.
|
190 |
-
*/
|
191 |
-
if ( ! empty( $prepared_post->post_title ) ) {
|
192 |
-
$fields['post_title'] = $prepared_post->post_title;
|
193 |
-
// } else {
|
194 |
-
//$fields['post_title'] = '';
|
195 |
-
}
|
196 |
-
|
197 |
-
/**
|
198 |
-
* Post content.
|
199 |
-
*/
|
200 |
-
if ( ! empty( $prepared_post->post_content ) ) {
|
201 |
-
$fields['post_content'] = $prepared_post->post_content;
|
202 |
-
} else {
|
203 |
-
$fields['post_content'] = '';
|
204 |
-
}
|
205 |
-
|
206 |
-
/**
|
207 |
-
* Post excerpt.
|
208 |
-
*/
|
209 |
-
if ( isset( $prepared_post->post_excerpt ) ) {
|
210 |
-
if ( empty( $prepared_post->post_excerpt ) ) {
|
211 |
-
/**
|
212 |
-
* Post excerpt was removed by user.
|
213 |
-
*/
|
214 |
-
$fields['post_excerpt'] = '';
|
215 |
-
} else {
|
216 |
-
$fields['post_excerpt'] = $prepared_post->post_excerpt;
|
217 |
-
}
|
218 |
-
} else {
|
219 |
-
/**
|
220 |
-
* Post excerpt was not modified by user.
|
221 |
-
* so, we have unset '$prepared_post->post_excerpt' field.
|
222 |
-
*/
|
223 |
-
$fields['post_excerpt'] = WPGlobus_Core::text_filter( $_post->post_excerpt, $builder_language, WPGlobus::RETURN_EMPTY );
|
224 |
-
}
|
225 |
-
|
226 |
-
foreach ( $fields as $field => $value ) {
|
227 |
-
|
228 |
-
$tr = array();
|
229 |
-
|
230 |
-
foreach ( WPGlobus::Config()->enabled_languages as $lang ) :
|
231 |
-
|
232 |
-
if ( $lang === $builder_language ) {
|
233 |
-
|
234 |
-
$text = $value;
|
235 |
-
if ( WPGlobus_Core::has_translations( $value ) ) {
|
236 |
-
$text = WPGlobus_Core::text_filter( $value, $lang, WPGlobus::RETURN_EMPTY );
|
237 |
-
}
|
238 |
-
if ( ! empty( $text ) ) {
|
239 |
-
$tr[ $lang ] = $text;
|
240 |
-
}
|
241 |
-
} else {
|
242 |
-
|
243 |
-
$text = WPGlobus_Core::text_filter( $_post->$field, $lang, WPGlobus::RETURN_EMPTY );
|
244 |
-
if ( ! empty( $text ) ) {
|
245 |
-
$tr[ $lang ] = $text;
|
246 |
-
}
|
247 |
-
}
|
248 |
-
|
249 |
-
endforeach;
|
250 |
-
|
251 |
-
/**
|
252 |
-
* @since 2.2.29 we are using `wp_slash` function.
|
253 |
-
* @see https://github.com/WPGlobus/WPGlobus/pull/83
|
254 |
-
*/
|
255 |
-
$prepared_post->$field = wp_slash( WPGlobus_Utils::build_multilingual_string( $tr ) );
|
256 |
-
|
257 |
-
}
|
258 |
-
|
259 |
-
/**
|
260 |
-
* $this->_prepared_post contains 'post_title', 'post_content', 'post_excerpt' with language marks and ready to insert in DB.
|
261 |
-
*/
|
262 |
-
$this->_prepared_post = clone $prepared_post;
|
263 |
-
|
264 |
-
return $prepared_post;
|
265 |
-
|
266 |
-
}
|
267 |
-
|
268 |
-
/**
|
269 |
-
* Callback for 'wp_insert_post_data'.
|
270 |
-
*
|
271 |
-
* @param array $data
|
272 |
-
* @param mixed $postarr Unused.
|
273 |
-
*
|
274 |
-
* @return array
|
275 |
-
*/
|
276 |
-
public function filter__wp_insert_post_data(
|
277 |
-
$data, /** @noinspection PhpUnusedParameterInspection */
|
278 |
-
$postarr
|
279 |
-
) {
|
280 |
-
|
281 |
-
/**
|
282 |
-
* Check $this->_prepared_post was loaded with first XMLHttpRequest.
|
283 |
-
*
|
284 |
-
* @see 'filter__pre_insert_post' filter.
|
285 |
-
* @see Network tab in browser console.
|
286 |
-
*/
|
287 |
-
if ( ! is_object( $this->_prepared_post ) ) {
|
288 |
-
return $data;
|
289 |
-
}
|
290 |
-
|
291 |
-
$_fields = array( 'post_title', 'post_content', 'post_excerpt' );
|
292 |
-
foreach ( $_fields as $_field ) {
|
293 |
-
|
294 |
-
if ( ! empty( $data[ $_field ] ) && ! empty( $this->_prepared_post->$_field ) ) {
|
295 |
-
$data[ $_field ] = $this->_prepared_post->$_field;
|
296 |
-
}
|
297 |
-
}
|
298 |
-
|
299 |
-
return $data;
|
300 |
-
}
|
301 |
-
|
302 |
-
}
|
303 |
-
|
304 |
-
endif;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/includes/builders/gutenberg/class-wpglobus-gutenberg.php
DELETED
@@ -1,601 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* File: class-wpglobus-gutenberg.php
|
4 |
-
*
|
5 |
-
* @package WPGlobus\Builders\Gutenberg
|
6 |
-
* @author Alex Gor(alexgff)
|
7 |
-
*/
|
8 |
-
|
9 |
-
/**
|
10 |
-
* Class WPGlobus_Gutenberg.
|
11 |
-
*/
|
12 |
-
class WPGlobus_Gutenberg extends WPGlobus_Builder {
|
13 |
-
|
14 |
-
/**
|
15 |
-
* Constructor.
|
16 |
-
*/
|
17 |
-
public function __construct() {
|
18 |
-
|
19 |
-
parent::__construct( 'gutenberg' );
|
20 |
-
|
21 |
-
if ( is_admin() ) {
|
22 |
-
|
23 |
-
/**
|
24 |
-
* Filter the post for Gutenberg editor.
|
25 |
-
*
|
26 |
-
* @see wp-includes\class-wp-query.php
|
27 |
-
*/
|
28 |
-
add_action( 'the_post', array( $this, 'translate_post' ), 5 );
|
29 |
-
|
30 |
-
/**
|
31 |
-
* Add 'wpglobus-language' hidden field.
|
32 |
-
*/
|
33 |
-
add_action( 'add_meta_boxes', array( $this, 'on__add_meta_box' ) );
|
34 |
-
|
35 |
-
add_action( 'admin_enqueue_scripts', array( $this, 'on__enqueue_scripts' ), 1000 );
|
36 |
-
|
37 |
-
/**
|
38 |
-
* Action admin_print_styles.
|
39 |
-
*
|
40 |
-
* @since 1.9.29
|
41 |
-
*/
|
42 |
-
add_action( 'admin_print_styles', array( $this, 'on__enqueue_styles' ) );
|
43 |
-
|
44 |
-
/**
|
45 |
-
* Action enqueue_block_assets.
|
46 |
-
*
|
47 |
-
* @see wp-includes\script-loader.php
|
48 |
-
* @since 2.2.3
|
49 |
-
*/
|
50 |
-
add_action( 'enqueue_block_assets', array( $this, 'on__enqueue_block_assets' ) );
|
51 |
-
|
52 |
-
/**
|
53 |
-
* Filter wpglobus_seo_meta_box_title.
|
54 |
-
*
|
55 |
-
* @see wpglobus-seo\includes\class-wpglobus-seo.php
|
56 |
-
*/
|
57 |
-
add_filter( 'wpglobus_seo_meta_box_title', array( $this, 'filter__seo_meta_box_title' ) );
|
58 |
-
|
59 |
-
}
|
60 |
-
|
61 |
-
}
|
62 |
-
|
63 |
-
/**
|
64 |
-
* Enqueue block assets.
|
65 |
-
*
|
66 |
-
* @since 2.2.3
|
67 |
-
*/
|
68 |
-
public function on__enqueue_block_assets() {
|
69 |
-
|
70 |
-
if ( ! empty( WPGlobus::Config()->block_editor_old_fashioned_language_switcher ) && '1' === WPGlobus::Config()->block_editor_old_fashioned_language_switcher ) {
|
71 |
-
return;
|
72 |
-
}
|
73 |
-
|
74 |
-
/**
|
75 |
-
* @since 2.2.3 wpglobus-block-editor.css
|
76 |
-
* @since 2.2.14 wpglobus-switcher.css
|
77 |
-
*/
|
78 |
-
$style_file = WPGlobus::plugin_dir_url() . 'includes/builders/gutenberg/assets/css/dist/wpglobus-switcher.css';
|
79 |
-
|
80 |
-
/**
|
81 |
-
* Enqueue frontend and editor block styles.
|
82 |
-
*/
|
83 |
-
wp_enqueue_style(
|
84 |
-
'wpglobus-switcher-css',
|
85 |
-
$style_file,
|
86 |
-
'',
|
87 |
-
WPGLOBUS_VERSION
|
88 |
-
);
|
89 |
-
|
90 |
-
/**
|
91 |
-
* Using ESNext syntax @W.I.P.
|
92 |
-
*
|
93 |
-
* @since 2.2.3 We are using ES5 syntax for WPGlobus plugin for Block Editor.
|
94 |
-
*/
|
95 |
-
return;
|
96 |
-
|
97 |
-
// phpcs:disable
|
98 |
-
|
99 |
-
/**
|
100 |
-
* Temporarily.
|
101 |
-
*
|
102 |
-
* @noinspection PhpUnreachableStatementInspection
|
103 |
-
*/
|
104 |
-
$script_file = WPGlobus::plugin_dir_url() . 'includes/builders/gutenberg/assets/js/dist/wpglobus-block-editor' . WPGlobus::SCRIPT_SUFFIX() . '.js';
|
105 |
-
|
106 |
-
/**
|
107 |
-
* Enqueue the bundled block JS file.
|
108 |
-
*/
|
109 |
-
wp_enqueue_script(
|
110 |
-
'wpglobus-block-editor-js',
|
111 |
-
$script_file,
|
112 |
-
array(
|
113 |
-
'wp-i18n',
|
114 |
-
'wp-blocks',
|
115 |
-
'wp-edit-post',
|
116 |
-
'wp-element',
|
117 |
-
'wp-editor',
|
118 |
-
'wp-components',
|
119 |
-
'wp-data',
|
120 |
-
'wp-plugins',
|
121 |
-
'wp-edit-post',
|
122 |
-
'wp-api',
|
123 |
-
),
|
124 |
-
WPGLOBUS_VERSION,
|
125 |
-
false
|
126 |
-
);
|
127 |
-
|
128 |
-
/**
|
129 |
-
* Enqueue frontend and editor block styles.
|
130 |
-
*/
|
131 |
-
wp_enqueue_style(
|
132 |
-
'wpglobus-block-editor-css',
|
133 |
-
$style_file,
|
134 |
-
'',
|
135 |
-
WPGLOBUS_VERSION
|
136 |
-
);
|
137 |
-
|
138 |
-
// phpcs:enable
|
139 |
-
|
140 |
-
}
|
141 |
-
|
142 |
-
/**
|
143 |
-
* Translate post.
|
144 |
-
*
|
145 |
-
* @param WP_Post $object The Post object.
|
146 |
-
*/
|
147 |
-
public function translate_post( $object ) {
|
148 |
-
if ( $object instanceof WP_Post ) {
|
149 |
-
WPGlobus_Core::translate_wp_post( $object, $this->language, WPGlobus::RETURN_EMPTY );
|
150 |
-
}
|
151 |
-
}
|
152 |
-
|
153 |
-
/**
|
154 |
-
* Generate box with language switcher.
|
155 |
-
*
|
156 |
-
* @param string $page The page.
|
157 |
-
*
|
158 |
-
* @return string
|
159 |
-
*/
|
160 |
-
private function get_switcher_box( $page ) {
|
161 |
-
|
162 |
-
global $post;
|
163 |
-
|
164 |
-
// TODO check if $_SERVER['QUERY_STRING'] exists and sanitize it.
|
165 |
-
// phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized: Detected usage of a non-sanitized input variable: $_SERVER['QUERY_STRING'].
|
166 |
-
// phpcs: WordPress.Security.ValidatedSanitizedInput.InputNotValidated: Detected usage of a possibly undefined superglobal array index: $_SERVER['QUERY_STRING']. Use isset() or empty() to check the index exists before using it.
|
167 |
-
// phpcs: WordPress.Security.ValidatedSanitizedInput.MissingUnslash: $_SERVER data not unslashed before sanitization. Use wp_unslash() or similar.
|
168 |
-
$query_string = explode( '&', $_SERVER['QUERY_STRING'] ); // phpcs:ignore
|
169 |
-
|
170 |
-
foreach ( $query_string as $key => $_q ) {
|
171 |
-
if ( false !== strpos( $_q, 'language=' ) ) {
|
172 |
-
unset( $query_string[ $key ] );
|
173 |
-
}
|
174 |
-
}
|
175 |
-
$query = implode( '&', $query_string );
|
176 |
-
$url = admin_url(
|
177 |
-
add_query_arg(
|
178 |
-
array(
|
179 |
-
'language' => '{{language}}',
|
180 |
-
),
|
181 |
-
'post.php?' . $query
|
182 |
-
)
|
183 |
-
);
|
184 |
-
|
185 |
-
$_box_style = 'position:absolute;top:15px;left:10px;z-index:100;';
|
186 |
-
if ( file_exists( WPGlobus::Config()->flag_path['big'] . WPGlobus::Config()->flag[ $this->language ] ) ) {
|
187 |
-
$_flag_img = WPGlobus::Config()->flag_urls['big'] . WPGlobus::Config()->flag[ $this->language ];
|
188 |
-
$_height = 'height="25px"';
|
189 |
-
$_width = 'width="25px"';
|
190 |
-
$_flag_style = 'style="border: 1px solid #bfbfbf;border-radius: 25px;"';
|
191 |
-
} else {
|
192 |
-
$_flag_img = WPGlobus::Config()->flags_url . WPGlobus::Config()->flag[ $this->language ];
|
193 |
-
$_height = '';
|
194 |
-
$_width = '';
|
195 |
-
$_flag_style = 'style="margin-top:5px;"';
|
196 |
-
|
197 |
-
$_box_style .= 'margin-top:3px;';
|
198 |
-
}
|
199 |
-
|
200 |
-
$out = '';
|
201 |
-
|
202 |
-
if ( 'post-new.php' === $page ) {
|
203 |
-
|
204 |
-
ob_start();
|
205 |
-
?>
|
206 |
-
<div style="<?php echo $_box_style; // phpcs:ignore WordPress.Security.EscapeOutput ?>"
|
207 |
-
class="wpglobus-gutenberg-selector-box">
|
208 |
-
<!--suppress CssInvalidPropertyValue -->
|
209 |
-
<div class="wpglobus-selector-grid"
|
210 |
-
style="">
|
211 |
-
<a style="text-decoration:none;cursor:text;" onclick="return false;"
|
212 |
-
href="#" class="wpglobus-gutenberg-selector wpglobus-gutenberg-selector-column-1"
|
213 |
-
data-language="<?php echo esc_attr( $this->language ); ?>">
|
214 |
-
<img <?php echo $_height . $_width; // phpcs:ignore WordPress.Security.EscapeOutput ?>
|
215 |
-
<?php echo $_flag_style; // phpcs:ignore WordPress.Security.EscapeOutput ?>
|
216 |
-
src="<?php echo esc_url( $_flag_img ); ?>" alt=""/>
|
217 |
-
</a>
|
218 |
-
<a style="text-decoration:none;cursor:text;" onclick="return false;"
|
219 |
-
href="#" class="wpglobus-gutenberg-selector wpglobus-gutenberg-selector-column-2"
|
220 |
-
data-language="<?php echo esc_attr( $this->language ); ?>">
|
221 |
-
<span
|
222 |
-
class="wpglobus-gutenberg-selector-text"><?php echo esc_html( WPGlobus::Config()->en_language_name[ $this->language ] ); ?></span>
|
223 |
-
</a>
|
224 |
-
</div>
|
225 |
-
<ul class="wpglobus-gutenberg-selector-dropdown"
|
226 |
-
style="display:none;position:fixed;margin:5px;list-style-type:none;">
|
227 |
-
<li class="item" style="border:1px solid #ddd;background-color:#eee;padding:4px;">
|
228 |
-
<?php esc_html_e( 'Before switching the language, please save draft or publish.', 'wpglobus' ); ?>
|
229 |
-
</li>
|
230 |
-
</ul>
|
231 |
-
</div>
|
232 |
-
<?php
|
233 |
-
$out = ob_get_clean();
|
234 |
-
|
235 |
-
} elseif ( 'post.php' === $page ) {
|
236 |
-
|
237 |
-
ob_start();
|
238 |
-
?>
|
239 |
-
<div style="<?php echo $_box_style; // phpcs:ignore WordPress.Security.EscapeOutput ?>"
|
240 |
-
class="wpglobus-gutenberg-selector-box">
|
241 |
-
<!--suppress CssInvalidPropertyValue -->
|
242 |
-
<div class="wpglobus-selector-grid"
|
243 |
-
style="">
|
244 |
-
<a style="text-decoration: none;"
|
245 |
-
href="<?php echo esc_url( str_replace( '{{language}}', $this->language, $url ) ); ?>"
|
246 |
-
class="wpglobus-gutenberg-selector wpglobus-gutenberg-selector-column-1"
|
247 |
-
data-language="<?php echo esc_attr( $this->language ); ?>">
|
248 |
-
<img <?php echo $_height . $_width; // phpcs:ignore WordPress.Security.EscapeOutput ?>
|
249 |
-
<?php echo $_flag_style; // phpcs:ignore WordPress.Security.EscapeOutput ?>
|
250 |
-
src="<?php echo $_flag_img; // phpcs:ignore WordPress.Security.EscapeOutput ?>" alt=""/>
|
251 |
-
</a>
|
252 |
-
<a style="text-decoration: none;"
|
253 |
-
href="<?php echo esc_url( str_replace( '{{language}}', $this->language, $url ) ); ?>"
|
254 |
-
class="wpglobus-gutenberg-selector wpglobus-gutenberg-selector-column-2"
|
255 |
-
data-language="<?php echo esc_attr( $this->language ); ?>">
|
256 |
-
<span class="wpglobus-gutenberg-selector-text">
|
257 |
-
<?php
|
258 |
-
/**
|
259 |
-
* Filter the current language name.
|
260 |
-
*
|
261 |
-
* @since 2.1.0
|
262 |
-
*
|
263 |
-
* @param string $en_language_name English language name.
|
264 |
-
* @param string $language Current language.
|
265 |
-
* @param WP_Post $post The current post.
|
266 |
-
*
|
267 |
-
* @return string
|
268 |
-
*/
|
269 |
-
$en_language_name = apply_filters(
|
270 |
-
'wpglobus_gutenberg_selector_text',
|
271 |
-
WPGlobus::Config()->en_language_name[ $this->language ],
|
272 |
-
$this->language,
|
273 |
-
$post
|
274 |
-
);
|
275 |
-
echo esc_html( $en_language_name );
|
276 |
-
?>
|
277 |
-
</span>
|
278 |
-
</a>
|
279 |
-
</div>
|
280 |
-
<ul class="wpglobus-gutenberg-selector-dropdown"
|
281 |
-
style="display:none;position:fixed;border-left:1px solid #ddd;border-right:1px solid #ddd;background-color:#eee;margin:5px 0 0;padding:0 5px 5px 0;list-style-type:none;">
|
282 |
-
<?php foreach ( WPGlobus::Config()->enabled_languages as $lang ) : ?>
|
283 |
-
<?php
|
284 |
-
if ( $lang === $this->language ) {
|
285 |
-
continue;
|
286 |
-
}
|
287 |
-
?>
|
288 |
-
<li class="item"
|
289 |
-
style="text-align:left;cursor:pointer;border-bottom:1px solid #ddd;margin:0;height:25px;padding:5px 0 5px 5px;"
|
290 |
-
data-language="<?php echo esc_attr( $lang ); ?>">
|
291 |
-
<a href="<?php echo esc_url( str_replace( '{{language}}', $lang, $url ) ); ?>">
|
292 |
-
<img src="<?php echo esc_url( WPGlobus::Config()->flags_url . WPGlobus::Config()->flag[ $lang ] ); ?>"
|
293 |
-
alt=""/> <?php echo esc_html( WPGlobus::Config()->en_language_name[ $lang ] ); ?>
|
294 |
-
</a>
|
295 |
-
</li>
|
296 |
-
<?php endforeach; ?>
|
297 |
-
</ul>
|
298 |
-
</div>
|
299 |
-
<?php
|
300 |
-
$out = ob_get_clean();
|
301 |
-
|
302 |
-
}
|
303 |
-
|
304 |
-
return $out;
|
305 |
-
|
306 |
-
}
|
307 |
-
|
308 |
-
/**
|
309 |
-
* Callback for 'wpglobus_seo_meta_box_title'.
|
310 |
-
*
|
311 |
-
* @param string $meta_box_title Metabox title.
|
312 |
-
*
|
313 |
-
* @return string
|
314 |
-
*/
|
315 |
-
public function filter__seo_meta_box_title( $meta_box_title ) {
|
316 |
-
return $meta_box_title . ' ' .
|
317 |
-
// Translators: Metabox title FOR language.
|
318 |
-
_x( 'for', 'filter__seo_meta_box_title', 'wpglobus' )
|
319 |
-
. ' ' . WPGlobus::Config()->en_language_name[ $this->get_current_language() ];
|
320 |
-
}
|
321 |
-
|
322 |
-
/**
|
323 |
-
* Enqueue styles.
|
324 |
-
*
|
325 |
-
* @since 1.9.29
|
326 |
-
* @return void
|
327 |
-
*/
|
328 |
-
public function on__enqueue_styles() {
|
329 |
-
/**
|
330 |
-
* Pagenow global.
|
331 |
-
*
|
332 |
-
* @var string $pagenow
|
333 |
-
*/
|
334 |
-
global $pagenow;
|
335 |
-
|
336 |
-
if ( ! in_array( $pagenow, array( 'post.php', 'post-new.php' ), true ) ) {
|
337 |
-
return;
|
338 |
-
}
|
339 |
-
|
340 |
-
// phpcs:ignore WordPress.Security.NonceVerification
|
341 |
-
if ( isset( $_GET['classic-editor'] ) ) {
|
342 |
-
return;
|
343 |
-
}
|
344 |
-
|
345 |
-
wp_register_style(
|
346 |
-
'wpglobus-gutenberg',
|
347 |
-
WPGlobus::plugin_dir_url() . 'includes/builders/gutenberg/assets/css/wpglobus-gutenberg.css',
|
348 |
-
array(),
|
349 |
-
WPGLOBUS_VERSION,
|
350 |
-
'all'
|
351 |
-
);
|
352 |
-
wp_enqueue_style( 'wpglobus-gutenberg' );
|
353 |
-
|
354 |
-
}
|
355 |
-
|
356 |
-
/**
|
357 |
-
* Enqueue scripts.
|
358 |
-
*
|
359 |
-
* @return void
|
360 |
-
*/
|
361 |
-
public function on__enqueue_scripts() {
|
362 |
-
|
363 |
-
/**
|
364 |
-
* Globals.
|
365 |
-
*
|
366 |
-
* @var string $pagenow
|
367 |
-
* @var string $wp_version
|
368 |
-
* @var \WP_Post $post
|
369 |
-
*/
|
370 |
-
global $pagenow, $wp_version, $post;
|
371 |
-
|
372 |
-
if ( ! in_array( $pagenow, array( 'post.php', 'post-new.php' ), true ) ) {
|
373 |
-
return;
|
374 |
-
}
|
375 |
-
|
376 |
-
// phpcs:ignore WordPress.Security.NonceVerification
|
377 |
-
if ( isset( $_GET['classic-editor'] ) ) {
|
378 |
-
return;
|
379 |
-
}
|
380 |
-
|
381 |
-
/**
|
382 |
-
* Old-style switcher.
|
383 |
-
*
|
384 |
-
* @since 2.2.3
|
385 |
-
*/
|
386 |
-
$tabs = '';
|
387 |
-
if ( ! empty( WPGlobus::Config()->block_editor_old_fashioned_language_switcher ) && 1 === (int) WPGlobus::Config()->block_editor_old_fashioned_language_switcher ) {
|
388 |
-
$tabs = $this->get_switcher_box( $pagenow );
|
389 |
-
}
|
390 |
-
|
391 |
-
$i18n = array();
|
392 |
-
$i18n['reload'] = esc_html__( 'Page is being reloaded. Please wait...', 'wpglobus' );
|
393 |
-
$i18n['save_post'] = esc_html__( 'Before switching the language, please save draft or publish, then reload page.', 'wpglobus' );
|
394 |
-
|
395 |
-
/**
|
396 |
-
* Extra data.
|
397 |
-
*
|
398 |
-
* @since 2.4.11
|
399 |
-
*/
|
400 |
-
$__data = array();
|
401 |
-
|
402 |
-
/**
|
403 |
-
* We have Gutenberg in core since WP 5.0.
|
404 |
-
*
|
405 |
-
* @since 2.0
|
406 |
-
*/
|
407 |
-
$version_gutenberg = '';
|
408 |
-
if ( version_compare( $wp_version, '4.9.99', '>' ) ) {
|
409 |
-
$version_gutenberg = $wp_version;
|
410 |
-
} elseif ( defined( 'GUTENBERG_VERSION' ) ) {
|
411 |
-
$version_gutenberg = GUTENBERG_VERSION;
|
412 |
-
}
|
413 |
-
|
414 |
-
/**
|
415 |
-
* Check for Yoast SEO.
|
416 |
-
*/
|
417 |
-
$yoast_seo = false;
|
418 |
-
if ( defined( 'WPSEO_VERSION' ) ) {
|
419 |
-
$yoast_seo = true;
|
420 |
-
}
|
421 |
-
|
422 |
-
/**
|
423 |
-
* Check for Elementor.
|
424 |
-
*
|
425 |
-
* @since 2.4.11
|
426 |
-
*/
|
427 |
-
$elementor = false;
|
428 |
-
if ( defined( 'ELEMENTOR_VERSION' ) ) {
|
429 |
-
$elementor = true;
|
430 |
-
$__data['elementorVersion'] = ELEMENTOR_VERSION;
|
431 |
-
$__data['elementorCssPrintMethod'] = get_option('elementor_css_print_method', 'external');
|
432 |
-
$_url = add_query_arg(
|
433 |
-
array(
|
434 |
-
'page' => 'elementor#tab-advanced',
|
435 |
-
),
|
436 |
-
admin_url( 'admin.php' )
|
437 |
-
);
|
438 |
-
$i18n['elementorWarning'] = esc_html__( 'WPGlobus provides multilingual support for Elementor only when the option `CSS Print Method` is set to `External File`.', 'wpglobus' );
|
439 |
-
$i18n['elementorActionLabel'] = esc_html__( 'Open Elementor Settings page', 'wpglobus' );
|
440 |
-
$i18n['elementorActionLink'] = $_url;
|
441 |
-
}
|
442 |
-
|
443 |
-
|
444 |
-
/**
|
445 |
-
* Block editor tab URL.
|
446 |
-
*
|
447 |
-
* @since 2.2.3
|
448 |
-
*/
|
449 |
-
$block_editor_tab_url = admin_url(
|
450 |
-
add_query_arg(
|
451 |
-
array(
|
452 |
-
'page' => WPGlobus::OPTIONS_PAGE_SLUG,
|
453 |
-
'tab' => 'block-editor',
|
454 |
-
),
|
455 |
-
'admin.php'
|
456 |
-
)
|
457 |
-
);
|
458 |
-
|
459 |
-
/**
|
460 |
-
* Optons page URL.
|
461 |
-
*
|
462 |
-
* @since 2.5.10
|
463 |
-
*/
|
464 |
-
$options_page_url = admin_url(
|
465 |
-
add_query_arg(
|
466 |
-
array(
|
467 |
-
'page' => WPGlobus::OPTIONS_PAGE_SLUG
|
468 |
-
),
|
469 |
-
'admin.php'
|
470 |
-
)
|
471 |
-
);
|
472 |
-
|
473 |
-
|
474 |
-
/**
|
475 |
-
* Build the flags URL.
|
476 |
-
*
|
477 |
-
* @since 2.2.3
|
478 |
-
*/
|
479 |
-
$flags_url = array();
|
480 |
-
foreach ( WPGlobus::Config()->enabled_languages as $language ) {
|
481 |
-
if ( file_exists( WPGlobus::Config()->flag_path['big'] . WPGlobus::Config()->flag[ $language ] ) ) {
|
482 |
-
$flags_url[ $language ] = WPGlobus::Config()->flag_urls['big'] . WPGlobus::Config()->flag[ $language ];
|
483 |
-
} else {
|
484 |
-
$flags_url[ $language ] = WPGlobus::Config()->flags_url . WPGlobus::Config()->flag[ $language ];
|
485 |
-
}
|
486 |
-
}
|
487 |
-
|
488 |
-
/**
|
489 |
-
* Pass the $post to JS.
|
490 |
-
*
|
491 |
-
* @since 2.2.4
|
492 |
-
*/
|
493 |
-
$__post = array(
|
494 |
-
'ID' => '',
|
495 |
-
'type' => '',
|
496 |
-
'disabled' => false,
|
497 |
-
);
|
498 |
-
if ( $post instanceof WP_Post ) {
|
499 |
-
$__post['ID'] = $post->ID;
|
500 |
-
$__post['type'] = $post->post_type;
|
501 |
-
if ( in_array( $post->post_type, WPGlobus::Config()->disabled_entities, true ) ) {
|
502 |
-
$__post['disabled'] = true;
|
503 |
-
}
|
504 |
-
}
|
505 |
-
|
506 |
-
/**
|
507 |
-
* @see includes\class-wpglobus-config.php for config options.
|
508 |
-
* @since 2.2.14
|
509 |
-
*/
|
510 |
-
$key_option = array();
|
511 |
-
$key_option['switcherButtonType'] = 'block_editor_switcher_plugin_button_type';
|
512 |
-
|
513 |
-
$options = array();
|
514 |
-
foreach($key_option as $key=>$option) {
|
515 |
-
$options[ $option ] = '';
|
516 |
-
if ( ! empty( WPGlobus::Config()->$option ) ) {
|
517 |
-
$options[$option] = WPGlobus::Config()->$option;
|
518 |
-
}
|
519 |
-
}
|
520 |
-
|
521 |
-
$data = array(
|
522 |
-
'version' => WPGLOBUS_VERSION,
|
523 |
-
'versionGutenberg' => $version_gutenberg,
|
524 |
-
'wpglobusAjax' => WPGLOBUS_AJAX,
|
525 |
-
'context' => WPGlobus::Config()->builder->get( 'context' ),
|
526 |
-
'tabs' => $tabs,
|
527 |
-
'language' => $this->language,
|
528 |
-
'pagenow' => $pagenow,
|
529 |
-
'postEditPage' => 'post.php',
|
530 |
-
'postNewPage' => 'post-new.php',
|
531 |
-
'defaultLanguage' => WPGlobus::Config()->default_language,
|
532 |
-
'i18n' => $i18n,
|
533 |
-
'yoastSeo' => $yoast_seo,
|
534 |
-
'elementor' => $elementor,
|
535 |
-
'flags_url' => $flags_url,
|
536 |
-
'store_link' => WPGlobus::URL_WPGLOBUS_SHOP,
|
537 |
-
'__post' => $__post,
|
538 |
-
'block_editor_tab_url' => $block_editor_tab_url,
|
539 |
-
'options_page_url' => $options_page_url,
|
540 |
-
'disabled_entities' => WPGlobus::Config()->disabled_entities,
|
541 |
-
'options' => $options,
|
542 |
-
'enabledOptionsTab' => true,
|
543 |
-
'keyOption' => $key_option,
|
544 |
-
'data' => $__data
|
545 |
-
);
|
546 |
-
|
547 |
-
/**
|
548 |
-
* Filter for data to send to JS.
|
549 |
-
* Returning array.
|
550 |
-
*
|
551 |
-
* @since 2.2.14
|
552 |
-
*
|
553 |
-
* @param array $data An array with data.
|
554 |
-
*/
|
555 |
-
$data = apply_filters( 'wpglobus_block_editor_localize_data', $data );
|
556 |
-
|
557 |
-
wp_register_script(
|
558 |
-
'wpglobus-gutenberg',
|
559 |
-
WPGlobus::plugin_dir_url() . 'includes/builders/gutenberg/assets/js/wpglobus-gutenberg' . WPGlobus::SCRIPT_SUFFIX() . '.js',
|
560 |
-
array( 'jquery' ),
|
561 |
-
WPGLOBUS_VERSION,
|
562 |
-
true
|
563 |
-
);
|
564 |
-
wp_enqueue_script( 'wpglobus-gutenberg' );
|
565 |
-
wp_localize_script(
|
566 |
-
'wpglobus-gutenberg',
|
567 |
-
'WPGlobusGutenberg',
|
568 |
-
$data
|
569 |
-
);
|
570 |
-
}
|
571 |
-
|
572 |
-
/**
|
573 |
-
* Callback for 'add_meta_boxes'.
|
574 |
-
*/
|
575 |
-
public function on__add_meta_box() {
|
576 |
-
|
577 |
-
global $post;
|
578 |
-
|
579 |
-
if ( in_array( $post->post_type, WPGlobus::Config()->disabled_entities, true ) ) {
|
580 |
-
return;
|
581 |
-
}
|
582 |
-
|
583 |
-
add_meta_box(
|
584 |
-
'wpglobus',
|
585 |
-
__( 'WPGlobus', 'wpglobus' ),
|
586 |
-
array( $this, 'callback__meta_box' ),
|
587 |
-
null,
|
588 |
-
'side',
|
589 |
-
'core'
|
590 |
-
);
|
591 |
-
}
|
592 |
-
|
593 |
-
/**
|
594 |
-
* Callback for 'add_meta_box' function.
|
595 |
-
*/
|
596 |
-
public function callback__meta_box() {
|
597 |
-
echo $this->get_language_field(); // phpcs:ignore WordPress.Security.EscapeOutput
|
598 |
-
do_action( 'wpglobus_gutenberg_metabox' );
|
599 |
-
}
|
600 |
-
|
601 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/includes/builders/js_composer/class-wpglobus-js_composer-update-post.php
DELETED
@@ -1,119 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* File: class-wpglobus-js_composer-update-post.php
|
4 |
-
*
|
5 |
-
* @package WPGlobus\Builders\JS_Composer
|
6 |
-
* @author Alex Gor(alexgff)
|
7 |
-
*/
|
8 |
-
|
9 |
-
/**
|
10 |
-
* Class WPGlobus_js_composer_Update_Post.
|
11 |
-
*/
|
12 |
-
|
13 |
-
if ( ! class_exists( 'WPGlobus_js_composer_Update_Post' ) ) :
|
14 |
-
|
15 |
-
// phpcs:ignore PEAR.NamingConventions
|
16 |
-
class WPGlobus_js_composer_Update_Post extends WPGlobus_Builder_Update_Post {
|
17 |
-
|
18 |
-
/**
|
19 |
-
* Constructor.
|
20 |
-
*/
|
21 |
-
public function __construct() {
|
22 |
-
|
23 |
-
parent::__construct( 'js_composer' );
|
24 |
-
|
25 |
-
/**
|
26 |
-
* @see_file wpglobus\includes\class-wpglobus.php
|
27 |
-
*/
|
28 |
-
remove_action( 'wp_insert_post_data', array( 'WPGlobus', 'on_save_post_data' ), 10 );
|
29 |
-
|
30 |
-
/**
|
31 |
-
* @todo incorrect the saving post in extra languages with priority = 10
|
32 |
-
*/
|
33 |
-
add_filter( 'wp_insert_post_data', array( $this, 'filter__wp_insert_post_data' ), 100, 2 );
|
34 |
-
|
35 |
-
}
|
36 |
-
|
37 |
-
/**
|
38 |
-
* Callback for 'wp_insert_post_data'.
|
39 |
-
*
|
40 |
-
* @param array $data
|
41 |
-
* @param array $postarr
|
42 |
-
*
|
43 |
-
* @return array mixed
|
44 |
-
*/
|
45 |
-
public function filter__wp_insert_post_data( $data, $postarr ) {
|
46 |
-
|
47 |
-
/**
|
48 |
-
* Prevent to filter disabled post type.
|
49 |
-
*
|
50 |
-
* @since 2.1.4
|
51 |
-
*/
|
52 |
-
if ( in_array( $data['post_type'], WPGlobus::Config()->disabled_entities, true ) ) {
|
53 |
-
return $data;
|
54 |
-
}
|
55 |
-
|
56 |
-
global $wpdb;
|
57 |
-
$_post = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $wpdb->posts WHERE ID = %d AND post_type = %s LIMIT 1", $postarr['ID'], $postarr['post_type'] ) );
|
58 |
-
|
59 |
-
$fields = array();
|
60 |
-
if ( isset( $postarr['post_title'] ) ) {
|
61 |
-
$fields['post_title'] = $postarr['post_title'];
|
62 |
-
}
|
63 |
-
|
64 |
-
if ( isset( $postarr['post_content'] ) ) {
|
65 |
-
$fields['post_content'] = $postarr['post_content'];
|
66 |
-
}
|
67 |
-
|
68 |
-
if ( isset( $postarr['post_excerpt'] ) ) {
|
69 |
-
$fields['post_excerpt'] = $postarr['post_excerpt'];
|
70 |
-
}
|
71 |
-
|
72 |
-
$builder_language = WPGlobus::Config()->builder->get_language();
|
73 |
-
|
74 |
-
if ( empty( $builder_language ) ) {
|
75 |
-
|
76 |
-
if ( empty( $postarr[ WPGlobus::get_language_meta_key() ] ) ) {
|
77 |
-
$builder_language = WPGlobus::Config()->default_language;
|
78 |
-
} else {
|
79 |
-
$builder_language = $postarr[ WPGlobus::get_language_meta_key() ];
|
80 |
-
}
|
81 |
-
}
|
82 |
-
|
83 |
-
foreach ( $fields as $field => $value ) {
|
84 |
-
|
85 |
-
$tr = array();
|
86 |
-
|
87 |
-
foreach ( WPGlobus::Config()->enabled_languages as $lang ) :
|
88 |
-
|
89 |
-
if ( $lang === $builder_language ) {
|
90 |
-
|
91 |
-
$text = $value;
|
92 |
-
if ( WPGlobus_Core::has_translations( $value ) ) {
|
93 |
-
$text = WPGlobus_Core::text_filter( $value, $lang, WPGlobus::RETURN_EMPTY );
|
94 |
-
}
|
95 |
-
if ( ! empty( $text ) ) {
|
96 |
-
$tr[ $lang ] = $text;
|
97 |
-
}
|
98 |
-
} else {
|
99 |
-
if ( isset( $_post->$field ) ) {
|
100 |
-
$text = WPGlobus_Core::text_filter( $_post->$field, $lang, WPGlobus::RETURN_EMPTY );
|
101 |
-
if ( ! empty( $text ) ) {
|
102 |
-
$tr[ $lang ] = $text;
|
103 |
-
}
|
104 |
-
}
|
105 |
-
}
|
106 |
-
|
107 |
-
endforeach;
|
108 |
-
|
109 |
-
$data[ $field ] = WPGlobus_Utils::build_multilingual_string( $tr );
|
110 |
-
|
111 |
-
}
|
112 |
-
|
113 |
-
return $data;
|
114 |
-
|
115 |
-
}
|
116 |
-
|
117 |
-
}
|
118 |
-
|
119 |
-
endif;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/includes/builders/js_composer/class-wpglobus-js_composer.php
DELETED
@@ -1,26 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* File: class-wpglobus-js_composer.php
|
4 |
-
*
|
5 |
-
* @package WPGlobus\Builders\WPBakeryPageBuilder
|
6 |
-
* @author Alex Gor(alexgff)
|
7 |
-
*/
|
8 |
-
|
9 |
-
|
10 |
-
if ( ! class_exists( 'WPGlobus_JS_Composer' ) ) :
|
11 |
-
|
12 |
-
/**
|
13 |
-
* Class WPGlobus_JS_Composer.
|
14 |
-
*/
|
15 |
-
class WPGlobus_JS_Composer extends WPGlobus_Builder {
|
16 |
-
|
17 |
-
/**
|
18 |
-
* Constructor.
|
19 |
-
*/
|
20 |
-
public function __construct() {
|
21 |
-
parent::__construct( 'js_composer' );
|
22 |
-
}
|
23 |
-
|
24 |
-
}
|
25 |
-
|
26 |
-
endif;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/includes/builders/pods/class-wpglobus-builder-pods.php
DELETED
@@ -1,110 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* File: class-wpglobus-builder-pods.php
|
4 |
-
*
|
5 |
-
* @since 2.3.0
|
6 |
-
*
|
7 |
-
* @package WPGlobus\Builders\Pods.
|
8 |
-
* @author Alex Gor(alexgff)
|
9 |
-
*/
|
10 |
-
|
11 |
-
if ( ! class_exists( 'WPGlobus_Builder_Pods' ) ) :
|
12 |
-
|
13 |
-
/**
|
14 |
-
* Class WPGlobus_Builder_Pods.
|
15 |
-
*/
|
16 |
-
class WPGlobus_Builder_Pods {
|
17 |
-
|
18 |
-
/**
|
19 |
-
* Default Pods post type.
|
20 |
-
*/
|
21 |
-
protected static $post_type = '_pods_pod';
|
22 |
-
|
23 |
-
/**
|
24 |
-
* Type of Pods: `post_type` or `settings`.
|
25 |
-
*/
|
26 |
-
protected static $pods_type = '';
|
27 |
-
|
28 |
-
/**
|
29 |
-
* Get attributes.
|
30 |
-
*/
|
31 |
-
public static function get_attrs($attrs) {
|
32 |
-
|
33 |
-
if ( ! function_exists('pods_api') ) {
|
34 |
-
return false;
|
35 |
-
}
|
36 |
-
|
37 |
-
/** @global string $pagenow */
|
38 |
-
/** @global string $wpdb */
|
39 |
-
global $pagenow, $wpdb;
|
40 |
-
|
41 |
-
$result = true;
|
42 |
-
|
43 |
-
if ( 'post.php' === $pagenow ) {
|
44 |
-
|
45 |
-
/**
|
46 |
-
* @see pods\includes\classes.php
|
47 |
-
*/
|
48 |
-
$pods = pods_api()->load_pods( array( 'type' => 'post_type', 'fields' => true ) );
|
49 |
-
|
50 |
-
self::$pods_type = 'post_type';
|
51 |
-
|
52 |
-
$post_id = $attrs['post_id'];
|
53 |
-
|
54 |
-
if ( $post_id > 0 ) {
|
55 |
-
|
56 |
-
$pods_pod = $wpdb->get_results( $wpdb->prepare(
|
57 |
-
"SELECT p.post_name AS name, p.ID, p.post_title AS title, p.post_parent AS parent, pm.meta_value AS type FROM $wpdb->posts as p
|
58 |
-
LEFT JOIN $wpdb->postmeta AS pm ON pm.post_id = p.ID WHERE p.post_type = %s AND p.post_status = 'publish'
|
59 |
-
AND pm.meta_key = 'type' AND pm.meta_value = %s",
|
60 |
-
self::$post_type,
|
61 |
-
self::$pods_type
|
62 |
-
), OBJECT_K );
|
63 |
-
|
64 |
-
if ( ! empty($pods_pod) ) {
|
65 |
-
|
66 |
-
foreach ( $pods_pod as $_pod_key => $_pod ) :
|
67 |
-
|
68 |
-
if ( $attrs['post_type'] != $_pod_key ) {
|
69 |
-
continue;
|
70 |
-
}
|
71 |
-
|
72 |
-
if ( empty($pods[ $_pod->ID ]['fields']) ) {
|
73 |
-
/**
|
74 |
-
* Pods_pod is attached to post type (e.g. for post) but has no fields.
|
75 |
-
*/
|
76 |
-
$result = false;
|
77 |
-
break;
|
78 |
-
}
|
79 |
-
|
80 |
-
endforeach;
|
81 |
-
}
|
82 |
-
}
|
83 |
-
|
84 |
-
if ( ! $result ) {
|
85 |
-
return false;
|
86 |
-
}
|
87 |
-
|
88 |
-
$attrs['builder_page'] = true;
|
89 |
-
return $attrs;
|
90 |
-
|
91 |
-
} else {
|
92 |
-
/**
|
93 |
-
* @todo W.I.P @since 2.3.0
|
94 |
-
*/
|
95 |
-
//
|
96 |
-
//if ( ! empty($_GET['page']) && false !== strpos( $_GET['page'], 'pods-settings' ) ) {
|
97 |
-
// $attrs['builder_page'] = true;
|
98 |
-
// return $attrs;
|
99 |
-
//}
|
100 |
-
}
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
return false;
|
105 |
-
}
|
106 |
-
}
|
107 |
-
|
108 |
-
endif;
|
109 |
-
|
110 |
-
# --- EOF
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/includes/builders/pods/class-wpglobus-pods-update-post.php
DELETED
@@ -1,120 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* File: class-wpglobus-pods-update-post.php
|
4 |
-
*
|
5 |
-
* @since 2.3.0
|
6 |
-
*
|
7 |
-
* @package WPGlobus\Builders\Pods.
|
8 |
-
* @author Alex Gor(alexgff)
|
9 |
-
*/
|
10 |
-
|
11 |
-
/**
|
12 |
-
* Class WPGlobus_pods_Update_Post.
|
13 |
-
*/
|
14 |
-
if ( ! class_exists( 'WPGlobus_pods_Update_Post' ) ) :
|
15 |
-
|
16 |
-
// phpcs:ignore PEAR.NamingConventions
|
17 |
-
class WPGlobus_pods_Update_Post extends WPGlobus_Builder_Update_Post {
|
18 |
-
|
19 |
-
/**
|
20 |
-
* Constructor.
|
21 |
-
*/
|
22 |
-
public function __construct() {
|
23 |
-
|
24 |
-
parent::__construct( 'pods' );
|
25 |
-
|
26 |
-
/**
|
27 |
-
* @see_file wpglobus\includes\class-wpglobus.php
|
28 |
-
*/
|
29 |
-
remove_action( 'wp_insert_post_data', array( 'WPGlobus', 'on_save_post_data' ), 10 );
|
30 |
-
|
31 |
-
/**
|
32 |
-
* @todo incorrect the saving post in extra languages with priority = 10
|
33 |
-
*/
|
34 |
-
add_filter( 'wp_insert_post_data', array( $this, 'filter__wp_insert_post_data' ), 100, 2 );
|
35 |
-
|
36 |
-
}
|
37 |
-
|
38 |
-
/**
|
39 |
-
* Callback for 'wp_insert_post_data'.
|
40 |
-
*
|
41 |
-
* @param array $data
|
42 |
-
* @param array $postarr
|
43 |
-
*
|
44 |
-
* @return mixed
|
45 |
-
*/
|
46 |
-
public function filter__wp_insert_post_data( $data, $postarr ) {
|
47 |
-
|
48 |
-
/**
|
49 |
-
* Prevent to filter disabled post type.
|
50 |
-
*/
|
51 |
-
if ( in_array( $data['post_type'], WPGlobus::Config()->disabled_entities, true ) ) {
|
52 |
-
return $data;
|
53 |
-
}
|
54 |
-
|
55 |
-
global $wpdb;
|
56 |
-
$_post = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $wpdb->posts WHERE ID = %d AND post_type = %s LIMIT 1", $postarr['ID'], $postarr['post_type'] ) );
|
57 |
-
|
58 |
-
$fields = array();
|
59 |
-
if ( isset( $postarr['post_title'] ) ) {
|
60 |
-
$fields['post_title'] = $postarr['post_title'];
|
61 |
-
}
|
62 |
-
|
63 |
-
if ( isset( $postarr['post_content'] ) ) {
|
64 |
-
$fields['post_content'] = $postarr['post_content'];
|
65 |
-
}
|
66 |
-
|
67 |
-
if ( isset( $postarr['post_excerpt'] ) ) {
|
68 |
-
$fields['post_excerpt'] = $postarr['post_excerpt'];
|
69 |
-
}
|
70 |
-
|
71 |
-
$builder_language = WPGlobus::Config()->builder->get_language();
|
72 |
-
|
73 |
-
if ( empty( $builder_language ) ) {
|
74 |
-
|
75 |
-
if ( empty( $postarr[ WPGlobus::get_language_meta_key() ] ) ) {
|
76 |
-
$builder_language = WPGlobus::Config()->default_language;
|
77 |
-
} else {
|
78 |
-
$builder_language = $postarr[ WPGlobus::get_language_meta_key() ];
|
79 |
-
}
|
80 |
-
}
|
81 |
-
|
82 |
-
foreach ( $fields as $field => $value ) {
|
83 |
-
|
84 |
-
$tr = array();
|
85 |
-
|
86 |
-
foreach ( WPGlobus::Config()->enabled_languages as $lang ) :
|
87 |
-
|
88 |
-
if ( $lang === $builder_language ) {
|
89 |
-
|
90 |
-
$text = $value;
|
91 |
-
if ( WPGlobus_Core::has_translations( $value ) ) {
|
92 |
-
$text = WPGlobus_Core::text_filter( $value, $lang, WPGlobus::RETURN_EMPTY );
|
93 |
-
}
|
94 |
-
if ( ! empty( $text ) ) {
|
95 |
-
$tr[ $lang ] = $text;
|
96 |
-
}
|
97 |
-
} else {
|
98 |
-
if ( isset( $_post->$field ) ) {
|
99 |
-
$text = WPGlobus_Core::text_filter( $_post->$field, $lang, WPGlobus::RETURN_EMPTY );
|
100 |
-
if ( ! empty( $text ) ) {
|
101 |
-
$tr[ $lang ] = $text;
|
102 |
-
}
|
103 |
-
}
|
104 |
-
}
|
105 |
-
|
106 |
-
endforeach;
|
107 |
-
|
108 |
-
$data[ $field ] = WPGlobus_Utils::build_multilingual_string( $tr );
|
109 |
-
|
110 |
-
}
|
111 |
-
|
112 |
-
return $data;
|
113 |
-
|
114 |
-
}
|
115 |
-
|
116 |
-
}
|
117 |
-
|
118 |
-
endif;
|
119 |
-
|
120 |
-
# --- EOF
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/includes/builders/pods/class-wpglobus-pods.php
DELETED
@@ -1,31 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* File: class-wpglobus-pods.php
|
4 |
-
*
|
5 |
-
* @since 2.3.0
|
6 |
-
*
|
7 |
-
* @package WPGlobus\Builders\Pods.
|
8 |
-
* @author Alex Gor(alexgff)
|
9 |
-
*/
|
10 |
-
|
11 |
-
if ( ! class_exists( 'WPGlobus_Pods' ) ) :
|
12 |
-
|
13 |
-
/**
|
14 |
-
* Class WPGlobus_Pods.
|
15 |
-
*/
|
16 |
-
class WPGlobus_Pods extends WPGlobus_Builder {
|
17 |
-
|
18 |
-
/**
|
19 |
-
* Constructor.
|
20 |
-
*/
|
21 |
-
public function __construct() {
|
22 |
-
|
23 |
-
parent::__construct( 'pods' );
|
24 |
-
|
25 |
-
}
|
26 |
-
|
27 |
-
}
|
28 |
-
|
29 |
-
endif;
|
30 |
-
|
31 |
-
# --- EOF
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/includes/builders/rank_math_seo/class-wpglobus-builder-rank_math_seo.php
DELETED
@@ -1,75 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* File: class-wpglobus-builder-rank_math_seo.php
|
4 |
-
*
|
5 |
-
* @since 2.4.3
|
6 |
-
*
|
7 |
-
* @package WPGlobus\Builders\RankMathSEO.
|
8 |
-
* @author Alex Gor(alexgff)
|
9 |
-
*/
|
10 |
-
|
11 |
-
if ( ! class_exists( 'WPGlobus_Builder_RankMathSEO' ) ) :
|
12 |
-
|
13 |
-
/**
|
14 |
-
* Class WPGlobus_Builder_RankMathSEO.
|
15 |
-
*/
|
16 |
-
class WPGlobus_Builder_RankMathSEO {
|
17 |
-
|
18 |
-
/**
|
19 |
-
* Options titles.
|
20 |
-
* @see section Titles&Meta.
|
21 |
-
*/
|
22 |
-
protected static $options_titles = 'rank-math-options-titles';
|
23 |
-
|
24 |
-
/**
|
25 |
-
* Get attributes.
|
26 |
-
*/
|
27 |
-
public static function get_attrs($attrs) {
|
28 |
-
|
29 |
-
/** @global string $pagenow */
|
30 |
-
global $pagenow;
|
31 |
-
|
32 |
-
if ( 'post.php' === $pagenow ) {
|
33 |
-
|
34 |
-
$post_type = 'post';
|
35 |
-
if ( ! empty( $attrs['post_type'] ) ) {
|
36 |
-
$post_type = $attrs['post_type'];
|
37 |
-
}
|
38 |
-
|
39 |
-
$opts = get_option( self::$options_titles );
|
40 |
-
|
41 |
-
if ( ! empty( $opts[ "pt_{$post_type}_add_meta_box" ] ) && 'off' == $opts[ "pt_{$post_type}_add_meta_box" ] ) {
|
42 |
-
$attrs = false;
|
43 |
-
} else {
|
44 |
-
$attrs['builder_page'] = true;
|
45 |
-
}
|
46 |
-
|
47 |
-
return $attrs;
|
48 |
-
|
49 |
-
} elseif ( 'term.php' === $pagenow ) {
|
50 |
-
|
51 |
-
$tax = empty( $_GET['taxonomy'] ) ? false : sanitize_text_field( wp_unslash( $_GET['taxonomy'] ) ); // phpcs:ignore WordPress.CSRF.NonceVerification
|
52 |
-
|
53 |
-
if ( $tax ) {
|
54 |
-
|
55 |
-
$opts = get_option( self::$options_titles );
|
56 |
-
|
57 |
-
if ( ! empty( $opts[ "tax_{$tax}_add_meta_box" ] ) && 'off' == $opts[ "tax_{$tax}_add_meta_box" ] ) {
|
58 |
-
$attrs = false;
|
59 |
-
} else {
|
60 |
-
$attrs['post_type'] = ''; // reset post type.
|
61 |
-
$attrs['taxonomy'] = $tax;
|
62 |
-
$attrs['builder_page'] = true;
|
63 |
-
}
|
64 |
-
|
65 |
-
return $attrs;
|
66 |
-
}
|
67 |
-
}
|
68 |
-
|
69 |
-
return false;
|
70 |
-
}
|
71 |
-
}
|
72 |
-
|
73 |
-
endif;
|
74 |
-
|
75 |
-
# --- EOF
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/includes/builders/rank_math_seo/class-wpglobus-rank_math_seo-functions.php
DELETED
@@ -1,168 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* File: class-wpglobus-rank_math_seo-functions.php
|
4 |
-
*
|
5 |
-
* @since 2.4.3
|
6 |
-
*
|
7 |
-
* @package WPGlobus\Builders\RankMathSEO.
|
8 |
-
* @author Alex Gor(alexgff)
|
9 |
-
*/
|
10 |
-
|
11 |
-
if ( ! class_exists( 'WPGlobus_RankMathSEO_Functions' ) ) :
|
12 |
-
|
13 |
-
/**
|
14 |
-
* Class WPGlobus_RankMathSEO_Functions.
|
15 |
-
*/
|
16 |
-
class WPGlobus_RankMathSEO_Functions {
|
17 |
-
|
18 |
-
/**
|
19 |
-
* Current taxonomy.
|
20 |
-
*/
|
21 |
-
protected static $taxonomy = false;
|
22 |
-
|
23 |
-
/**
|
24 |
-
* WP_Term object.
|
25 |
-
*/
|
26 |
-
protected static $tag = false;
|
27 |
-
|
28 |
-
/**
|
29 |
-
* Current language.
|
30 |
-
*/
|
31 |
-
protected static $current_language = false;
|
32 |
-
|
33 |
-
/**
|
34 |
-
* Constructor.
|
35 |
-
*/
|
36 |
-
public static function controller() {
|
37 |
-
|
38 |
-
if ( empty( $_POST['nonce_CMB2phprank_math_metabox'] ) || empty( $_POST['action'] ) ) {
|
39 |
-
/**
|
40 |
-
* Not `Rank Math SEO`.
|
41 |
-
*/
|
42 |
-
return;
|
43 |
-
}
|
44 |
-
|
45 |
-
global $pagenow;
|
46 |
-
|
47 |
-
if ( ! empty( $_POST[ WPGlobus::get_language_meta_key() ] ) ) {
|
48 |
-
self::$current_language = sanitize_text_field( $_POST[ WPGlobus::get_language_meta_key() ] );
|
49 |
-
}
|
50 |
-
|
51 |
-
if ( 'edit-tags.php' === $pagenow && 'editedtag' === $_POST['action'] ) { // phpcs:ignore WordPress.CSRF.NonceVerification
|
52 |
-
/**
|
53 |
-
* Update button was clicked.
|
54 |
-
*/
|
55 |
-
self::build_ml_description();
|
56 |
-
}
|
57 |
-
|
58 |
-
add_filter( 'wp_update_term_data', array( __CLASS__, 'filter__update_term_data' ), 5, 4 );
|
59 |
-
}
|
60 |
-
|
61 |
-
/**
|
62 |
-
* Build multilingual description.
|
63 |
-
* We don't have filter for description like filter for name @see 'wp_update_term_data' in wp-includes\taxonomy.php
|
64 |
-
*/
|
65 |
-
protected static function build_ml_description() {
|
66 |
-
|
67 |
-
if ( ! self::$current_language ) {
|
68 |
-
return;
|
69 |
-
}
|
70 |
-
|
71 |
-
global $wpdb;
|
72 |
-
|
73 |
-
$tag_ID = (int) $_POST['tag_ID'];
|
74 |
-
$taxonomy = $_POST['taxonomy']; // phpcs:ignore WordPress.CSRF.NonceVerification
|
75 |
-
|
76 |
-
self::$tag = get_term( $tag_ID, $taxonomy );
|
77 |
-
|
78 |
-
if ( is_wp_error( self::$tag ) ) {
|
79 |
-
|
80 |
-
$terms = $wpdb->get_results( $wpdb->prepare( "SELECT t.*, tt.* FROM $wpdb->terms AS t INNER JOIN $wpdb->term_taxonomy AS tt ON t.term_id = tt.term_id WHERE t.term_id = %d", $tag_ID ) );
|
81 |
-
if ( ! empty( $terms[0] ) && is_object( $terms[0] ) ) {
|
82 |
-
self::$tag = $terms[0];
|
83 |
-
}
|
84 |
-
}
|
85 |
-
|
86 |
-
if ( is_wp_error( self::$tag ) ) {
|
87 |
-
/**
|
88 |
-
* @todo Investigate.
|
89 |
-
*/
|
90 |
-
return;
|
91 |
-
}
|
92 |
-
|
93 |
-
$new_desc = array();
|
94 |
-
|
95 |
-
foreach ( WPGlobus::Config()->enabled_languages as $lang ) :
|
96 |
-
|
97 |
-
if ( $lang === self::$current_language ) {
|
98 |
-
|
99 |
-
$text = trim( $_POST['description'] ); // phpcs:ignore WordPress.CSRF.NonceVerification
|
100 |
-
if ( ! empty( $text ) ) {
|
101 |
-
$new_desc[ $lang ] = $text;
|
102 |
-
}
|
103 |
-
} else {
|
104 |
-
|
105 |
-
$text = WPGlobus_Core::text_filter( self::$tag->description, $lang, WPGlobus::RETURN_EMPTY );
|
106 |
-
if ( ! empty( $text ) ) {
|
107 |
-
$new_desc[ $lang ] = $text;
|
108 |
-
}
|
109 |
-
}
|
110 |
-
|
111 |
-
endforeach;
|
112 |
-
|
113 |
-
$_POST['description'] = WPGlobus_Utils::build_multilingual_string( $new_desc );
|
114 |
-
}
|
115 |
-
|
116 |
-
/**
|
117 |
-
* Filters term data before it is updated in the database.
|
118 |
-
*
|
119 |
-
* @param array $data Term data to be updated.
|
120 |
-
* @param int $term_id Term ID.
|
121 |
-
* @param string $taxonomy Taxonomy slug.
|
122 |
-
* @param array $args Arguments passed to wp_update_term().
|
123 |
-
*
|
124 |
-
* @return array
|
125 |
-
*/
|
126 |
-
public static function filter__update_term_data( $data, $term_id, $taxonomy, $args ) {
|
127 |
-
|
128 |
-
if ( is_wp_error( self::$tag ) ) {
|
129 |
-
/**
|
130 |
-
* @todo Investigate.
|
131 |
-
* may be to use $args.
|
132 |
-
*/
|
133 |
-
return $data;
|
134 |
-
}
|
135 |
-
|
136 |
-
if ( ! self::$current_language ) {
|
137 |
-
return $data;
|
138 |
-
}
|
139 |
-
|
140 |
-
$new_term_name = array();
|
141 |
-
foreach ( WPGlobus::Config()->enabled_languages as $language ) :
|
142 |
-
|
143 |
-
if ( $language === self::$current_language ) {
|
144 |
-
|
145 |
-
$text = trim( $data['name'] );
|
146 |
-
if ( ! empty( $text ) ) {
|
147 |
-
$new_term_name[ $language ] = $text;
|
148 |
-
}
|
149 |
-
} else {
|
150 |
-
|
151 |
-
$text = WPGlobus_Core::text_filter( self::$tag->name, $language, WPGlobus::RETURN_EMPTY );
|
152 |
-
if ( ! empty( $text ) ) {
|
153 |
-
$new_term_name[ $language ] = $text;
|
154 |
-
}
|
155 |
-
}
|
156 |
-
|
157 |
-
endforeach;
|
158 |
-
|
159 |
-
$data['name'] = WPGlobus_Utils::build_multilingual_string( $new_term_name );
|
160 |
-
|
161 |
-
return $data;
|
162 |
-
}
|
163 |
-
|
164 |
-
} // class WPGlobus_RankMathSEO_Functions.
|
165 |
-
|
166 |
-
endif;
|
167 |
-
|
168 |
-
# --- EOF
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/includes/builders/rank_math_seo/class-wpglobus-rank_math_seo-update-post.php
DELETED
@@ -1,40 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* File: class-wpglobus-rank_math_seo-update-post.php
|
4 |
-
*
|
5 |
-
* @since 2.4.3
|
6 |
-
*
|
7 |
-
* @package WPGlobus\Builders\RankMathSEO.
|
8 |
-
* @author Alex Gor(alexgff)
|
9 |
-
*/
|
10 |
-
|
11 |
-
if ( ! class_exists( 'WPGlobus_rank_math_seo_Update_Post' ) ) :
|
12 |
-
|
13 |
-
/**
|
14 |
-
* Class WPGlobus_rank_math_seo_Update_Post.
|
15 |
-
*/
|
16 |
-
// phpcs:ignore PEAR.NamingConventions
|
17 |
-
class WPGlobus_rank_math_seo_Update_Post extends WPGlobus_Builder_Update_Post {
|
18 |
-
|
19 |
-
/**
|
20 |
-
* Constructor.
|
21 |
-
*/
|
22 |
-
public function __construct( $id = null ) {
|
23 |
-
|
24 |
-
if ( is_null($id) ) {
|
25 |
-
$id = WPGlobus::Config()->builder->get_id();
|
26 |
-
}
|
27 |
-
|
28 |
-
parent::__construct( $id );
|
29 |
-
|
30 |
-
/**
|
31 |
-
* @see_file wpglobus\includes\class-wpglobus.php
|
32 |
-
*/
|
33 |
-
remove_action( 'wp_insert_post_data', array( 'WPGlobus', 'on_save_post_data' ), 10 );
|
34 |
-
}
|
35 |
-
|
36 |
-
} // class WPGlobus_rank_math_seo_Update_Post.
|
37 |
-
|
38 |
-
endif;
|
39 |
-
|
40 |
-
# --- EOF
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/includes/builders/rank_math_seo/class-wpglobus-rank_math_seo.php
DELETED
@@ -1,73 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* File: class-wpglobus-rank_math_seo.php
|
4 |
-
*
|
5 |
-
* @since 2.4.3
|
6 |
-
*
|
7 |
-
* @package WPGlobus\Builders\RankMathSEO.
|
8 |
-
* @author Alex Gor(alexgff)
|
9 |
-
*/
|
10 |
-
|
11 |
-
if ( ! class_exists( 'WPGlobus_RankMathSEO' ) ) :
|
12 |
-
|
13 |
-
/**
|
14 |
-
* Class WPGlobus_RankMathSEO.
|
15 |
-
*/
|
16 |
-
class WPGlobus_RankMathSEO extends WPGlobus_Builder {
|
17 |
-
|
18 |
-
/**
|
19 |
-
* Current taxonomy.
|
20 |
-
*/
|
21 |
-
protected $taxonomy = null;
|
22 |
-
|
23 |
-
/**
|
24 |
-
* Constructor.
|
25 |
-
*/
|
26 |
-
public function __construct( $id = null ) {
|
27 |
-
|
28 |
-
if ( is_null($id) ) {
|
29 |
-
$id = WPGlobus::Config()->builder->get_id();
|
30 |
-
}
|
31 |
-
|
32 |
-
parent::__construct( $id );
|
33 |
-
|
34 |
-
$this->taxonomy = WPGlobus::Config()->builder->get('taxonomy');
|
35 |
-
|
36 |
-
if ( ! is_null($this->taxonomy) ) {
|
37 |
-
|
38 |
-
add_action( "{$this->taxonomy}_pre_edit_form", array( $this, 'on__pre_edit_form' ), 10, 2 );
|
39 |
-
|
40 |
-
add_action( "{$this->taxonomy}_term_edit_form_top", array( $this, 'on__edit_form' ), 10, 2 );
|
41 |
-
}
|
42 |
-
|
43 |
-
}
|
44 |
-
|
45 |
-
/**
|
46 |
-
* Fires before the Edit Term form for all taxonomies.
|
47 |
-
*
|
48 |
-
* @param object $tag Current taxonomy term object.
|
49 |
-
* @param string $taxonomy Current $taxonomy slug.
|
50 |
-
*/
|
51 |
-
public function on__pre_edit_form( $tag, $taxonomy ) {
|
52 |
-
/**
|
53 |
-
* Init Name and Description in current language.
|
54 |
-
*/
|
55 |
-
$tag->description = WPGlobus_Core::text_filter( $tag->description, $this->get_current_language(), WPGlobus::RETURN_EMPTY );
|
56 |
-
$tag->name = WPGlobus_Core::text_filter( $tag->name, $this->get_current_language(), WPGlobus::RETURN_EMPTY );
|
57 |
-
}
|
58 |
-
|
59 |
-
/**
|
60 |
-
* Add language field to taxonomy edit form.
|
61 |
-
* Fires at the beginning of the Edit Term form.
|
62 |
-
*
|
63 |
-
* @param object $tag Current taxonomy term object.
|
64 |
-
* @param string $taxonomy Current $taxonomy slug.
|
65 |
-
*/
|
66 |
-
public function on__edit_form( $tag, $taxonomy ) {
|
67 |
-
echo '<input type="hidden" name="'.WPGlobus::get_language_meta_key().'" value="'.$this->get_current_language().'">';
|
68 |
-
}
|
69 |
-
}
|
70 |
-
|
71 |
-
endif;
|
72 |
-
|
73 |
-
# --- EOF
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/includes/builders/yoast_seo/class-wpglobus-yoast_seo-update-post.php
DELETED
@@ -1,259 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* File: class-wpglobus-yoast_seo-update-post.php
|
4 |
-
*
|
5 |
-
* @package WPGlobus\Builders\Yoast_SEO
|
6 |
-
* @author Alex Gor(alexgff)
|
7 |
-
*/
|
8 |
-
|
9 |
-
/**
|
10 |
-
* Class WPGlobus_yoast_seo_Update_Post.
|
11 |
-
*/
|
12 |
-
|
13 |
-
if ( ! class_exists( 'WPGlobus_yoast_seo_Update_Post' ) ) :
|
14 |
-
|
15 |
-
// phpcs:ignore PEAR.NamingConventions
|
16 |
-
class WPGlobus_yoast_seo_Update_Post extends WPGlobus_Builder_Update_Post {
|
17 |
-
|
18 |
-
/**
|
19 |
-
* Current taxonomy.
|
20 |
-
*/
|
21 |
-
protected $taxonomy = '';
|
22 |
-
|
23 |
-
/**
|
24 |
-
* WP_Term object.
|
25 |
-
*/
|
26 |
-
protected $tag;
|
27 |
-
|
28 |
-
/**
|
29 |
-
* Constructor.
|
30 |
-
*/
|
31 |
-
public function __construct() {
|
32 |
-
|
33 |
-
parent::__construct( 'yoast_seo' );
|
34 |
-
|
35 |
-
global $pagenow;
|
36 |
-
|
37 |
-
if ( 'edit-tags.php' === $pagenow && 'editedtag' === $_POST['action'] ) { // phpcs:ignore WordPress.CSRF.NonceVerification
|
38 |
-
/**
|
39 |
-
* Update button was clicked.
|
40 |
-
*/
|
41 |
-
$this->build_ml_description();
|
42 |
-
}
|
43 |
-
|
44 |
-
/**
|
45 |
-
* @see_file wpglobus\includes\class-wpglobus.php
|
46 |
-
*/
|
47 |
-
remove_action( 'wp_insert_post_data', array( 'WPGlobus', 'on_save_post_data' ), 10 );
|
48 |
-
|
49 |
-
/**
|
50 |
-
* @todo incorrect the saving post in extra languages with priority = 10
|
51 |
-
*/
|
52 |
-
add_filter( 'wp_insert_post_data', array( $this, 'filter__wp_insert_post_data' ), 100, 2 );
|
53 |
-
|
54 |
-
$this->taxonomy = WPGlobus::Config()->builder->get( 'taxonomy' );
|
55 |
-
|
56 |
-
if ( $this->taxonomy ) {
|
57 |
-
|
58 |
-
add_filter( 'wp_update_term_data', array( $this, 'filter__update_term_data' ), 10, 4 );
|
59 |
-
|
60 |
-
}
|
61 |
-
}
|
62 |
-
|
63 |
-
/**
|
64 |
-
* Build multilingual description.
|
65 |
-
* We don't have filter for description like filter for name @see 'wp_update_term_data' in wp-includes\taxonomy.php
|
66 |
-
*/
|
67 |
-
public function build_ml_description() {
|
68 |
-
|
69 |
-
global $wpdb;
|
70 |
-
|
71 |
-
$current_language = WPGlobus::Config()->builder->get_language();
|
72 |
-
|
73 |
-
$tag_ID = (int) $_POST['tag_ID'];
|
74 |
-
$taxonomy = $_POST['taxonomy']; // phpcs:ignore WordPress.CSRF.NonceVerification
|
75 |
-
|
76 |
-
$this->tag = get_term( $tag_ID, $taxonomy );
|
77 |
-
|
78 |
-
if ( is_wp_error( $this->tag ) ) {
|
79 |
-
|
80 |
-
$terms = $wpdb->get_results( $wpdb->prepare( "SELECT t.*, tt.* FROM $wpdb->terms AS t INNER JOIN $wpdb->term_taxonomy AS tt ON t.term_id = tt.term_id WHERE t.term_id = %d", $tag_ID ) );
|
81 |
-
if ( ! empty( $terms[0] ) && is_object( $terms[0] ) ) {
|
82 |
-
$this->tag = $terms[0];
|
83 |
-
}
|
84 |
-
}
|
85 |
-
|
86 |
-
if ( is_wp_error( $this->tag ) ) {
|
87 |
-
/**
|
88 |
-
* @todo Investigate.
|
89 |
-
*/
|
90 |
-
return;
|
91 |
-
}
|
92 |
-
|
93 |
-
$new_desc = array();
|
94 |
-
|
95 |
-
foreach ( WPGlobus::Config()->enabled_languages as $lang ) :
|
96 |
-
|
97 |
-
if ( $lang === $current_language ) {
|
98 |
-
|
99 |
-
$text = trim( $_POST['description'] ); // phpcs:ignore WordPress.CSRF.NonceVerification
|
100 |
-
if ( ! empty( $text ) ) {
|
101 |
-
$new_desc[ $lang ] = $text;
|
102 |
-
}
|
103 |
-
} else {
|
104 |
-
|
105 |
-
$text = WPGlobus_Core::text_filter( $this->tag->description, $lang, WPGlobus::RETURN_EMPTY );
|
106 |
-
if ( ! empty( $text ) ) {
|
107 |
-
$new_desc[ $lang ] = $text;
|
108 |
-
}
|
109 |
-
}
|
110 |
-
|
111 |
-
endforeach;
|
112 |
-
|
113 |
-
$_POST['description'] = WPGlobus_Utils::build_multilingual_string( $new_desc );
|
114 |
-
|
115 |
-
}
|
116 |
-
|
117 |
-
/**
|
118 |
-
* Filters term data before it is updated in the database.
|
119 |
-
*
|
120 |
-
* @param array $data Term data to be updated.
|
121 |
-
* @param int $term_id Term ID.
|
122 |
-
* @param string $taxonomy Taxonomy slug.
|
123 |
-
* @param array $args Arguments passed to wp_update_term().
|
124 |
-
*
|
125 |
-
* @return array
|
126 |
-
*/
|
127 |
-
public function filter__update_term_data(
|
128 |
-
$data,
|
129 |
-
/** @noinspection PhpUnusedParameterInspection */
|
130 |
-
$term_id,
|
131 |
-
/** @noinspection PhpUnusedParameterInspection */
|
132 |
-
$taxonomy,
|
133 |
-
/** @noinspection PhpUnusedParameterInspection */
|
134 |
-
$args
|
135 |
-
) {
|
136 |
-
|
137 |
-
if ( is_wp_error( $this->tag ) ) {
|
138 |
-
/**
|
139 |
-
* @todo Investigate.
|
140 |
-
* may be to use $args.
|
141 |
-
*/
|
142 |
-
return $data;
|
143 |
-
}
|
144 |
-
|
145 |
-
if ( WPGlobus::Config()->builder && ! WPGlobus::Config()->builder->is_builder_page() ) {
|
146 |
-
return $data;
|
147 |
-
}
|
148 |
-
|
149 |
-
$current_language = WPGlobus::Config()->builder->get_language();
|
150 |
-
|
151 |
-
$new_name = array();
|
152 |
-
|
153 |
-
foreach ( WPGlobus::Config()->enabled_languages as $lang ) :
|
154 |
-
|
155 |
-
if ( $lang === $current_language ) {
|
156 |
-
|
157 |
-
$text = trim( $data['name'] );
|
158 |
-
if ( ! empty( $text ) ) {
|
159 |
-
$new_name[ $lang ] = $text;
|
160 |
-
}
|
161 |
-
} else {
|
162 |
-
|
163 |
-
$text = WPGlobus_Core::text_filter( $this->tag->name, $lang, WPGlobus::RETURN_EMPTY );
|
164 |
-
if ( ! empty( $text ) ) {
|
165 |
-
$new_name[ $lang ] = $text;
|
166 |
-
}
|
167 |
-
}
|
168 |
-
|
169 |
-
endforeach;
|
170 |
-
|
171 |
-
$data['name'] = WPGlobus_Utils::build_multilingual_string( $new_name );
|
172 |
-
|
173 |
-
return $data;
|
174 |
-
|
175 |
-
}
|
176 |
-
|
177 |
-
/**
|
178 |
-
* Callback for 'wp_insert_post_data'.
|
179 |
-
*
|
180 |
-
* @param array $data
|
181 |
-
* @param array $postarr
|
182 |
-
*
|
183 |
-
* @return array mixed
|
184 |
-
*/
|
185 |
-
public function filter__wp_insert_post_data( $data, $postarr ) {
|
186 |
-
|
187 |
-
/**
|
188 |
-
* Prevent to filter disabled post type.
|
189 |
-
*
|
190 |
-
* @since 2.1.4
|
191 |
-
*/
|
192 |
-
if ( in_array( $data['post_type'], WPGlobus::Config()->disabled_entities, true ) ) {
|
193 |
-
return $data;
|
194 |
-
}
|
195 |
-
|
196 |
-
global $wpdb;
|
197 |
-
$_post = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $wpdb->posts WHERE ID = %d AND post_type = %s LIMIT 1", $postarr['ID'], $postarr['post_type'] ) );
|
198 |
-
|
199 |
-
$fields = array();
|
200 |
-
if ( isset( $postarr['post_title'] ) ) {
|
201 |
-
$fields['post_title'] = $postarr['post_title'];
|
202 |
-
}
|
203 |
-
|
204 |
-
if ( isset( $postarr['post_content'] ) ) {
|
205 |
-
$fields['post_content'] = $postarr['post_content'];
|
206 |
-
}
|
207 |
-
|
208 |
-
if ( isset( $postarr['post_excerpt'] ) ) {
|
209 |
-
$fields['post_excerpt'] = $postarr['post_excerpt'];
|
210 |
-
}
|
211 |
-
|
212 |
-
$builder_language = WPGlobus::Config()->builder->get_language();
|
213 |
-
|
214 |
-
if ( empty( $builder_language ) ) {
|
215 |
-
|
216 |
-
if ( empty( $postarr[ WPGlobus::get_language_meta_key() ] ) ) {
|
217 |
-
$builder_language = WPGlobus::Config()->default_language;
|
218 |
-
} else {
|
219 |
-
$builder_language = $postarr[ WPGlobus::get_language_meta_key() ];
|
220 |
-
}
|
221 |
-
}
|
222 |
-
|
223 |
-
foreach ( $fields as $field => $value ) {
|
224 |
-
|
225 |
-
$tr = array();
|
226 |
-
|
227 |
-
foreach ( WPGlobus::Config()->enabled_languages as $lang ) :
|
228 |
-
|
229 |
-
if ( $lang === $builder_language ) {
|
230 |
-
|
231 |
-
$text = $value;
|
232 |
-
if ( WPGlobus_Core::has_translations( $value ) ) {
|
233 |
-
$text = WPGlobus_Core::text_filter( $value, $lang, WPGlobus::RETURN_EMPTY );
|
234 |
-
}
|
235 |
-
if ( ! empty( $text ) ) {
|
236 |
-
$tr[ $lang ] = $text;
|
237 |
-
}
|
238 |
-
} else {
|
239 |
-
if ( isset( $_post->$field ) ) {
|
240 |
-
$text = WPGlobus_Core::text_filter( $_post->$field, $lang, WPGlobus::RETURN_EMPTY );
|
241 |
-
if ( ! empty( $text ) ) {
|
242 |
-
$tr[ $lang ] = $text;
|
243 |
-
}
|
244 |
-
}
|
245 |
-
}
|
246 |
-
|
247 |
-
endforeach;
|
248 |
-
|
249 |
-
$data[ $field ] = WPGlobus_Utils::build_multilingual_string( $tr );
|
250 |
-
|
251 |
-
}
|
252 |
-
|
253 |
-
return $data;
|
254 |
-
|
255 |
-
}
|
256 |
-
|
257 |
-
}
|
258 |
-
|
259 |
-
endif;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/includes/builders/yoast_seo/class-wpglobus-yoast_seo.php
DELETED
@@ -1,145 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* File: class-wpglobus-yoast_seo.php
|
4 |
-
*
|
5 |
-
* @package WPGlobus\Builders\Yoast_SEO
|
6 |
-
* @author Alex Gor(alexgff)
|
7 |
-
*/
|
8 |
-
|
9 |
-
|
10 |
-
if ( ! class_exists( 'WPGlobus_Yoast_SEO' ) ) :
|
11 |
-
|
12 |
-
/**
|
13 |
-
* Class WPGlobus_Yoast_SEO.
|
14 |
-
*/
|
15 |
-
class WPGlobus_Yoast_SEO extends WPGlobus_Builder {
|
16 |
-
|
17 |
-
/**
|
18 |
-
* Current taxonomy.
|
19 |
-
*/
|
20 |
-
protected $taxonomy = '';
|
21 |
-
|
22 |
-
protected $wpseo_taxonomy_option_name = '';
|
23 |
-
|
24 |
-
/**
|
25 |
-
* Constructor.
|
26 |
-
*/
|
27 |
-
public function __construct() {
|
28 |
-
|
29 |
-
/**
|
30 |
-
* @see 'WPSEO_PREMIUM_FILE' for premium add-on.
|
31 |
-
*/
|
32 |
-
|
33 |
-
parent::__construct( 'yoast_seo' );
|
34 |
-
|
35 |
-
$this->taxonomy = WPGlobus::Config()->builder->get('taxonomy');
|
36 |
-
|
37 |
-
if ( $this->taxonomy ) {
|
38 |
-
|
39 |
-
add_action( "{$this->taxonomy}_pre_edit_form", array( $this, 'on__pre_edit_form' ), 10, 2 );
|
40 |
-
|
41 |
-
add_action( "{$this->taxonomy}_term_edit_form_top", array( $this, 'on__edit_form' ), 10, 2 );
|
42 |
-
|
43 |
-
if ( class_exists('WPSEO_Taxonomy_Meta') ) {
|
44 |
-
$wpseo_taxonomy_meta = WPSEO_Taxonomy_Meta::get_instance();
|
45 |
-
$this->wpseo_taxonomy_option_name = $wpseo_taxonomy_meta::$name;
|
46 |
-
} else {
|
47 |
-
$this->wpseo_taxonomy_option_name = 'wpseo_taxonomy_meta';
|
48 |
-
}
|
49 |
-
|
50 |
-
add_filter( "option_{$this->wpseo_taxonomy_option_name}", array( $this, 'filter__wpseo_taxonomy_meta' ), 5, 2 );
|
51 |
-
|
52 |
-
/**
|
53 |
-
* @see wordpress-seo\inc\class-wpseo-replace-vars.php
|
54 |
-
*/
|
55 |
-
add_filter( 'wpseo_replacements', array( $this, 'filter__wpseo_replacements' ), 5, 2 );
|
56 |
-
|
57 |
-
}
|
58 |
-
|
59 |
-
}
|
60 |
-
|
61 |
-
/**
|
62 |
-
* Customization of the replacements before they are applied.
|
63 |
-
*
|
64 |
-
* @api array $replacements The replacements.
|
65 |
-
*
|
66 |
-
* @param array $args The object some of the replacement values might come from,
|
67 |
-
* could be a post, taxonomy or term.
|
68 |
-
*/
|
69 |
-
public function filter__wpseo_replacements( $replacements, $args ) {
|
70 |
-
|
71 |
-
if ( ! is_array($replacements) || empty($replacements) ) {
|
72 |
-
return $replacements;
|
73 |
-
}
|
74 |
-
|
75 |
-
$key = key($replacements);
|
76 |
-
|
77 |
-
if ( WPGlobus_Core::has_translations( $replacements[$key] ) ) {
|
78 |
-
$replacements[$key] = WPGlobus_Core::text_filter( $replacements[$key], WPGlobus::Config()->builder->get_language(), WPGlobus::RETURN_EMPTY );
|
79 |
-
}
|
80 |
-
|
81 |
-
return $replacements;
|
82 |
-
}
|
83 |
-
|
84 |
-
/**
|
85 |
-
* Filters the value of a 'wpseo_taxonomy_meta' option.
|
86 |
-
*
|
87 |
-
* @param mixed $option_value Value of the option. If stored serialized, it will be
|
88 |
-
* unserialized prior to being returned.
|
89 |
-
* @param string $option_name Option name.
|
90 |
-
*/
|
91 |
-
public function filter__wpseo_taxonomy_meta( $option_value, $option_name ) {
|
92 |
-
|
93 |
-
if ( empty( $option_value[$this->taxonomy] ) ) {
|
94 |
-
return $option_value;
|
95 |
-
}
|
96 |
-
|
97 |
-
$_enabled_keys = array('wpseo_title', 'wpseo_desc', 'wpseo_focuskw');
|
98 |
-
|
99 |
-
$language = WPGlobus::Config()->builder->get_language();
|
100 |
-
|
101 |
-
foreach( $option_value[$this->taxonomy] as $tag_ID=>$values ) {
|
102 |
-
foreach($values as $_key=>$_value) {
|
103 |
-
if ( in_array($_key, $_enabled_keys) ) {
|
104 |
-
if ( WPGlobus_Core::has_translations($_value) ) {
|
105 |
-
$option_value[$this->taxonomy][$tag_ID][$_key] = WPGlobus_Core::text_filter($_value, $language, WPGlobus::RETURN_EMPTY);
|
106 |
-
} else {
|
107 |
-
if ( $language != WPGlobus::Config()->default_language ) {
|
108 |
-
$option_value[$this->taxonomy][$tag_ID][$_key] = '';
|
109 |
-
}
|
110 |
-
}
|
111 |
-
}
|
112 |
-
}
|
113 |
-
}
|
114 |
-
|
115 |
-
return $option_value;
|
116 |
-
}
|
117 |
-
|
118 |
-
/**
|
119 |
-
* Fires before the Edit Term form for all taxonomies.
|
120 |
-
*
|
121 |
-
* @param object $tag Current taxonomy term object.
|
122 |
-
* @param string $taxonomy Current $taxonomy slug.
|
123 |
-
*/
|
124 |
-
public function on__pre_edit_form( $tag, $taxonomy ) {
|
125 |
-
|
126 |
-
$language = WPGlobus::Config()->builder->get_language();
|
127 |
-
$tag->description = WPGlobus_Core::text_filter( $tag->description, $language, WPGlobus::RETURN_EMPTY );
|
128 |
-
$tag->name = WPGlobus_Core::text_filter( $tag->name, $language, WPGlobus::RETURN_EMPTY );
|
129 |
-
|
130 |
-
}
|
131 |
-
|
132 |
-
/**
|
133 |
-
* Fires at the beginning of the Edit Term form. Add language field to taxonomy edit form.
|
134 |
-
*
|
135 |
-
* @param object $tag Current taxonomy term object.
|
136 |
-
* @param string $taxonomy Current $taxonomy slug.
|
137 |
-
*/
|
138 |
-
public function on__edit_form( $tag, $taxonomy ) {
|
139 |
-
echo '<input type="hidden" name="'.WPGlobus::get_language_meta_key().'" value="'.WPGlobus::Config()->builder->get_language().'">';
|
140 |
-
|
141 |
-
}
|
142 |
-
|
143 |
-
}
|
144 |
-
|
145 |
-
endif;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/includes/class-wpglobus-config-vendor.php
DELETED
@@ -1,437 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Class WPGlobus_Config_Vendor
|
4 |
-
*
|
5 |
-
* @package WPGlobus
|
6 |
-
* @author Alex Gor(alexgff)
|
7 |
-
*/
|
8 |
-
|
9 |
-
if ( ! class_exists( 'WPGlobus_Config_Vendor' ) ) :
|
10 |
-
|
11 |
-
/**
|
12 |
-
* Vendor configuration.
|
13 |
-
*/
|
14 |
-
class WPGlobus_Config_Vendor {
|
15 |
-
|
16 |
-
const PLUGIN_CONFIG_FILES = 'configs/*.json';
|
17 |
-
|
18 |
-
const PLUGIN_CONFIG_DIR = 'configs/';
|
19 |
-
|
20 |
-
/**
|
21 |
-
* Instance of this class.
|
22 |
-
*
|
23 |
-
* @var WPGlobus_Config_Vendor
|
24 |
-
*/
|
25 |
-
protected static $instance;
|
26 |
-
|
27 |
-
/**
|
28 |
-
* @var array
|
29 |
-
*/
|
30 |
-
protected static $config = array();
|
31 |
-
|
32 |
-
/**
|
33 |
-
* @var array|null
|
34 |
-
*/
|
35 |
-
protected static $post_meta_fields = null;
|
36 |
-
|
37 |
-
/**
|
38 |
-
* @var array|null
|
39 |
-
*/
|
40 |
-
protected static $post_ml_fields = null;
|
41 |
-
|
42 |
-
/**
|
43 |
-
* @var array|null
|
44 |
-
*/
|
45 |
-
protected static $wp_options = null;
|
46 |
-
|
47 |
-
/**
|
48 |
-
* Builder.
|
49 |
-
*
|
50 |
-
* @var WPGlobus_Config_Builder
|
51 |
-
*/
|
52 |
-
protected static $builder = null;
|
53 |
-
|
54 |
-
/**
|
55 |
-
* Array of registered vendors.
|
56 |
-
*
|
57 |
-
* @var string[]
|
58 |
-
*/
|
59 |
-
protected static $vendors = array();
|
60 |
-
|
61 |
-
/**
|
62 |
-
* Constructor.
|
63 |
-
*
|
64 |
-
* @param WPGlobus_Config_Builder $builder
|
65 |
-
*/
|
66 |
-
protected function __construct( $builder ) {
|
67 |
-
|
68 |
-
self::$builder = $builder;
|
69 |
-
|
70 |
-
self::get_config_files();
|
71 |
-
self::parse_config();
|
72 |
-
|
73 |
-
}
|
74 |
-
|
75 |
-
/**
|
76 |
-
* Get instance of this class.
|
77 |
-
*
|
78 |
-
* @param WPGlobus_Config_Builder $builder
|
79 |
-
*
|
80 |
-
* @return WPGlobus_Config_Vendor
|
81 |
-
*/
|
82 |
-
public static function get_instance( $builder ) {
|
83 |
-
if ( ! ( self::$instance instanceof WPGlobus_Config_Vendor ) ) {
|
84 |
-
self::$instance = new self( $builder );
|
85 |
-
}
|
86 |
-
|
87 |
-
return self::$instance;
|
88 |
-
}
|
89 |
-
|
90 |
-
/**
|
91 |
-
* Get meta fields.
|
92 |
-
*
|
93 |
-
* @return array|false
|
94 |
-
*/
|
95 |
-
public static function get_meta_fields() {
|
96 |
-
if ( is_null( self::$post_meta_fields ) ) {
|
97 |
-
return false;
|
98 |
-
}
|
99 |
-
|
100 |
-
return self::$post_meta_fields;
|
101 |
-
}
|
102 |
-
|
103 |
-
/**
|
104 |
-
* Get multilingual fields.
|
105 |
-
*
|
106 |
-
* @return array|false
|
107 |
-
*/
|
108 |
-
public static function get_ml_fields() {
|
109 |
-
if ( is_null( self::$post_ml_fields ) ) {
|
110 |
-
return false;
|
111 |
-
}
|
112 |
-
|
113 |
-
return self::$post_ml_fields;
|
114 |
-
}
|
115 |
-
|
116 |
-
/**
|
117 |
-
* Get wp_options.
|
118 |
-
*
|
119 |
-
* @return array|false
|
120 |
-
*/
|
121 |
-
public static function get_wp_options() {
|
122 |
-
if ( is_null( self::$wp_options ) ) {
|
123 |
-
return false;
|
124 |
-
}
|
125 |
-
|
126 |
-
return self::$wp_options;
|
127 |
-
}
|
128 |
-
|
129 |
-
/**
|
130 |
-
* Get config files.
|
131 |
-
*/
|
132 |
-
public static function get_config_files() {
|
133 |
-
|
134 |
-
$config_plugin_dir = WPGlobus::$PLUGIN_DIR_PATH . self::PLUGIN_CONFIG_DIR;
|
135 |
-
|
136 |
-
/**
|
137 |
-
* WPGlobus SEO.
|
138 |
-
*/
|
139 |
-
if ( function_exists( 'wpglobus_seo__init' ) ) {
|
140 |
-
self::$vendors[] = 'wpglobus-seo.json';
|
141 |
-
}
|
142 |
-
|
143 |
-
/**
|
144 |
-
* Yoast SEO.
|
145 |
-
* https://wordpress.org/plugins/wordpress-seo/
|
146 |
-
*/
|
147 |
-
if ( defined( 'WPSEO_VERSION' ) ) {
|
148 |
-
/**
|
149 |
-
* check 'WPSEO_PREMIUM_PLUGIN_FILE' for premium add-on.
|
150 |
-
*/
|
151 |
-
self::$vendors[] = 'yoast-seo.json';
|
152 |
-
}
|
153 |
-
|
154 |
-
/**
|
155 |
-
* All in One SEO Pack.
|
156 |
-
* https://wordpress.org/plugins/all-in-one-seo-pack/
|
157 |
-
*/
|
158 |
-
if ( defined( 'AIOSEOP_VERSION' ) ) {
|
159 |
-
/**
|
160 |
-
* Load config file for builder page only.
|
161 |
-
*/
|
162 |
-
if ( self::$builder->is_builder_page() ) {
|
163 |
-
self::$vendors[] = 'all-in-one-seo-pack.json';
|
164 |
-
}
|
165 |
-
}
|
166 |
-
|
167 |
-
/**
|
168 |
-
* Elementor.
|
169 |
-
* https://wordpress.org/plugins/elementor/
|
170 |
-
*/
|
171 |
-
if ( defined( 'ELEMENTOR_VERSION' ) ) {
|
172 |
-
self::$vendors[] = 'elementor.json';
|
173 |
-
}
|
174 |
-
|
175 |
-
/**
|
176 |
-
* Advanced Custom Fields.
|
177 |
-
* https://wordpress.org/plugins/advanced-custom-fields/
|
178 |
-
*/
|
179 |
-
if ( function_exists( 'acf' ) ) {
|
180 |
-
/**
|
181 |
-
* Check the existence of function to prevent getting fatal error in older version (checked with 4.4.12).
|
182 |
-
*/
|
183 |
-
if ( function_exists( 'acf_maybe_get_field' ) ) {
|
184 |
-
self::$vendors[] = 'acf.json';
|
185 |
-
}
|
186 |
-
}
|
187 |
-
|
188 |
-
/**
|
189 |
-
* Pods – Custom Content Types and Fields.
|
190 |
-
* https://wordpress.org/plugins/pods/
|
191 |
-
* @since 2.3.0
|
192 |
-
*/
|
193 |
-
if ( defined( 'PODS_VERSION' ) ) {
|
194 |
-
self::$vendors[] = 'pods.json';
|
195 |
-
}
|
196 |
-
|
197 |
-
/**
|
198 |
-
* Rank Math SEO.
|
199 |
-
* https://wordpress.org/plugins/seo-by-rank-math/
|
200 |
-
* @since 2.4.3
|
201 |
-
*/
|
202 |
-
if ( defined( 'RANK_MATH_VERSION' ) ) {
|
203 |
-
self::$vendors[] = 'rank-math-seo.json';
|
204 |
-
}
|
205 |
-
|
206 |
-
/**
|
207 |
-
* Page Builder by SiteOrigin.
|
208 |
-
* https://wordpress.org/plugins/siteorigin-panels/
|
209 |
-
* // if ( defined('SITEORIGIN_PANELS_VERSION') ) {
|
210 |
-
* // self::$vendors[] = 'siteorigin-panels.json';
|
211 |
-
* // }
|
212 |
-
*/
|
213 |
-
|
214 |
-
// TODO: builder ID can be a string or `false`. Need to refactor this condition or the `get_id` method.
|
215 |
-
// phpcs:ignore WordPress.PHP.StrictComparisons
|
216 |
-
if ( self::$builder->get_id() != '' && self::$builder->is_builder_page() ) {
|
217 |
-
|
218 |
-
$addons = WPGlobus_Builders::get_addons();
|
219 |
-
|
220 |
-
if ( ! empty( $addons ) ) {
|
221 |
-
foreach ( $addons as $id => $addon ) {
|
222 |
-
if ( 'add-on' === $addon['role'] ) {
|
223 |
-
if ( ! empty( $addon['const'] ) && defined( $addon['const'] ) ) {
|
224 |
-
self::$vendors[] = $addon['config_file'];
|
225 |
-
}
|
226 |
-
}
|
227 |
-
}
|
228 |
-
}
|
229 |
-
}
|
230 |
-
|
231 |
-
/**
|
232 |
-
* Now handle with config files.
|
233 |
-
*/
|
234 |
-
foreach ( self::$vendors as $file ) {
|
235 |
-
|
236 |
-
if ( is_readable( $config_plugin_dir . $file ) ) {
|
237 |
-
$file_name = pathinfo( $file, PATHINFO_FILENAME );
|
238 |
-
|
239 |
-
self::$config[ $file_name ] = json_decode( file_get_contents( $config_plugin_dir . $file ), true );
|
240 |
-
}
|
241 |
-
}
|
242 |
-
|
243 |
-
/**
|
244 |
-
* Filter vendor's config.
|
245 |
-
*
|
246 |
-
* @since 2.1.10
|
247 |
-
*
|
248 |
-
* @param array $config Config.
|
249 |
-
* @param object $builder An object WPGlobus_Config_Builder.
|
250 |
-
*
|
251 |
-
* @return array
|
252 |
-
*/
|
253 |
-
self::$config = apply_filters( 'wpglobus_config_vendors', self::$config, self::$builder );
|
254 |
-
|
255 |
-
}
|
256 |
-
|
257 |
-
/**
|
258 |
-
* Get multilingual fields for post.
|
259 |
-
*
|
260 |
-
* @param mixed $_meta Unused.
|
261 |
-
* @param array $_init
|
262 |
-
*
|
263 |
-
* @return array|false
|
264 |
-
*/
|
265 |
-
public static function get_post_ml_fields(
|
266 |
-
/** @noinspection PhpUnusedParameterInspection */
|
267 |
-
$_meta, $_init
|
268 |
-
) {
|
269 |
-
|
270 |
-
if ( ! self::$builder->is_builder_page() ) {
|
271 |
-
/**
|
272 |
-
* Prevent getting multilingual fields for no builder page.
|
273 |
-
*
|
274 |
-
* @since 2.1.11
|
275 |
-
*/
|
276 |
-
return false;
|
277 |
-
}
|
278 |
-
|
279 |
-
$_post_ml_fields = array();
|
280 |
-
|
281 |
-
if ( empty( $_init ) ) {
|
282 |
-
return $_post_ml_fields;
|
283 |
-
}
|
284 |
-
|
285 |
-
// phpcs:ignore
|
286 |
-
// $file = empty( $_init['file'] ) ? '' : WPGlobus::$PLUGIN_DIR_PATH . 'includes/' . $_init['file']; // TODO remove
|
287 |
-
|
288 |
-
/** @var WPGlobus_Acf_2 $class */
|
289 |
-
$class = empty( $_init['class'] ) ? '' : $_init['class'];
|
290 |
-
|
291 |
-
if ( ! empty( $class ) && class_exists( $class ) ) {
|
292 |
-
$_post_ml_fields = $class::get_post_multilingual_fields();
|
293 |
-
}
|
294 |
-
|
295 |
-
return $_post_ml_fields;
|
296 |
-
}
|
297 |
-
|
298 |
-
/**
|
299 |
-
* Get meta fields for post.
|
300 |
-
*
|
301 |
-
* @param mixed $_meta Unused.
|
302 |
-
* @param array $_init
|
303 |
-
*
|
304 |
-
* @return array|false
|
305 |
-
*/
|
306 |
-
public static function get_post_meta_fields(
|
307 |
-
/** @noinspection PhpUnusedParameterInspection */
|
308 |
-
$_meta, $_init
|
309 |
-
) {
|
310 |
-
|
311 |
-
if ( ! self::$builder->is_builder_page() ) {
|
312 |
-
/**
|
313 |
-
* Prevent getting meta fields for no builder page.
|
314 |
-
*
|
315 |
-
* @since 2.1.11
|
316 |
-
*/
|
317 |
-
return false;
|
318 |
-
}
|
319 |
-
|
320 |
-
$_post_meta_fields = array();
|
321 |
-
|
322 |
-
if ( empty( $_init ) ) {
|
323 |
-
return $_post_meta_fields;
|
324 |
-
}
|
325 |
-
|
326 |
-
$file = empty( $_init['file'] ) ? '' : WPGlobus::$PLUGIN_DIR_PATH . 'includes/' . $_init['file'];
|
327 |
-
|
328 |
-
/** @var WPGlobus_Acf_2 $class */
|
329 |
-
$class = empty( $_init['class'] ) ? '' : $_init['class'];
|
330 |
-
|
331 |
-
if ( ! empty( $file ) && file_exists( $file ) ) {
|
332 |
-
/** @noinspection PhpIncludeInspection */
|
333 |
-
include_once $file;
|
334 |
-
if ( ! empty( $class ) && class_exists( $class ) ) {
|
335 |
-
/**
|
336 |
-
* @since 2.1.3 Added post type parameter.
|
337 |
-
*/
|
338 |
-
$_post_meta_fields = $class::get_post_meta_fields( self::$builder->get( 'post_id' ), self::$builder->get( 'post_type' ) );
|
339 |
-
} else {
|
340 |
-
/**
|
341 |
-
* Mark as being incorrectly called.
|
342 |
-
*/
|
343 |
-
_doing_it_wrong( 'Class `' . $class . '` (in ' . __FILE__ . ')', 'Check out `configs\*.json` files.', '2.3.0' );
|
344 |
-
}
|
345 |
-
} else {
|
346 |
-
/**
|
347 |
-
* Mark as being incorrectly called.
|
348 |
-
*/
|
349 |
-
_doing_it_wrong( 'File `' . $file . '` (in ' . __FILE__ . ')', 'Check out `configs\*.json` files.', '2.3.0' );
|
350 |
-
}
|
351 |
-
|
352 |
-
return $_post_meta_fields;
|
353 |
-
}
|
354 |
-
|
355 |
-
/**
|
356 |
-
* Parse config files.
|
357 |
-
*/
|
358 |
-
public static function parse_config() {
|
359 |
-
|
360 |
-
/**
|
361 |
-
* Parse post meta fields.
|
362 |
-
*/
|
363 |
-
if ( is_null( self::$post_meta_fields ) ) {
|
364 |
-
|
365 |
-
self::$post_meta_fields = array();
|
366 |
-
self::$post_ml_fields = array();
|
367 |
-
|
368 |
-
foreach ( self::$config as $vendor => $data ) {
|
369 |
-
|
370 |
-
if ( isset( $data['post_meta_fields'] ) && is_array( $data['post_meta_fields'] ) ) :
|
371 |
-
|
372 |
-
foreach ( $data['post_meta_fields'] as $_meta => $_init ) {
|
373 |
-
|
374 |
-
if ( isset( $data['post_meta_fields'][ $_meta ] ) ) {
|
375 |
-
|
376 |
-
if ( '*' === $_meta ) {
|
377 |
-
$_arr = self::get_post_meta_fields( $_meta, $_init );
|
378 |
-
if ( ! empty( $_arr ) ) {
|
379 |
-
self::$post_meta_fields = array_merge( self::$post_meta_fields, $_arr );
|
380 |
-
}
|
381 |
-
} else {
|
382 |
-
self::$post_meta_fields[] = $_meta;
|
383 |
-
}
|
384 |
-
}
|
385 |
-
}
|
386 |
-
|
387 |
-
endif;
|
388 |
-
|
389 |
-
if ( isset( $data['post_ml_fields'] ) && is_array( $data['post_ml_fields'] ) ) :
|
390 |
-
foreach ( $data['post_ml_fields'] as $_meta => $_init ) {
|
391 |
-
if ( isset( $data['post_ml_fields'][ $_meta ] ) ) {
|
392 |
-
|
393 |
-
if ( '*' === $_meta ) {
|
394 |
-
$_arr = self::get_post_ml_fields( $_meta, $_init );
|
395 |
-
if ( ! empty( $_arr ) ) {
|
396 |
-
self::$post_ml_fields = array_merge( self::$post_ml_fields, $_arr );
|
397 |
-
}
|
398 |
-
} else {
|
399 |
-
self::$post_ml_fields[] = $_meta;
|
400 |
-
}
|
401 |
-
}
|
402 |
-
}
|
403 |
-
endif;
|
404 |
-
|
405 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|