/home/techb158/public_html/wp-content/plugins/elementor/assets/js
NameSizeModeActions
packages/-0755rm
0bc41c4656ca54cf2aca.bundle.min.js1690666editdlrm
1e658f1f0d7790a8e5d5.bundle.js18550666editdlrm
2bac2875cdf51a1f8140.bundle.min.js6640666editdlrm
3c838288a9b7ddd2aea4.bundle.min.js5780666editdlrm
3d410a099008411bb011.bundle.js633750666editdlrm
4c96eab5a48ee097dcb2.bundle.js17940666editdlrm
4da0f59f644453c5778f.bundle.js18160666editdlrm
4fba6dc68de19bf14ed6.bundle.min.js14800666editdlrm
5b575dffd21b0cec15a5.bundle.js10740666editdlrm
6a19e86dd8c1f9165dbe.bundle.js449010666editdlrm
6caa76d2f6eec6c4e665.bundle.js644110666editdlrm
06dbd869189450c5db6c.bundle.js59710666editdlrm
7dae73b622bebe8a5d94.bundle.js6430666editdlrm
7f03d97d8f12b0e62c20.bundle.min.js13600666editdlrm
8ad22e7ba800b096313c.bundle.min.js52210666editdlrm
8c20eb5e96967d3016b2.bundle.js51140666editdlrm
8c595e27c4832221c639.bundle.min.js13140666editdlrm
8e8b47ad5b4e4d038c80.bundle.js6360666editdlrm
8ecfd8495b7ec419862a.bundle.js6130666editdlrm
9aabe8efbe6be85f9b03.bundle.js18760666editdlrm
9b0cc3aa93cf287cd0a2.bundle.min.js6070666editdlrm
9dcd9e88237da6496816.bundle.min.js1140666editdlrm
9ffe53753902b9aca176.bundle.js50810666editdlrm
14bcbc91620c14a7112c.bundle.min.js46160666editdlrm
24dc90de724d8d2211e7.bundle.js18870666editdlrm
29c342e9c10e3f13f498.bundle.js57330666editdlrm
40d841f4b4ce7b1928f5.bundle.js10300666editdlrm
73f63f9507c306870586.bundle.min.js48490666editdlrm
77b60be7dc925a32f560.bundle.min.js6960666editdlrm
87abe5f6e10f360edaa2.bundle.min.js14000666editdlrm
220e9c3d1caa01726b1a.bundle.js54270666editdlrm
397f2d183c19202777d6.bundle.min.js239330666editdlrm
397f2d183c19202777d6.bundle.min.js.LICENSE.txt1880666editdlrm
425e7653a6beca0ca547.bundle.min.js68410666editdlrm
463aee37e06b67916b81.bundle.js19780666editdlrm
481dd84bfd172b56f2c9.bundle.js664050666editdlrm
620a14a68e8c9da1ef28.bundle.js73390666editdlrm
733e5d484a31a515a18e.bundle.min.js13770666editdlrm
831aea236b1ddda24f0c.bundle.js11210666editdlrm
0982f37bec0944fbcb10.bundle.js6130666editdlrm
1564d2bfa4591bf857f3.bundle.min.js1140666editdlrm
6936b079b4e7c28cd901.bundle.min.js7540666editdlrm
012778ff5828d0d1739f.bundle.js11480666editdlrm
16864f39793c3475fda1.bundle.min.js14810666editdlrm
20866d9d9e34bf3cb0a7.bundle.min.js6940666editdlrm
35423d812dc1d52fdb27.bundle.min.js1690666editdlrm
39845c9a7f0477e3323d.bundle.js18620666editdlrm
59845ab5a628d2b79f57.bundle.js11110666editdlrm
197583acd246fea0e25d.bundle.js112220666editdlrm
600430d4fe11ccbb856b.bundle.js18800666editdlrm
687979ffbcfd58352c29.bundle.min.js48620666editdlrm
845418a5488e9937fc99.bundle.min.js49300666editdlrm
8277989eebcfba278cb0.bundle.min.js368230666editdlrm
65955179c51c059f89dd.bundle.js19130666editdlrm
6273709440e0031100bc.bundle.min.js14760666editdlrm
a0f667abb781daab8e48.bundle.js53590666editdlrm
a9c3d5b02d26399aebfb.bundle.js11310666editdlrm
aae1dc723585a57c406a.bundle.min.js318940666editdlrm
accordion.8b0db5058afeb74622f5.bundle.min.js37390666editdlrm
accordion.b9a0ab19c7c872c405d7.bundle.js79270666editdlrm
admin-feedback.js45720666editdlrm
admin-feedback.min.js19130666editdlrm
admin-feedback.strings.js14680666editdlrm
admin-modules.js399440666editdlrm
admin-modules.min.js157360666editdlrm
admin-modules.min.js.LICENSE.txt1630666editdlrm
admin-modules.strings.js14680666editdlrm
admin-notifications.js781240666editdlrm
admin-notifications.min.js153280666editdlrm
admin-notifications.strings.js1000666editdlrm
admin-top-bar.js682980666editdlrm
admin-top-bar.min.js118030666editdlrm
admin-top-bar.strings.js3200666editdlrm
admin.js1970880666editdlrm
admin.min.js903360666editdlrm
admin.min.js.LICENSE.txt1630666editdlrm
admin.strings.js14680666editdlrm
aee13673e923469c3275.bundle.min.js1140666editdlrm
af05aac2eb23e7438265.bundle.js51820666editdlrm
ai-admin.js11528430666editdlrm
ai-admin.min.js4746270666editdlrm
ai-admin.min.js.LICENSE.txt1630666editdlrm
ai-admin.strings.js00666editdlrm
ai-form-code.88e99d22c799e35838c3.bundle.min.js93920666editdlrm
ai-form-code.f1fc9ab9d55b03c0a95d.bundle.js227410666editdlrm
ai-gutenberg.js12874170666editdlrm
ai-gutenberg.min.js5038220666editdlrm
ai-gutenberg.min.js.LICENSE.txt3240666editdlrm
ai-gutenberg.strings.js1910666editdlrm
ai-layout.js5447730666editdlrm
ai-layout.min.js2083880666editdlrm
ai-layout.min.js.LICENSE.txt1630666editdlrm
ai-layout.strings.js217820666editdlrm
ai-media-library.js12697850666editdlrm
ai-media-library.min.js4984600666editdlrm
ai-media-library.min.js.LICENSE.txt3240666editdlrm
ai-media-library.strings.js1380666editdlrm
ai-react-markdown.6230542471e5145001f3.bundle.min.js1287950666editdlrm
ai-react-markdown.6230542471e5145001f3.bundle.min.js.LICENSE.txt3610666editdlrm
ai-react-markdown.cf9412823b81e9b583aa.bundle.js8189930666editdlrm
ai-unify-product-images.js12661090666editdlrm
ai-unify-product-images.min.js4956640666editdlrm
ai-unify-product-images.min.js.LICENSE.txt3240666editdlrm
ai-unify-product-images.strings.js450666editdlrm
ai.js13286050666editdlrm
ai.min.js5224940666editdlrm
ai.min.js.LICENSE.txt3240666editdlrm
ai.strings.js217820666editdlrm
alert.b4336601ffdb6086d1b5.bundle.min.js6180666editdlrm
alert.fd509aa768e7b35a8e32.bundle.js14050666editdlrm
announcements-app.js1216440666editdlrm
announcements-app.min.js384160666editdlrm
announcements-app.min.js.LICENSE.txt1630666editdlrm
announcements-app.strings.js350666editdlrm
app-loader.js1012700666editdlrm
app-loader.min.js390690666editdlrm
app-loader.strings.js392500666editdlrm
app-packages.js3690860666editdlrm
app-packages.min.js1254980666editdlrm
app-packages.min.js.LICENSE.txt1630666editdlrm
app-packages.strings.js392500666editdlrm
app.js14571220666editdlrm
app.min.js5351940666editdlrm
app.min.js.LICENSE.txt1630666editdlrm
app.strings.js392500666editdlrm
assets-manager.js284420666editdlrm
assets-manager.min.js119800666editdlrm
assets-manager.min.js.LICENSE.txt1630666editdlrm
assets-manager.strings.js00666editdlrm
atomic-widgets-action-link-handler.js1091400666editdlrm
atomic-widgets-action-link-handler.min.js203880666editdlrm
atomic-widgets-editor.js1641600666editdlrm
atomic-widgets-editor.min.js687660666editdlrm
atomic-widgets-editor.min.js.LICENSE.txt1630666editdlrm
atomic-widgets-editor.strings.js3560666editdlrm
atomic-widgets-form-handler.js6888880666editdlrm
atomic-widgets-form-handler.min.js1174790666editdlrm
atomic-widgets-form-handler.min.js.LICENSE.txt3360666editdlrm
b1e33a4cb2c6d38a6baa.bundle.min.js15600666editdlrm
b4d39e5186d768f79598.bundle.js12240666editdlrm
b96d70044d0d67c2df19.bundle.min.js234150666editdlrm
beta-tester.js214180666editdlrm
beta-tester.min.js88220666editdlrm
beta-tester.strings.js690666editdlrm
bf2fa9f81b3d78f5858f.bundle.min.js6690666editdlrm
c13d205fa26f8af1ce7c.bundle.js1141020666editdlrm
c73a7d15e48e3305780a.bundle.min.js13070666editdlrm
cb2834c8227e56659152.bundle.min.js14260666editdlrm
cf6ec600fcf4e08ba6d3.bundle.js6130666editdlrm
checklist.js1631830666editdlrm
checklist.min.js509530666editdlrm
checklist.min.js.LICENSE.txt1630666editdlrm
checklist.strings.js5510666editdlrm
cloud-library-screenshot.js889920666editdlrm
cloud-library-screenshot.min.js329690666editdlrm
cloud-library-screenshot.min.js.LICENSE.txt1630666editdlrm
cloud-library-screenshot.strings.js00666editdlrm
common-modules.js1522710666editdlrm
common-modules.min.js583480666editdlrm
common-modules.strings.js4310666editdlrm
common.js12041560666editdlrm
common.min.js4908440666editdlrm
common.min.js.LICENSE.txt1630666editdlrm
common.strings.js4310666editdlrm
contact-buttons.086261d3e9c4d8037686.bundle.js148480666editdlrm
contact-buttons.e98d0220ce8c38404e7e.bundle.min.js86630666editdlrm
container-converter.js519710666editdlrm
container-converter.min.js182800666editdlrm
container-converter.strings.js2080666editdlrm
container-editor-handlers.49d65af3a7e15d2d67e8.bundle.min.js132320666editdlrm
container-editor-handlers.b45e73e31bdb50fb2cd1.bundle.js242160666editdlrm
counter.7310c276bc7865a3d438.bundle.js18930666editdlrm
counter.12335f45aaa79d244f24.bundle.min.js9060666editdlrm
d8a330693f9211e2166e.bundle.min.js45840666editdlrm
d39cd4cb3d5b09b11c14.bundle.min.js54590666editdlrm
d42de03ef4a0f50e39ca.bundle.min.js1760666editdlrm
d52aa05c75af56327744.bundle.js144790666editdlrm
d67ddd6f08b08392c42f.bundle.js150550666editdlrm
d69d9b30e379355f1464.bundle.min.js13740666editdlrm
d84c0b1bbfe78744e722.bundle.js19670666editdlrm
d224ff58c11185a05291.bundle.js19680666editdlrm
daedc6797eaad5c82711.bundle.min.js40600666editdlrm
de7511b88f9ec0968921.bundle.js11160666editdlrm
design-system-sync.js23470666editdlrm
design-system-sync.min.js10300666editdlrm
design-system-sync.strings.js00666editdlrm
dev-tools.js238160666editdlrm
dev-tools.min.js75770666editdlrm
dev-tools.strings.js00666editdlrm
df4ff09f2b412abf0cd3.bundle.js53480666editdlrm
dff865a4d52c12bcf996.bundle.min.js6620666editdlrm
e-conversion-banner.js215290666editdlrm
e-conversion-banner.min.js85690666editdlrm
e-conversion-banner.min.js.LICENSE.txt1630666editdlrm
e-conversion-banner.strings.js00666editdlrm
e-home-screen.js2632490666editdlrm
e-home-screen.min.js958050666editdlrm
e-home-screen.min.js.LICENSE.txt1630666editdlrm
e-home-screen.strings.js4450666editdlrm
e-react-promotions.js13483340666editdlrm
e-react-promotions.min.js9261260666editdlrm
e-react-promotions.min.js.LICENSE.txt690666editdlrm
e-react-promotions.strings.js1270666editdlrm
e-wc-product-editor.js1069900666editdlrm
e-wc-product-editor.min.js171410666editdlrm
e-wc-product-editor.min.js.LICENSE.txt1600666editdlrm
e-wc-product-editor.strings.js410666editdlrm
e1c444bff8c609679f7a.bundle.js20630666editdlrm
e1cb4d726bb59646c677.bundle.min.js53920666editdlrm
e9a764dcd37c06162942.bundle.js11460666editdlrm
e459c6c89c0c0899c850.bundle.js919990666editdlrm
ec1ee92b2a471389c7b9.bundle.min.js6590666editdlrm
editor-document.js715760666editdlrm
editor-document.min.js258410666editdlrm
editor-document.strings.js192070666editdlrm
editor-environment-v2.js6000666editdlrm
editor-environment-v2.min.js2060666editdlrm
editor-environment-v2.strings.js00666editdlrm
editor-interactions.js440370666editdlrm
editor-interactions.min.js190910666editdlrm
editor-interactions.strings.js00666editdlrm
editor-loader-v1.js3320666editdlrm
editor-loader-v1.min.js480666editdlrm
editor-loader-v1.strings.js00666editdlrm
editor-loader-v2.js8210666editdlrm
editor-loader-v2.min.js4000666editdlrm
editor-loader-v2.strings.js00666editdlrm
editor-modules.js1209590666editdlrm
editor-modules.min.js495440666editdlrm
editor-modules.min.js.LICENSE.txt1630666editdlrm
editor-modules.strings.js192070666editdlrm
editor-notifications.js886370666editdlrm
editor-notifications.min.js191520666editdlrm
editor-notifications.strings.js1000666editdlrm
editor-one-admin.js6350666editdlrm
editor-one-admin.min.js2750666editdlrm
editor-one-admin.strings.js00666editdlrm
editor-one-menu.js734870666editdlrm
editor-one-menu.min.js326470666editdlrm
editor-one-menu.strings.js00666editdlrm
editor-one-sidebar-navigation.js2708940666editdlrm
editor-one-sidebar-navigation.min.js680540666editdlrm
editor-one-sidebar-navigation.min.js.LICENSE.txt1600666editdlrm
editor-one-sidebar-navigation.strings.js00666editdlrm
editor-one-top-bar.js12637360666editdlrm
editor-one-top-bar.min.js10502600666editdlrm
editor-one-top-bar.min.js.LICENSE.txt4100666editdlrm
editor-one-top-bar.strings.js00666editdlrm
editor-v4-opt-in-alphachip.js607110666editdlrm
editor-v4-opt-in-alphachip.min.js87580666editdlrm
editor-v4-opt-in-alphachip.strings.js2060666editdlrm
editor-v4-opt-in.js1709530666editdlrm
editor-v4-opt-in.min.js530720666editdlrm
editor-v4-opt-in.min.js.LICENSE.txt3520666editdlrm
editor-v4-opt-in.strings.js24260666editdlrm
editor.js29621680666editdlrm
editor.min.js12730770666editdlrm
editor.min.js.LICENSE.txt3520666editdlrm
editor.strings.js18570666editdlrm
ef35c83e4628f0a5c328.bundle.js6360666editdlrm
ef2100ac3eda1a957819.bundle.min.js50500666editdlrm
element-manager-admin.js2471280666editdlrm
element-manager-admin.min.js618080666editdlrm
element-manager-admin.min.js.LICENSE.txt3240666editdlrm
element-manager-admin.strings.js20980666editdlrm
elementor-admin-bar.js186030666editdlrm
elementor-admin-bar.min.js73130666editdlrm
elementor-admin-bar.strings.js00666editdlrm
f3b4453f66034a6655a7.bundle.min.js46700666editdlrm
fd59b90c4d338489adcc.bundle.min.js13680666editdlrm
floating-bars.740d06d17cea5cebdb61.bundle.min.js78790666editdlrm
floating-bars.a6e6a043444b62f64f82.bundle.js149890666editdlrm
floating-elements-modal.js354560666editdlrm
floating-elements-modal.min.js151090666editdlrm
floating-elements-modal.strings.js430666editdlrm
frontend-modules.js1937580666editdlrm
frontend-modules.min.js506020666editdlrm
frontend.js974350666editdlrm
frontend.min.js320980666editdlrm
gutenberg.js76130666editdlrm
gutenberg.min.js40460666editdlrm
gutenberg.strings.js14680666editdlrm
image-carousel.8b25f3674c29b829a867.bundle.js9050666editdlrm
image-carousel.6167d20b95b33386757b.bundle.min.js4080666editdlrm
import-export-admin.js153040666editdlrm
import-export-admin.min.js65290666editdlrm
import-export-admin.strings.js125130666editdlrm
import-export-customization-admin.js795240666editdlrm
import-export-customization-admin.min.js387590666editdlrm
import-export-customization-admin.min.js.LICENSE.txt1630666editdlrm
import-export-customization-admin.strings.js134210666editdlrm
interactions-shared-utils.js273310666editdlrm
interactions-shared-utils.min.js107440666editdlrm
interactions-shared-utils.strings.js00666editdlrm
interactions.js407920666editdlrm
interactions.min.js170960666editdlrm
interactions.strings.js00666editdlrm
kit-elements-defaults-editor.js871390666editdlrm
kit-elements-defaults-editor.min.js327120666editdlrm
kit-elements-defaults-editor.min.js.LICENSE.txt1630666editdlrm
kit-elements-defaults-editor.strings.js6870666editdlrm
kit-library.38e1af453464e7ef7a6e.bundle.min.js1770260666editdlrm
kit-library.816d964bf4c39d277a8e.bundle.js3739760666editdlrm
lightbox.3f9b3a051b2336dd5372.bundle.min.js294960666editdlrm
lightbox.21984471d5ca0db94445.bundle.js510150666editdlrm
media-hints.js119420666editdlrm
media-hints.min.js61220666editdlrm
media-hints.strings.js00666editdlrm
nested-accordion.294d40984397351fd0f5.bundle.min.js97610666editdlrm
nested-accordion.4340b64226322f36bcc0.bundle.js193100666editdlrm
nested-accordion.js296240666editdlrm
nested-accordion.min.js108590666editdlrm
nested-accordion.min.js.LICENSE.txt1630666editdlrm
nested-accordion.strings.js00666editdlrm
nested-elements.js206600666editdlrm
nested-elements.min.js63960666editdlrm
nested-elements.strings.js1500666editdlrm
nested-tabs.7a338e6d7e060c473993.bundle.js211590666editdlrm
nested-tabs.a2401356d329f179475e.bundle.min.js113540666editdlrm
nested-tabs.js295840666editdlrm
nested-tabs.min.js108540666editdlrm
nested-tabs.min.js.LICENSE.txt1630666editdlrm
nested-tabs.strings.js00666editdlrm
nested-title-keyboard-handler.0c2b498e3e0695a1dc19.bundle.js79180666editdlrm
nested-title-keyboard-handler.2a67d3cc630e11815acc.bundle.min.js43210666editdlrm
new-template.js160100666editdlrm
new-template.min.js70440666editdlrm
new-template.strings.js340666editdlrm
notes.js241210666editdlrm
notes.min.js90700666editdlrm
notes.strings.js2760666editdlrm
pro-free-trial-popup.js593400666editdlrm
pro-free-trial-popup.min.js84940666editdlrm
pro-free-trial-popup.strings.js00666editdlrm
pro-install-events.js31220666editdlrm
pro-install-events.min.js17500666editdlrm
pro-install-events.strings.js00666editdlrm
progress.0ea083b809812c0e3aa1.bundle.min.js7890666editdlrm
progress.b1057ba870016558bce1.bundle.js19400666editdlrm
responsive-bar.js253860666editdlrm
responsive-bar.min.js115530666editdlrm
responsive-bar.strings.js760666editdlrm
section-editor-handlers.53ffedef32043348b99b.bundle.min.js17440666editdlrm
section-editor-handlers.d65899d232b5339510d7.bundle.js34600666editdlrm
section-frontend-handlers.c3950c6b190ca134bc8d.bundle.js10070666editdlrm
section-frontend-handlers.d85ab872da118940910d.bundle.min.js4490666editdlrm
shared-editor-handlers.3023894100138e442ab0.bundle.js20170666editdlrm
shared-editor-handlers.cacdcbed391abf4b48b0.bundle.min.js11740666editdlrm
shared-frontend-handlers.03caa53373b56d3bab67.bundle.min.js84810666editdlrm
shared-frontend-handlers.3b079824c37a5fe2bdaa.bundle.js162300666editdlrm
styleguide-app-initiator.js374190666editdlrm
styleguide-app-initiator.min.js133440666editdlrm
styleguide-app-initiator.min.js.LICENSE.txt1630666editdlrm
styleguide-app-initiator.strings.js3720666editdlrm
styleguide-app.04340244193733d78622.bundle.min.js262170666editdlrm
styleguide-app.36ecabae74d9b87fc5a8.bundle.js678360666editdlrm
styleguide.js989600666editdlrm
styleguide.min.js449310666editdlrm
styleguide.strings.js3720666editdlrm
tabs-handler.js1111710666editdlrm
tabs-handler.min.js214250666editdlrm
tabs-preview-handler.js1097840666editdlrm
tabs-preview-handler.min.js205920666editdlrm
tabs.18344b05d8d1ea0702bc.bundle.min.js37010666editdlrm
tabs.40498fa771d612162c53.bundle.js78540666editdlrm
text-editor.0c9960167105139d27c9.bundle.js30670666editdlrm
text-editor.45609661e409413f1cef.bundle.min.js13480666editdlrm
text-path.6db73cc0a10a70f128eb.bundle.js85600666editdlrm
text-path.a67c1f3a78d208bc7e1b.bundle.min.js33260666editdlrm
toggle.2a177a3ef4785d3dfbc5.bundle.min.js37690666editdlrm
toggle.b75e66d2aca6f6ee742e.bundle.js79580666editdlrm
vendors-redux.js2760930666editdlrm
vendors-redux.min.js691280666editdlrm
vendors-redux.min.js.LICENSE.txt10190666editdlrm
vendors-redux.strings.js4310666editdlrm
video.6e96510afa701d1f2ebc.bundle.js64790666editdlrm
video.86d44e46e43d0807e708.bundle.min.js32230666editdlrm
web-cli.js3360460666editdlrm
web-cli.min.js1192270666editdlrm
web-cli.min.js.LICENSE.txt1630666editdlrm
web-cli.strings.js00666editdlrm
webpack.runtime.js170650666editdlrm
webpack.runtime.min.js58190666editdlrm
wp-audio.0ba9114964acf4c37ca2.bundle.js7570666editdlrm
wp-audio.c9624cb6e5dc9de86abd.bundle.min.js3260666editdlrm
youtube-handler.js48020666editdlrm
youtube-handler.min.js18590666editdlrm
Edit: /home/techb158/public_html/wp-content/plugins/elementor/assets/js/editor.js (2962168B)
/******/ (() => { // webpackBootstrap /******/ var __webpack_modules__ = ({ /***/ "../app/assets/js/utils/utils.js": /*!***************************************!*\ !*** ../app/assets/js/utils/utils.js ***! \***************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports.stringToRemValues = exports.rgbToHex = exports.pxToRem = exports.isOneOf = exports.htmlDecodeTextContent = exports.arrayToObjectByKey = exports.arrayToClassName = void 0; var _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js")); var pxToRem = exports.pxToRem = function pxToRem(pixels) { if (!pixels) { return; } else if ('string' !== typeof pixels) { pixels = pixels.toString(); } return pixels.split(' ').map(function (value) { return "".concat(value * 0.0625, "rem"); }).join(' '); }; var arrayToClassName = exports.arrayToClassName = function arrayToClassName(array, action) { return array.filter(function (item) { return 'object' === (0, _typeof2.default)(item) ? Object.entries(item)[0][1] : item; }).map(function (item) { var value = 'object' === (0, _typeof2.default)(item) ? Object.entries(item)[0][0] : item; return action ? action(value) : value; }).join(' '); }; var stringToRemValues = exports.stringToRemValues = function stringToRemValues(string) { return string.split(' ').map(function (value) { return pxToRem(value); }).join(' '); }; var rgbToHex = exports.rgbToHex = function rgbToHex(r, g, b) { return '#' + [r, g, b].map(function (x) { var hex = x.toString(16); return 1 === hex.length ? '0' + hex : hex; }).join(''); }; var isOneOf = exports.isOneOf = function isOneOf(filetype, filetypeOptions) { return filetypeOptions.some(function (type) { return filetype.includes(type); }); }; var arrayToObjectByKey = exports.arrayToObjectByKey = function arrayToObjectByKey(array, key) { var finalObject = {}; array.forEach(function (item) { return finalObject[item[key]] = item; }); return finalObject; }; var htmlDecodeTextContent = exports.htmlDecodeTextContent = function htmlDecodeTextContent(input) { var doc = new DOMParser().parseFromString(input, 'text/html'); return doc.documentElement.textContent; }; /***/ }), /***/ "../assets/dev/js/editor/command-bases/command-container-base.js": /*!***********************************************************************!*\ !*** ../assets/dev/js/editor/command-bases/command-container-base.js ***! \***********************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js")); var _commandBase = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/command-base */ "../modules/web-cli/assets/js/modules/command-base.js")); function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } /** * @name $e.modules.editor.CommandContainerBase */ var CommandContainerBase = exports["default"] = /*#__PURE__*/function (_CommandBase) { function CommandContainerBase() { (0, _classCallCheck2.default)(this, CommandContainerBase); return _callSuper(this, CommandContainerBase, arguments); } (0, _inherits2.default)(CommandContainerBase, _CommandBase); return (0, _createClass2.default)(CommandContainerBase, [{ key: "requireContainer", value: /** * Function requireContainer(). * * Validate `arg.container` & `arg.containers`. * * @param {{}} args * * @throws {Error} */ function requireContainer() { var _this = this; var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.args; if (!args.container && !args.containers) { throw Error('container or containers are required.'); } if (args.container && args.containers) { throw Error('container and containers cannot go together please select one of them.'); } var containers = args.containers || [args.container]; containers.forEach(function (container) { _this.requireArgumentInstance('container', elementorModules.editor.Container, { container: container }); }); } }], [{ key: "getInstanceType", value: function getInstanceType() { return 'CommandContainerBase'; } }]); }(_commandBase.default); /***/ }), /***/ "../assets/dev/js/editor/component-base.js": /*!*************************************************!*\ !*** ../assets/dev/js/editor/component-base.js ***! \*************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js")); var _componentBase = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/component-base */ "../modules/web-cli/assets/js/modules/component-base.js")); var _editor = _interopRequireDefault(__webpack_require__(/*! elementor-panel/pages/editor */ "../assets/dev/js/editor/regions/panel/pages/editor.js")); var _baseData = _interopRequireDefault(__webpack_require__(/*! elementor-controls/base-data */ "../assets/dev/js/editor/controls/base-data.js")); function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } var ComponentBase = exports["default"] = /*#__PURE__*/function (_ApiComponentBase) { function ComponentBase() { (0, _classCallCheck2.default)(this, ComponentBase); return _callSuper(this, ComponentBase, arguments); } (0, _inherits2.default)(ComponentBase, _ApiComponentBase); return (0, _createClass2.default)(ComponentBase, [{ key: "activateControl", value: /** * Call the activate of the control's view * * @param {string} controlPath */ function activateControl(controlPath) { var _controlView$activate; if (!controlPath) { return; } var editor = elementor.getPanelView().getCurrentPageView(); var currentView = editor.content ? editor.content.currentView : editor; var controlView = this.getControlViewByPath(currentView, controlPath); (_controlView$activate = controlView.activate) === null || _controlView$activate === void 0 || _controlView$activate.call(controlView); } /** * Get the control's view by path * * @param {EditorView} currentView * @param {string} controlPath * * @return {ControlBaseDataView} */ }, { key: "getControlViewByPath", value: function getControlViewByPath(currentView, controlPath) { var controls = controlPath.split('/'); var controlView = currentView.getControlViewByName(controls[0]); controls.slice(1).forEach(function (control) { var _controlView$getChild, _controlView; controlView = (_controlView$getChild = (_controlView = controlView).getChildControlView) === null || _controlView$getChild === void 0 ? void 0 : _controlView$getChild.call(_controlView, control); }); return controlView; } }]); }(_componentBase.default); /***/ }), /***/ "../assets/dev/js/editor/components/browser-import/commands-internal/index.js": /*!************************************************************************************!*\ !*** ../assets/dev/js/editor/components/browser-import/commands-internal/index.js ***! \************************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "Validate", ({ enumerable: true, get: function get() { return _validate.Validate; } })); var _validate = __webpack_require__(/*! ./validate */ "../assets/dev/js/editor/components/browser-import/commands-internal/validate.js"); /***/ }), /***/ "../assets/dev/js/editor/components/browser-import/commands-internal/validate.js": /*!***************************************************************************************!*\ !*** ../assets/dev/js/editor/components/browser-import/commands-internal/validate.js ***! \***************************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = exports.Validate = void 0; var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js")); function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } var Validate = exports.Validate = /*#__PURE__*/function (_$e$modules$CommandBa) { function Validate() { (0, _classCallCheck2.default)(this, Validate); return _callSuper(this, Validate, arguments); } (0, _inherits2.default)(Validate, _$e$modules$CommandBa); return (0, _createClass2.default)(Validate, [{ key: "apply", value: /** * @inheritDoc */ function apply(args) { var input = args.input, _args$options = args.options, options = _args$options === void 0 ? {} : _args$options; return this.component.manager.createSession(input, elementor.getPreviewContainer(), options).then(function (session) { return session.validate(); }); } }]); }($e.modules.CommandBase); var _default = exports["default"] = Validate; /***/ }), /***/ "../assets/dev/js/editor/components/browser-import/commands/import.js": /*!****************************************************************************!*\ !*** ../assets/dev/js/editor/components/browser-import/commands/import.js ***! \****************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = exports.Import = void 0; var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js")); var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js")); var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js")); function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } var Import = exports.Import = /*#__PURE__*/function (_$e$modules$CommandBa) { function Import() { (0, _classCallCheck2.default)(this, Import); return _callSuper(this, Import, arguments); } (0, _inherits2.default)(Import, _$e$modules$CommandBa); return (0, _createClass2.default)(Import, [{ key: "validateArgs", value: /** * @inheritDoc */ function validateArgs() { this.requireArgumentInstance('target', elementorModules.editor.Container); } /** * @inheritDoc */ }, { key: "apply", value: function apply(args) { var _this = this; var _args$targets = args.targets, targets = _args$targets === void 0 ? [args.target] : _args$targets, input = args.input, _args$options = args.options, options = _args$options === void 0 ? {} : _args$options, result = []; targets.forEach(function (target) { result.push(_this.component.manager.createSession(input, target, options).then(/*#__PURE__*/function () { var _ref = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(session) { return _regenerator.default.wrap(function (_context) { while (1) switch (_context.prev = _context.next) { case 0: _context.next = 1; return session.validate(); case 1: if (!_context.sent) { _context.next = 2; break; } session.apply(); case 2: case "end": return _context.stop(); } }, _callee); })); return function (_x) { return _ref.apply(this, arguments); }; }())); }); return Promise.all(result); } }]); }($e.modules.CommandBase); var _default = exports["default"] = Import; /***/ }), /***/ "../assets/dev/js/editor/components/browser-import/commands/index.js": /*!***************************************************************************!*\ !*** ../assets/dev/js/editor/components/browser-import/commands/index.js ***! \***************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "Import", ({ enumerable: true, get: function get() { return _import.Import; } })); var _import = __webpack_require__(/*! ./import */ "../assets/dev/js/editor/components/browser-import/commands/import.js"); /***/ }), /***/ "../assets/dev/js/editor/components/browser-import/component.js": /*!**********************************************************************!*\ !*** ../assets/dev/js/editor/components/browser-import/component.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js")); var commands = _interopRequireWildcard(__webpack_require__(/*! ./commands */ "../assets/dev/js/editor/components/browser-import/commands/index.js")); var commandsInternal = _interopRequireWildcard(__webpack_require__(/*! ./commands-internal */ "../assets/dev/js/editor/components/browser-import/commands-internal/index.js")); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); } function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } var Component = exports["default"] = /*#__PURE__*/function (_$e$modules$Component) { function Component() { (0, _classCallCheck2.default)(this, Component); return _callSuper(this, Component, arguments); } (0, _inherits2.default)(Component, _$e$modules$Component); return (0, _createClass2.default)(Component, [{ key: "getNamespace", value: function getNamespace() { return 'editor/browser-import'; } }, { key: "defaultCommands", value: function defaultCommands() { return this.importCommands(commands); } }, { key: "defaultCommandsInternal", value: function defaultCommandsInternal() { return this.importCommands(commandsInternal); } }]); }($e.modules.ComponentBase); /***/ }), /***/ "../assets/dev/js/editor/components/browser-import/container-factory.js": /*!******************************************************************************!*\ !*** ../assets/dev/js/editor/components/browser-import/container-factory.js ***! \******************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _element = _interopRequireDefault(__webpack_require__(/*! elementor-elements/models/element */ "../assets/dev/js/editor/elements/models/element.js")); function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; } function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } /** * @typedef {import('../../container/container')} Container */ var ContainerFactory = exports["default"] = /*#__PURE__*/function () { function ContainerFactory() { (0, _classCallCheck2.default)(this, ContainerFactory); } return (0, _createClass2.default)(ContainerFactory, null, [{ key: "createElementContainer", value: /** * Create an element container. * * @param {*} element * @return {Container} element container */ function createElementContainer(element) { var model = new _element.default(this.regenerateIds([Object.assign({ elType: (element === null || element === void 0 ? void 0 : element.elType) || 'widget' }, element)])[0]); return new elementorModules.editor.Container({ id: model.get('id'), type: model.get('elType'), settings: model.get('settings'), model: model, parent: false }); } }, { key: "regenerateIds", value: function regenerateIds(elements) { var _iterator = _createForOfIteratorHelper(elements), _step; try { for (_iterator.s(); !(_step = _iterator.n()).done;) { var element = _step.value; element.id = elementorCommon.helpers.getUniqueId().toString(); if (element.elements) { this.regenerateIds(element.elements); } } } catch (err) { _iterator.e(err); } finally { _iterator.f(); } return elements; } }]); }(); /***/ }), /***/ "../assets/dev/js/editor/components/browser-import/default-config.js": /*!***************************************************************************!*\ !*** ../assets/dev/js/editor/components/browser-import/default-config.js ***! \***************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); var _typeof3 = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; var _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js")); var readers = _interopRequireWildcard(__webpack_require__(/*! ./files/readers */ "../assets/dev/js/editor/components/browser-import/files/readers/index.js")); var parsers = _interopRequireWildcard(__webpack_require__(/*! ./files/parsers */ "../assets/dev/js/editor/components/browser-import/files/parsers/index.js")); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof3(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); } /** * Recursively convert objects to arrays of values. * * @param {*} object * @return {[]} values */ var recursiveValues = function recursiveValues(object) { return Object.values(object).map(function (value) { return 'object' === (0, _typeof2.default)(value) ? Object.values(value) : value; }); }; var _default = exports["default"] = { readers: recursiveValues(readers), parsers: recursiveValues(parsers).flat() }; /***/ }), /***/ "../assets/dev/js/editor/components/browser-import/files/file-parser-base.js": /*!***********************************************************************************!*\ !*** ../assets/dev/js/editor/components/browser-import/files/file-parser-base.js ***! \***********************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js")); var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js")); var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js")); /** * @typedef {import('../../../container/container')} Container */ /** * @typedef {import('./file-reader-base')} FileReaderBase */ /** * @abstract */ var FileParserBase = exports["default"] = /*#__PURE__*/function () { /** * FileParseBase constructor. * * @param {FileReaderBase} reader */ function FileParserBase(reader) { (0, _classCallCheck2.default)(this, FileParserBase); /** * The file-reader instance. * * @type {FileReaderBase} */ (0, _defineProperty2.default)(this, "reader", void 0); /** * Tasks to complete, even after parsing completed. * * @type {[]} */ (0, _defineProperty2.default)(this, "tasks", []); this.reader = reader; } /** * Get the file-parser name. * * @abstract * @return {string} name */ return (0, _createClass2.default)(FileParserBase, [{ key: "parse", value: ( /** * Parse the the input as needed by this parser, and return Container objects to be processed. * * @abstract * @return {Container[]} containers */ function () { var _parse = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() { return _regenerator.default.wrap(function (_context) { while (1) switch (_context.prev = _context.next) { case 0: case "end": return _context.stop(); } }, _callee); })); function parse() { return _parse.apply(this, arguments); } return parse; }() /** * Here parsers can validate that an input from a reader can be handled by the parser. This validation has to be * very accurate and specific so if the parser can't handle the file for sure, the next parsers will have the * opportunity to do so. * * @param {*} reader * * @abstract * @return {boolean} is valid */ ) }], [{ key: "getName", value: function getName() { return ''; } /** * Get all readers the parser can handle with. * * @abstract * @return {string[]} readers */ }, { key: "getReaders", value: function getReaders() { return []; } }, { key: "validate", value: (function () { var _validate = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2(reader) { return _regenerator.default.wrap(function (_context2) { while (1) switch (_context2.prev = _context2.next) { case 0: return _context2.abrupt("return", false); case 1: case "end": return _context2.stop(); } }, _callee2); })); function validate(_x) { return _validate.apply(this, arguments); } return validate; }()) }]); }(); /***/ }), /***/ "../assets/dev/js/editor/components/browser-import/files/file-reader-base.js": /*!***********************************************************************************!*\ !*** ../assets/dev/js/editor/components/browser-import/files/file-reader-base.js ***! \***********************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js")); var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js")); var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js")); /** * @abstract */ var FileReaderBase = exports["default"] = /*#__PURE__*/function () { /** * FileReaderBase constructor. * * @param {File} file */ function FileReaderBase(file) { (0, _classCallCheck2.default)(this, FileReaderBase); /** * The File instance. * * @type {File} */ (0, _defineProperty2.default)(this, "file", void 0); this.file = file; } /** * Get the file-reader name. * * @abstract * @return {string} name */ return (0, _createClass2.default)(FileReaderBase, [{ key: "getFile", value: /** * Get the file-reader File object. * * @return {*} file */ function getFile() { return this.file; } /** * Get the file-reader File object content as string. * * @return {Promise} handler */ }, { key: "getContent", value: (function () { var _getContent = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() { var fileReader, handler; return _regenerator.default.wrap(function (_context) { while (1) switch (_context.prev = _context.next) { case 0: fileReader = new FileReader(), handler = new Promise(function (resolve) { fileReader.onloadend = function () { return resolve(fileReader.result); }; }); fileReader.readAsText(this.getFile()); return _context.abrupt("return", handler); case 1: case "end": return _context.stop(); } }, _callee, this); })); function getContent() { return _getContent.apply(this, arguments); } return getContent; }() /** * Get the file-reader File object data url string. * * @return {Promise} data URI */ ) }, { key: "getDataUrl", value: (function () { var _getDataUrl = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2() { var fileReader, handler; return _regenerator.default.wrap(function (_context2) { while (1) switch (_context2.prev = _context2.next) { case 0: fileReader = new FileReader(), handler = new Promise(function (resolve) { fileReader.onloadend = function () { return resolve(fileReader.result); }; }); fileReader.readAsDataURL(this.getFile()); return _context2.abrupt("return", handler); case 1: case "end": return _context2.stop(); } }, _callee2, this); })); function getDataUrl() { return _getDataUrl.apply(this, arguments); } return getDataUrl; }()) }], [{ key: "getName", value: function getName() { return ''; } /** * Check if the reader is currently active. * * @abstract * @return {boolean} */ }, { key: "isActive", value: function isActive() { return true; } /** * Each file-reader can register the mime-types it supports in this method, so later a File object can be matched * to it accordingly. * * @abstract * @return {string[]} mime types */ }, { key: "mimeTypes", get: function get() { return []; } /** * If the file-reader supports an input that's received without an explicit mime-type (such as strings or JavasScript * objects), here it can decide whether it can handle it and eventually return a suitable mime-type. * * @abstract * @param {*} input * @return {string|boolean} mime type */ }, { key: "resolve", value: (function () { var _resolve = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee3(input) { return _regenerator.default.wrap(function (_context3) { while (1) switch (_context3.prev = _context3.next) { case 0: return _context3.abrupt("return", false); case 1: case "end": return _context3.stop(); } }, _callee3); })); function resolve(_x) { return _resolve.apply(this, arguments); } return resolve; }() /** * Validate that a file can be handled by the file-reader, according to its mime-type. * * @param {File} file */ ) }, { key: "validate", value: (function () { var _validate = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee4(file) { return _regenerator.default.wrap(function (_context4) { while (1) switch (_context4.prev = _context4.next) { case 0: if (!this.validator) { this.validator = new RegExp(this.mimeTypes.join('|'), 'i'); } return _context4.abrupt("return", this.validator.test(file.type)); case 1: case "end": return _context4.stop(); } }, _callee4, this); })); function validate(_x2) { return _validate.apply(this, arguments); } return validate; }()) }]); }(); /***/ }), /***/ "../assets/dev/js/editor/components/browser-import/files/parsers/base/index.js": /*!*************************************************************************************!*\ !*** ../assets/dev/js/editor/components/browser-import/files/parsers/base/index.js ***! \*************************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "MediaParser", ({ enumerable: true, get: function get() { return _mediaParser.MediaParser; } })); var _mediaParser = __webpack_require__(/*! ./media-parser */ "../assets/dev/js/editor/components/browser-import/files/parsers/base/media-parser.js"); /***/ }), /***/ "../assets/dev/js/editor/components/browser-import/files/parsers/base/media-parser.js": /*!********************************************************************************************!*\ !*** ../assets/dev/js/editor/components/browser-import/files/parsers/base/media-parser.js ***! \********************************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports.MediaParser = void 0; var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js")); var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js")); var _fileParserBase = _interopRequireDefault(__webpack_require__(/*! elementor-editor/components/browser-import/files/file-parser-base */ "../assets/dev/js/editor/components/browser-import/files/file-parser-base.js")); function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } /** * @abstract */ var MediaParser = exports.MediaParser = /*#__PURE__*/function (_FileParserBase) { function MediaParser() { (0, _classCallCheck2.default)(this, MediaParser); return _callSuper(this, MediaParser, arguments); } (0, _inherits2.default)(MediaParser, _FileParserBase); return (0, _createClass2.default)(MediaParser, [{ key: "upload", value: /** * Upload a media file to the wordpress media library using the `wp/media` command. * * @param {*} file * @param {*} options * @return {{}} result */ function upload(file) { var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; return $e.data.run('create', 'wp/media', { file: file, options: _objectSpread({ progress: true }, options) }).catch(function (result) { elementor.notifications.showToast({ message: result.message }); return Promise.reject(result); }); } }]); }(_fileParserBase.default); /***/ }), /***/ "../assets/dev/js/editor/components/browser-import/files/parsers/image/index.js": /*!**************************************************************************************!*\ !*** ../assets/dev/js/editor/components/browser-import/files/parsers/image/index.js ***! \**************************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "Widget", ({ enumerable: true, get: function get() { return _widget.Widget; } })); var _widget = __webpack_require__(/*! ./widget */ "../assets/dev/js/editor/components/browser-import/files/parsers/image/widget.js"); /***/ }), /***/ "../assets/dev/js/editor/components/browser-import/files/parsers/image/widget.js": /*!***************************************************************************************!*\ !*** ../assets/dev/js/editor/components/browser-import/files/parsers/image/widget.js ***! \***************************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports.Widget = void 0; var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js")); var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js")); var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js")); var _containerFactory = _interopRequireDefault(__webpack_require__(/*! ../../../container-factory */ "../assets/dev/js/editor/components/browser-import/container-factory.js")); var _base = __webpack_require__(/*! ../base */ "../assets/dev/js/editor/components/browser-import/files/parsers/base/index.js"); function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } var Widget = exports.Widget = /*#__PURE__*/function (_MediaParser) { function Widget() { (0, _classCallCheck2.default)(this, Widget); return _callSuper(this, Widget, arguments); } (0, _inherits2.default)(Widget, _MediaParser); return (0, _createClass2.default)(Widget, [{ key: "parse", value: ( /** * @inheritDoc */ function () { var _parse = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() { var file, container, _t, _t2, _t3, _t4, _t5; return _regenerator.default.wrap(function (_context) { while (1) switch (_context.prev = _context.next) { case 0: file = this.reader.getFile(); _t = _containerFactory.default; _context.next = 1; return this.reader.getDataUrl(); case 1: _t2 = _context.sent; _t3 = file.name.split('.')[0]; _t4 = { url: _t2, alt: _t3, source: 'library' }; _t5 = { image: _t4 }; container = _t.createElementContainer.call(_t, { widgetType: 'image', settings: _t5 }); this.upload(file).then(function (_ref) { var data = _ref.data; $e.internal('document/elements/set-settings', { // The reason we use the container id and not the container instance itself is that the container // created above is just a placeholder, which later recreated using the same id. container: elementor.getContainer(container.id), settings: { image: { url: data.source_url, id: data.id } } }); }).catch(function () { elementor.documents.getCurrent().history.setActive(false); $e.run('document/elements/reset-settings', { container: elementor.getContainer(container.id), options: { external: true } }); elementor.documents.getCurrent().history.setActive(true); }); return _context.abrupt("return", container); case 2: case "end": return _context.stop(); } }, _callee, this); })); function parse() { return _parse.apply(this, arguments); } return parse; }() /** * @inheritDoc */ ) }], [{ key: "getName", value: /** * @inheritDoc */ function getName() { return 'widget'; } /** * @inheritDoc */ }, { key: "getReaders", value: function getReaders() { return ['image']; } }, { key: "validate", value: (function () { var _validate = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2() { return _regenerator.default.wrap(function (_context2) { while (1) switch (_context2.prev = _context2.next) { case 0: return _context2.abrupt("return", true); case 1: case "end": return _context2.stop(); } }, _callee2); })); function validate() { return _validate.apply(this, arguments); } return validate; }()) }]); }(_base.MediaParser); /***/ }), /***/ "../assets/dev/js/editor/components/browser-import/files/parsers/index.js": /*!********************************************************************************!*\ !*** ../assets/dev/js/editor/components/browser-import/files/parsers/index.js ***! \********************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports.video = exports.json = exports.image = exports.base = void 0; var _base = _interopRequireWildcard(__webpack_require__(/*! ./base */ "../assets/dev/js/editor/components/browser-import/files/parsers/base/index.js")); exports.base = _base; var _image = _interopRequireWildcard(__webpack_require__(/*! ./image */ "../assets/dev/js/editor/components/browser-import/files/parsers/image/index.js")); exports.image = _image; var _json = _interopRequireWildcard(__webpack_require__(/*! ./json */ "../assets/dev/js/editor/components/browser-import/files/parsers/json/index.js")); exports.json = _json; var _video = _interopRequireWildcard(__webpack_require__(/*! ./video */ "../assets/dev/js/editor/components/browser-import/files/parsers/video/index.js")); exports.video = _video; function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); } /***/ }), /***/ "../assets/dev/js/editor/components/browser-import/files/parsers/json/elements.js": /*!****************************************************************************************!*\ !*** ../assets/dev/js/editor/components/browser-import/files/parsers/json/elements.js ***! \****************************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports.Elements = void 0; var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js")); var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js")); var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js")); var _fileParserBase = _interopRequireDefault(__webpack_require__(/*! ../../file-parser-base */ "../assets/dev/js/editor/components/browser-import/files/file-parser-base.js")); var _containerFactory = _interopRequireDefault(__webpack_require__(/*! ../../../container-factory */ "../assets/dev/js/editor/components/browser-import/container-factory.js")); var _filesUploadHandler = _interopRequireDefault(__webpack_require__(/*! ../../../../../utils/files-upload-handler */ "../assets/dev/js/editor/utils/files-upload-handler.js")); function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } var Elements = exports.Elements = /*#__PURE__*/function (_FileParserBase) { function Elements() { (0, _classCallCheck2.default)(this, Elements); return _callSuper(this, Elements, arguments); } (0, _inherits2.default)(Elements, _FileParserBase); return (0, _createClass2.default)(Elements, [{ key: "parse", value: ( /** * @inheritDoc */ function () { var _parse = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() { return _regenerator.default.wrap(function (_context) { while (1) switch (_context.prev = _context.next) { case 0: _context.next = 1; return this.reader.getData(); case 1: return _context.abrupt("return", _context.sent.content.map(function (element) { return _containerFactory.default.createElementContainer(element); })); case 2: case "end": return _context.stop(); } }, _callee, this); })); function parse() { return _parse.apply(this, arguments); } return parse; }() /** * @inheritDoc */ ) }], [{ key: "getName", value: /** * @inheritDoc */ function getName() { return 'elements'; } /** * @inheritDoc */ }, { key: "getReaders", value: function getReaders() { return ['json']; } }, { key: "validate", value: (function () { var _validate = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee3(reader) { var _this = this; return _regenerator.default.wrap(function (_context3) { while (1) switch (_context3.prev = _context3.next) { case 0: if (elementorCommon.config.filesUpload.unfilteredFiles) { _context3.next = 1; break; } return _context3.abrupt("return", new Promise(function (resolve) { var enableUnfilteredDialog = _filesUploadHandler.default.getUnfilteredFilesNotEnabledImportTemplateDialog(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2() { var result; return _regenerator.default.wrap(function (_context2) { while (1) switch (_context2.prev = _context2.next) { case 0: _context2.next = 1; return _this.validateData(reader); case 1: result = _context2.sent; resolve(result); case 2: case "end": return _context2.stop(); } }, _callee2); }))); enableUnfilteredDialog.show(); })); case 1: _context3.next = 2; return this.validateData(reader); case 2: return _context3.abrupt("return", _context3.sent); case 3: case "end": return _context3.stop(); } }, _callee3, this); })); function validate(_x) { return _validate.apply(this, arguments); } return validate; }()) }, { key: "validateData", value: function () { var _validateData = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee4(reader) { var data; return _regenerator.default.wrap(function (_context4) { while (1) switch (_context4.prev = _context4.next) { case 0: _context4.next = 1; return reader.getData(); case 1: data = _context4.sent; return _context4.abrupt("return", data.version && data.type && Array.isArray(data.content)); case 2: case "end": return _context4.stop(); } }, _callee4); })); function validateData(_x2) { return _validateData.apply(this, arguments); } return validateData; }() }]); }(_fileParserBase.default); /***/ }), /***/ "../assets/dev/js/editor/components/browser-import/files/parsers/json/index.js": /*!*************************************************************************************!*\ !*** ../assets/dev/js/editor/components/browser-import/files/parsers/json/index.js ***! \*************************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "Elements", ({ enumerable: true, get: function get() { return _elements.Elements; } })); var _elements = __webpack_require__(/*! ./elements */ "../assets/dev/js/editor/components/browser-import/files/parsers/json/elements.js"); /***/ }), /***/ "../assets/dev/js/editor/components/browser-import/files/parsers/video/index.js": /*!**************************************************************************************!*\ !*** ../assets/dev/js/editor/components/browser-import/files/parsers/video/index.js ***! \**************************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "Widget", ({ enumerable: true, get: function get() { return _widget.Widget; } })); var _widget = __webpack_require__(/*! ./widget */ "../assets/dev/js/editor/components/browser-import/files/parsers/video/widget.js"); /***/ }), /***/ "../assets/dev/js/editor/components/browser-import/files/parsers/video/widget.js": /*!***************************************************************************************!*\ !*** ../assets/dev/js/editor/components/browser-import/files/parsers/video/widget.js ***! \***************************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports.Widget = void 0; var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js")); var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js")); var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js")); var _containerFactory = _interopRequireDefault(__webpack_require__(/*! ../../../container-factory */ "../assets/dev/js/editor/components/browser-import/container-factory.js")); var _base = __webpack_require__(/*! ../base */ "../assets/dev/js/editor/components/browser-import/files/parsers/base/index.js"); function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } var Widget = exports.Widget = /*#__PURE__*/function (_MediaParser) { function Widget() { (0, _classCallCheck2.default)(this, Widget); return _callSuper(this, Widget, arguments); } (0, _inherits2.default)(Widget, _MediaParser); return (0, _createClass2.default)(Widget, [{ key: "parse", value: ( /** * @inheritDoc */ function () { var _parse = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() { var file, container, _t, _t2, _t3, _t4, _t5; return _regenerator.default.wrap(function (_context) { while (1) switch (_context.prev = _context.next) { case 0: file = this.reader.getFile(); _t = _containerFactory.default; _context.next = 1; return this.reader.getDataUrl(); case 1: _t2 = _context.sent; _t3 = file.name.split('.')[0]; _t4 = { url: _t2, alt: _t3, source: 'library' }; _t5 = { video_type: 'hosted', hosted_url: _t4 }; container = _t.createElementContainer.call(_t, { widgetType: 'video', settings: _t5 }); this.upload(file).then(function (_ref) { var data = _ref.data; $e.internal('document/elements/set-settings', { // The reason we use the container id and not the container instance itself is that the container // created above is just a placeholder, which later recreated using the same id. container: elementor.getContainer(container.id), settings: { hosted_url: { url: data.source_url, id: data.id } } }); }).catch(function () { elementor.documents.getCurrent().history.setActive(false); $e.run('document/elements/reset-settings', { container: elementor.getContainer(container.id), options: { external: true } }); elementor.documents.getCurrent().history.setActive(true); }); return _context.abrupt("return", container); case 2: case "end": return _context.stop(); } }, _callee, this); })); function parse() { return _parse.apply(this, arguments); } return parse; }() /** * @inheritDoc */ ) }], [{ key: "getName", value: /** * @inheritDoc */ function getName() { return 'widget'; } /** * @inheritDoc */ }, { key: "getReaders", value: function getReaders() { return ['video']; } }, { key: "validate", value: (function () { var _validate = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2() { return _regenerator.default.wrap(function (_context2) { while (1) switch (_context2.prev = _context2.next) { case 0: return _context2.abrupt("return", true); case 1: case "end": return _context2.stop(); } }, _callee2); })); function validate() { return _validate.apply(this, arguments); } return validate; }()) }]); }(_base.MediaParser); /***/ }), /***/ "../assets/dev/js/editor/components/browser-import/files/readers/image.js": /*!********************************************************************************!*\ !*** ../assets/dev/js/editor/components/browser-import/files/readers/image.js ***! \********************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports.Image = void 0; var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js")); var _fileReaderBase = _interopRequireDefault(__webpack_require__(/*! ../file-reader-base */ "../assets/dev/js/editor/components/browser-import/files/file-reader-base.js")); function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } var Image = exports.Image = /*#__PURE__*/function (_FileReaderBase) { function Image() { (0, _classCallCheck2.default)(this, Image); return _callSuper(this, Image, arguments); } (0, _inherits2.default)(Image, _FileReaderBase); return (0, _createClass2.default)(Image, null, [{ key: "getName", value: /** * @inheritDoc */ function getName() { return 'image'; } /** * @inheritDoc */ }, { key: "mimeTypes", get: function get() { return ['image\\/\\w+']; } }]); }(_fileReaderBase.default); /***/ }), /***/ "../assets/dev/js/editor/components/browser-import/files/readers/index.js": /*!********************************************************************************!*\ !*** ../assets/dev/js/editor/components/browser-import/files/readers/index.js ***! \********************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "Image", ({ enumerable: true, get: function get() { return _image.Image; } })); Object.defineProperty(exports, "Json", ({ enumerable: true, get: function get() { return _json.Json; } })); Object.defineProperty(exports, "Video", ({ enumerable: true, get: function get() { return _video.Video; } })); var _image = __webpack_require__(/*! ./image */ "../assets/dev/js/editor/components/browser-import/files/readers/image.js"); var _video = __webpack_require__(/*! ./video */ "../assets/dev/js/editor/components/browser-import/files/readers/video.js"); var _json = __webpack_require__(/*! ./json */ "../assets/dev/js/editor/components/browser-import/files/readers/json.js"); /***/ }), /***/ "../assets/dev/js/editor/components/browser-import/files/readers/json.js": /*!*******************************************************************************!*\ !*** ../assets/dev/js/editor/components/browser-import/files/readers/json.js ***! \*******************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports.Json = void 0; var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js")); var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js")); var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js")); var _fileReaderBase = _interopRequireDefault(__webpack_require__(/*! ../file-reader-base */ "../assets/dev/js/editor/components/browser-import/files/file-reader-base.js")); function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } var Json = exports.Json = /*#__PURE__*/function (_FileReaderBase) { function Json() { (0, _classCallCheck2.default)(this, Json); return _callSuper(this, Json, arguments); } (0, _inherits2.default)(Json, _FileReaderBase); return (0, _createClass2.default)(Json, [{ key: "getData", value: ( /** * Returns the file content as Json object. * * @return {{}} file content */ function () { var _getData = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() { return _regenerator.default.wrap(function (_context) { while (1) switch (_context.prev = _context.next) { case 0: if (this._data) { _context.next = 2; break; } _context.next = 1; return this.getContent().then(function (content) { return JSON.parse(content); }); case 1: this._data = _context.sent; case 2: return _context.abrupt("return", this._data); case 3: case "end": return _context.stop(); } }, _callee, this); })); function getData() { return _getData.apply(this, arguments); } return getData; }()) }], [{ key: "getName", value: /** * @inheritDoc */ function getName() { return 'json'; } }, { key: "isActive", value: function isActive() { var _elementor$config$use, _elementor$config$use2; return elementor.config.user.is_administrator || ((_elementor$config$use = (_elementor$config$use2 = elementor.config.user.restrictions) === null || _elementor$config$use2 === void 0 ? void 0 : _elementor$config$use2.includes('json-upload')) !== null && _elementor$config$use !== void 0 ? _elementor$config$use : false); } /** * @inheritDoc */ }, { key: "mimeTypes", get: function get() { return ['application/json']; } /** * @inheritDoc */ }, { key: "resolve", value: (function () { var _resolve = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2(input) { var _t; return _regenerator.default.wrap(function (_context2) { while (1) switch (_context2.prev = _context2.next) { case 0: _context2.prev = 0; JSON.parse(input); return _context2.abrupt("return", 'application/json'); case 1: _context2.prev = 1; _t = _context2["catch"](0); return _context2.abrupt("return", false); case 2: case "end": return _context2.stop(); } }, _callee2, null, [[0, 1]]); })); function resolve(_x) { return _resolve.apply(this, arguments); } return resolve; }()) }]); }(_fileReaderBase.default); /***/ }), /***/ "../assets/dev/js/editor/components/browser-import/files/readers/video.js": /*!********************************************************************************!*\ !*** ../assets/dev/js/editor/components/browser-import/files/readers/video.js ***! \********************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports.Video = void 0; var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js")); var _fileReaderBase = _interopRequireDefault(__webpack_require__(/*! ../file-reader-base */ "../assets/dev/js/editor/components/browser-import/files/file-reader-base.js")); function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } var Video = exports.Video = /*#__PURE__*/function (_FileReaderBase) { function Video() { (0, _classCallCheck2.default)(this, Video); return _callSuper(this, Video, arguments); } (0, _inherits2.default)(Video, _FileReaderBase); return (0, _createClass2.default)(Video, null, [{ key: "getName", value: /** * @inheritDoc */ function getName() { return 'video'; } /** * @inheritDoc */ }, { key: "mimeTypes", get: function get() { return ['video\\/\\w+']; } }]); }(_fileReaderBase.default); /***/ }), /***/ "../assets/dev/js/editor/components/browser-import/items/item-collection.js": /*!**********************************************************************************!*\ !*** ../assets/dev/js/editor/components/browser-import/items/item-collection.js ***! \**********************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js")); var _item = _interopRequireDefault(__webpack_require__(/*! ./item */ "../assets/dev/js/editor/components/browser-import/items/item.js")); function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; } function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } var ItemCollection = exports["default"] = /*#__PURE__*/function () { /** * ItemCollection constructor. * * @param {Array<*>} items */ function ItemCollection() { var items = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; (0, _classCallCheck2.default)(this, ItemCollection); /** * The Item objects list. */ (0, _defineProperty2.default)(this, "items", void 0); this.setItems(items); } /** * Set the Item objects list. * * @param {Array<*>} items */ return (0, _createClass2.default)(ItemCollection, [{ key: "setItems", value: function setItems() { var items = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; var _iterator = _createForOfIteratorHelper(items), _step; try { for (_iterator.s(); !(_step = _iterator.n()).done;) { var item = _step.value; if (!(item instanceof _item.default)) { throw new Error('ItemCollection can only contain Item objects'); } } } catch (err) { _iterator.e(err); } finally { _iterator.f(); } this.items = items; } /** * Get the Item objects list. * * @return {[]} items */ }, { key: "getItems", value: function getItems() { return this.items; } /** * Get files of all items. * * @return {[]} files */ }, { key: "getFiles", value: function getFiles() { return this.items.map(function (item) { return item.getFile(); }); } }]); }(); /***/ }), /***/ "../assets/dev/js/editor/components/browser-import/items/item.js": /*!***********************************************************************!*\ !*** ../assets/dev/js/editor/components/browser-import/items/item.js ***! \***********************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js")); var _isInstanceof = _interopRequireDefault(__webpack_require__(/*! ../../../utils/is-instanceof */ "../assets/dev/js/editor/utils/is-instanceof.js")); var _mime = _interopRequireDefault(__webpack_require__(/*! mime */ "../node_modules/mime/index.js")); /** * @typedef {import('../files/file-parser-base')} FileParserBase * @typedef {import('../files/file-reader-base')} FileReaderBase */ var Item = exports["default"] = /*#__PURE__*/function () { /** * The Item constructor. * * @param {*} input * @param {*} options */ function Item(input) { var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; (0, _classCallCheck2.default)(this, Item); /** * The item File object. * * @type {File} */ (0, _defineProperty2.default)(this, "file", void 0); /** * The Item options list. * * @type {{}} */ (0, _defineProperty2.default)(this, "options", {}); this.file = this.toFile(input); this.options = options; } /** * Convert the input into a File object. * * @param {*} input * @return {File} file */ return (0, _createClass2.default)(Item, [{ key: "toFile", value: function toFile(input) { if (!(0, _isInstanceof.default)(input, File)) { var _this$options = this.options, fileName = _this$options.fileName, type = _this$options.type, options = { type: type || input.type }; // When the input is not a Blob object, use the mime-type from the options to generate the file. input = new File(Array.isArray(input) ? input : [input], fileName || this.constructor.createFileName(options), options); } return input; } /** * Create a random file name from a Blob/File object while using the suitable extension for the blob mime-type. * * @param {*} blob * @return {string} file name */ }, { key: "getFile", value: /** * Get the item File object. * * @return {File} file */ function getFile() { return this.file; } /** * Get the file-reader of the Item. * * @return {FileReaderBase} reader */ }, { key: "getReader", value: function getReader() { return this.options.reader; } /** * Get the file-parser of the Item. * * @return {FileParserBase} parser */ }, { key: "getParser", value: function getParser() { return this.options.parser; } /** * Set the file-reader of the Item. * * @param {FileReaderBase} reader */ }, { key: "setReader", value: function setReader(reader) { this.options.reader = reader; } /** * Set the file-parser of the Item. * * @param {FileParserBase} parser */ }, { key: "setParser", value: function setParser(parser) { this.options.parser = parser; } }], [{ key: "createFileName", value: function createFileName(blob) { return [elementorCommon.helpers.getUniqueId(), _mime.default.getExtension(blob.type)].join('.'); } }]); }(); /***/ }), /***/ "../assets/dev/js/editor/components/browser-import/manager.js": /*!********************************************************************!*\ !*** ../assets/dev/js/editor/components/browser-import/manager.js ***! \********************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js")); var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js")); var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js")); var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js")); var _component = _interopRequireDefault(__webpack_require__(/*! ./component */ "../assets/dev/js/editor/components/browser-import/component.js")); var _defaultConfig = _interopRequireDefault(__webpack_require__(/*! ./default-config */ "../assets/dev/js/editor/components/browser-import/default-config.js")); var _itemCollection = _interopRequireDefault(__webpack_require__(/*! elementor-editor/components/browser-import/items/item-collection */ "../assets/dev/js/editor/components/browser-import/items/item-collection.js")); var _normalizer = _interopRequireDefault(__webpack_require__(/*! ./normalizer */ "../assets/dev/js/editor/components/browser-import/normalizer.js")); var _session = _interopRequireDefault(__webpack_require__(/*! elementor-editor/components/browser-import/session */ "../assets/dev/js/editor/components/browser-import/session.js")); function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; } function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } /** * @typedef {import('../../container/container')} Container */ /** * @typedef {import('./files/file-reader-base')} FileReaderBase */ /** * @typedef {import('./files/file-parser-base')} FileParserBase */ var Manager = exports["default"] = /*#__PURE__*/function (_elementorModules$edi) { /** * Manager constructor. */ function Manager() { var _this; (0, _classCallCheck2.default)(this, Manager); _this = _callSuper(this, Manager); /** * File-readers list. * * @type {{}} */ (0, _defineProperty2.default)(_this, "readers", {}); /** * File-parsers list according to their readers. * * @type {{}} */ (0, _defineProperty2.default)(_this, "parsers", {}); _this.normalizer = new _normalizer.default(_this); $e.components.register(new _component.default({ manager: _this })); _this.parseConfig(_defaultConfig.default); return _this; } /** * Parse the config for the Manager. * * @param {*} config */ (0, _inherits2.default)(Manager, _elementorModules$edi); return (0, _createClass2.default)(Manager, [{ key: "parseConfig", value: function parseConfig() { var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var _iterator = _createForOfIteratorHelper(config.readers || {}), _step; try { for (_iterator.s(); !(_step = _iterator.n()).done;) { var _reader$isActive, _reader$isActive2; var reader = _step.value; var isActive = (_reader$isActive = (_reader$isActive2 = reader.isActive) === null || _reader$isActive2 === void 0 ? void 0 : _reader$isActive2.call(reader)) !== null && _reader$isActive !== void 0 ? _reader$isActive : true; if (isActive) { this.registerFileReader(reader); } } } catch (err) { _iterator.e(err); } finally { _iterator.f(); } var _iterator2 = _createForOfIteratorHelper(config.parsers || {}), _step2; try { for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { var parser = _step2.value; this.registerFileParser(parser); } } catch (err) { _iterator2.e(err); } finally { _iterator2.f(); } } /** * Create a new Session instance and normalize input if needed. * * @param {*} input * @param {Container|null} target * @param {{}} options * @return {Session} session */ }, { key: "createSession", value: (function () { var _createSession = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(input, target) { var options, _args = arguments; return _regenerator.default.wrap(function (_context) { while (1) switch (_context.prev = _context.next) { case 0: options = _args.length > 2 && _args[2] !== undefined ? _args[2] : {}; if (input instanceof _itemCollection.default) { _context.next = 2; break; } _context.next = 1; return this.getNormalizer().normalize(input); case 1: input = _context.sent; case 2: return _context.abrupt("return", new _session.default(this, input, target, options)); case 3: case "end": return _context.stop(); } }, _callee, this); })); function createSession(_x, _x2) { return _createSession.apply(this, arguments); } return createSession; }() /** * Register a new file-reader. * * @param {{}} reader */ ) }, { key: "registerFileReader", value: function registerFileReader(reader) { this.readers[reader.getName()] = reader; } /** * Register a new file-parser. * * @param {*} parser */ }, { key: "registerFileParser", value: function registerFileParser(parser) { var _iterator3 = _createForOfIteratorHelper(parser.getReaders()), _step3; try { for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) { var readerName = _step3.value; if (!this.readers[readerName]) { continue; } else if (!this.parsers[readerName]) { this.parsers[readerName] = {}; } this.parsers[readerName][parser.getName()] = parser; } } catch (err) { _iterator3.e(err); } finally { _iterator3.f(); } } /** * Get the file-handler that can handle the File of the given Item. * * @param {*} item * @param {boolean} instantiate * @return {FileReaderBase|boolean} file handler */ }, { key: "getReaderOf", value: (function () { var _getReaderOf = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2(item) { var instantiate, file, readerName, readers, _i, _Object$values, reader, _args2 = arguments; return _regenerator.default.wrap(function (_context2) { while (1) switch (_context2.prev = _context2.next) { case 0: instantiate = _args2.length > 1 && _args2[1] !== undefined ? _args2[1] : false; file = item.getFile(), readerName = item.getReader(), readers = this.getReaders(readerName); _i = 0, _Object$values = Object.values(readers); case 1: if (!(_i < _Object$values.length)) { _context2.next = 4; break; } reader = _Object$values[_i]; _context2.next = 2; return reader.validate(file); case 2: if (!_context2.sent) { _context2.next = 3; break; } if (!readerName) { item.setReader(reader.getName()); } return _context2.abrupt("return", instantiate ? new reader(file) : reader); case 3: _i++; _context2.next = 1; break; case 4: return _context2.abrupt("return", false); case 5: case "end": return _context2.stop(); } }, _callee2, this); })); function getReaderOf(_x3) { return _getReaderOf.apply(this, arguments); } return getReaderOf; }() /** * Get the file-parser that can handle the File of the given Item. * * @param {*} item * @param {boolean} instantiate * @return {Promise} file parser */ ) }, { key: "getParserOf", value: (function () { var _getParserOf = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee3(item) { var instantiate, reader, parserName, parsers, _i2, _Object$values2, parser, _args3 = arguments; return _regenerator.default.wrap(function (_context3) { while (1) switch (_context3.prev = _context3.next) { case 0: instantiate = _args3.length > 1 && _args3[1] !== undefined ? _args3[1] : false; _context3.next = 1; return this.getReaderOf(item, true); case 1: reader = _context3.sent; parserName = item.getParser(); if (!reader) { _context3.next = 5; break; } parsers = this.getParsers(reader.constructor.getName(), parserName); _i2 = 0, _Object$values2 = Object.values(parsers); case 2: if (!(_i2 < _Object$values2.length)) { _context3.next = 5; break; } parser = _Object$values2[_i2]; _context3.next = 3; return parser.validate(reader); case 3: if (!_context3.sent) { _context3.next = 4; break; } if (!parserName) { item.setParser(parser.getName()); } return _context3.abrupt("return", instantiate ? new parser(reader) : parser); case 4: _i2++; _context3.next = 2; break; case 5: return _context3.abrupt("return", false); case 6: case "end": return _context3.stop(); } }, _callee3, this); })); function getParserOf(_x4) { return _getParserOf.apply(this, arguments); } return getParserOf; }() /** * Resolve the mime-type for an input using the registered parsers. * * @param {*} input * @return {Promise} mime type, or false if not found */ ) }, { key: "getMimeTypeOf", value: (function () { var _getMimeTypeOf = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee4(input) { var _i3, _Object$values3, reader, mimeType; return _regenerator.default.wrap(function (_context4) { while (1) switch (_context4.prev = _context4.next) { case 0: _i3 = 0, _Object$values3 = Object.values(this.getReaders()); case 1: if (!(_i3 < _Object$values3.length)) { _context4.next = 4; break; } reader = _Object$values3[_i3]; _context4.next = 2; return reader.resolve(input); case 2: mimeType = _context4.sent; if (!mimeType) { _context4.next = 3; break; } return _context4.abrupt("return", mimeType); case 3: _i3++; _context4.next = 1; break; case 4: return _context4.abrupt("return", false); case 5: case "end": return _context4.stop(); } }, _callee4, this); })); function getMimeTypeOf(_x5) { return _getMimeTypeOf.apply(this, arguments); } return getMimeTypeOf; }() /** * Get the Normalizer instance. * * @return {Normalizer} normalizer */ ) }, { key: "getNormalizer", value: function getNormalizer() { return this.normalizer; } /** * Get all registered file-readers. * * @param {*|Array<*>} readers * @return {{}} registered file readers */ }, { key: "getReaders", value: function getReaders() { var _this2 = this; var readers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; readers = Array.isArray(readers) ? readers : [readers]; if (!readers.length) { return this.readers; } return Object.fromEntries(readers.filter(function (reader) { return reader in _this2.readers; }).map(function (reader) { return [reader, _this2.readers[reader]]; })); } /** * Get all registered file-parsers, unless a reader name is specified, in which case its parsers are returned. * * @param {*} reader * @param {*} parsers * @return {{}} parsers */ }, { key: "getParsers", value: function getParsers(reader) { var _this3 = this; var parsers = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; parsers = Array.isArray(parsers) ? parsers : [parsers]; if (!parsers.length) { return this.parsers[reader] || {}; } return Object.fromEntries(parsers.filter(function (parser) { return parser in _this3.parsers[reader]; }).map(function (parser) { return [parser, _this3.parsers[reader][parser]]; })); } }]); }(elementorModules.editor.utils.Module); /***/ }), /***/ "../assets/dev/js/editor/components/browser-import/normalizer.js": /*!***********************************************************************!*\ !*** ../assets/dev/js/editor/components/browser-import/normalizer.js ***! \***********************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js")); var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js")); var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _isInstanceof = _interopRequireDefault(__webpack_require__(/*! ../../utils/is-instanceof */ "../assets/dev/js/editor/utils/is-instanceof.js")); var _item = _interopRequireDefault(__webpack_require__(/*! ./items/item */ "../assets/dev/js/editor/components/browser-import/items/item.js")); var _itemCollection = _interopRequireDefault(__webpack_require__(/*! ./items/item-collection */ "../assets/dev/js/editor/components/browser-import/items/item-collection.js")); /** * @typedef {import('../modules/component-base')} ComponentBase */ /** * @typedef {import('./manager')} Manager */ var Normalizer = exports["default"] = /*#__PURE__*/function () { /** * Normalizer constructor. * * @param {Manager} manager */ function Normalizer(manager) { (0, _classCallCheck2.default)(this, Normalizer); this.manager = manager; } /** * Normalize input to an ItemCollection, where each item is an Item object. This method can be used to normalize a * vast spectrum of input types - from data url strings to blob objects, and array of them. Other kind of parsers * can be registered to the Manager. * * @param {*} input * @return {Promise} result */ return (0, _createClass2.default)(Normalizer, [{ key: "normalize", value: (function () { var _normalize = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(input) { return _regenerator.default.wrap(function (_context) { while (1) switch (_context.prev = _context.next) { case 0: if (!(input instanceof _itemCollection.default)) { input = this.toItemCollection(input); } return _context.abrupt("return", input); case 1: case "end": return _context.stop(); } }, _callee, this); })); function normalize(_x) { return _normalize.apply(this, arguments); } return normalize; }() /** * Convert an single or multiple input subjects into a ItemCollection object. To learn more about the way each * subject is treated, please refer the 'toItem' method. * * @param {*} subjects * @return {Promise} result */ ) }, { key: "toItemCollection", value: (function () { var _toItemCollection = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2(subjects) { var _this = this; return _regenerator.default.wrap(function (_context2) { while (1) switch (_context2.prev = _context2.next) { case 0: if (!Array.isArray(subjects)) { subjects = (0, _isInstanceof.default)(subjects, FileList) || (0, _isInstanceof.default)(subjects, DataTransferItemList) ? Array.from(subjects) : [subjects]; } return _context2.abrupt("return", Promise.all(subjects.map(function (subject) { // Creating a ItemCollection can only be made with an array of Item objects. Therefore, unless the // subject is an Item object, we should transform it into one. if (!(subject instanceof _item.default)) { subject = _this.toItem(subject); } return subject; })).then(function (items) { return new _itemCollection.default(items); })); case 1: case "end": return _context2.stop(); } }, _callee2); })); function toItemCollection(_x2) { return _toItemCollection.apply(this, arguments); } return toItemCollection; }() /** * Convert a single subject into an Item object. * * @param {*} subject * @return {Promise} result */ ) }, { key: "toItem", value: (function () { var _toItem = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee3(subject) { var mimeType, _t; return _regenerator.default.wrap(function (_context3) { while (1) switch (_context3.prev = _context3.next) { case 0: if ((0, _isInstanceof.default)(subject, [Blob, File, DataTransferItem])) { _context3.next = 7; break; } _context3.prev = 1; // In order to check whether it's a data url string, we're trying to decode it. If it is a data url, // we can extract the blob later using `fetch`. window.atob(subject.split(',')[1]); _context3.next = 5; break; case 2: _context3.prev = 2; _t = _context3["catch"](1); _context3.next = 3; return this.manager.getMimeTypeOf(subject); case 3: mimeType = _context3.sent; if (!mimeType) { _context3.next = 4; break; } subject = this.constructor.createDataUrl(subject, mimeType); _context3.next = 5; break; case 4: throw new Error('The input provided cannot be resolved'); case 5: _context3.next = 6; return fetch(subject).then(function (res) { return res.blob(); }); case 6: subject = _context3.sent; case 7: return _context3.abrupt("return", new _item.default(subject)); case 8: case "end": return _context3.stop(); } }, _callee3, this, [[1, 2]]); })); function toItem(_x3) { return _toItem.apply(this, arguments); } return toItem; }() /** * A utility for creating a data url string functionally. * * @param {string} data * @param {string|undefined} mimeType * @param {boolean} base64 * @return {string} data URI */ ) }], [{ key: "createDataUrl", value: function createDataUrl(data) { var mimeType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; var base64 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; if (base64) { data = "base64,".concat(btoa(data)); } if (mimeType) { mimeType += ';'; } return "data:".concat(mimeType || '').concat(data); } }]); }(); /***/ }), /***/ "../assets/dev/js/editor/components/browser-import/session.js": /*!********************************************************************!*\ !*** ../assets/dev/js/editor/components/browser-import/session.js ***! \********************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js")); var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js")); var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js")); function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; } function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } /** * @typedef {import('../../container/container')} Container */ /** * @typedef {import('./manager')} Manager */ /** * @typedef {import('./items/item-collection')} ItemCollection */ var Session = exports["default"] = /*#__PURE__*/function () { /** * Session constructor. * * @param {Manager} manager * @param {ItemCollection|null} itemCollection * @param {Container|null} target * @param {{}} options */ function Session(manager) { var itemCollection = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; var target = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}; (0, _classCallCheck2.default)(this, Session); /** * The Manager instance. * * @type {Manager} */ (0, _defineProperty2.default)(this, "manager", void 0); /** * The ItemCollection instance. * * @type {ItemCollection} */ (0, _defineProperty2.default)(this, "itemCollection", void 0); /** * The Target instance. * * @type {Container} */ (0, _defineProperty2.default)(this, "target", void 0); /** * The Session options. * * @type {{}} */ (0, _defineProperty2.default)(this, "options", { target: {} }); this.manager = manager; this.itemCollection = itemCollection; this.target = target; Object.assign(this.options, options); } /** * Validate all files in this session can be handled. * * @return {boolean} true if all items are valid */ return (0, _createClass2.default)(Session, [{ key: "validate", value: (function () { var _validate = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() { var _iterator, _step, item, _t; return _regenerator.default.wrap(function (_context) { while (1) switch (_context.prev = _context.next) { case 0: _iterator = _createForOfIteratorHelper(this.itemCollection.getItems()); _context.prev = 1; _iterator.s(); case 2: if ((_step = _iterator.n()).done) { _context.next = 5; break; } item = _step.value; _context.next = 3; return this.manager.getReaderOf(item); case 3: if (_context.sent) { _context.next = 4; break; } return _context.abrupt("return", false); case 4: _context.next = 2; break; case 5: _context.next = 7; break; case 6: _context.prev = 6; _t = _context["catch"](1); _iterator.e(_t); case 7: _context.prev = 7; _iterator.f(); return _context.finish(7); case 8: return _context.abrupt("return", true); case 9: case "end": return _context.stop(); } }, _callee, this, [[1, 6, 7, 8]]); })); function validate() { return _validate.apply(this, arguments); } return validate; }() /** * Handle files with a suitable file-parser. * * @return {Container[]} result */ ) }, { key: "apply", value: (function () { var _apply = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2() { var _this = this; var parsed, _iterator2, _step2, item, parser, _t2; return _regenerator.default.wrap(function (_context2) { while (1) switch (_context2.prev = _context2.next) { case 0: parsed = []; _iterator2 = _createForOfIteratorHelper(this.itemCollection.getItems()); _context2.prev = 1; _iterator2.s(); case 2: if ((_step2 = _iterator2.n()).done) { _context2.next = 6; break; } item = _step2.value; _context2.next = 3; return this.manager.getParserOf(item, true); case 3: parser = _context2.sent; if (!parser) { _context2.next = 4; break; } parsed.push(parser.parse()); _context2.next = 5; break; case 4: throw new Error('An error occurred when trying to parse the input'); case 5: _context2.next = 2; break; case 6: _context2.next = 8; break; case 7: _context2.prev = 7; _t2 = _context2["catch"](1); _iterator2.e(_t2); case 8: _context2.prev = 8; _iterator2.f(); return _context2.finish(8); case 9: return _context2.abrupt("return", Promise.all(parsed).then(function (result) { return _this.resolve(result.flat()); })); case 10: case "end": return _context2.stop(); } }, _callee2, this, [[1, 7, 8, 9]]); })); function apply() { return _apply.apply(this, arguments); } return apply; }() /** * Resolve containers to fulfill their purpose. * * @param {*} containers * @return {*} result */ ) }, { key: "resolve", value: function resolve(containers) { var _this2 = this; if (Object.values(containers).some(function (element) { return 'section' === element.model.get('elType'); })) { this.target = elementor.getPreviewContainer(); } // eslint-disable-next-line array-callback-return return containers.map(function (element) { switch (element.type) { case 'container': case 'section': case 'column': case 'e-div-block': case 'widget': return _this2.target.view.createElementFromModel(element.model, Object.assign(_this2.options.target, { event: _this2.options.event, scrollIntoView: 0 === containers.indexOf(element) })); } }); } }]); }(); /***/ }), /***/ "../assets/dev/js/editor/components/documents/commands/close.js": /*!**********************************************************************!*\ !*** ../assets/dev/js/editor/components/documents/commands/close.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"]; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = exports.Close = void 0; var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js")); var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js")); var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js")); function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } var Close = exports.Close = /*#__PURE__*/function (_$e$modules$CommandBa) { function Close() { (0, _classCallCheck2.default)(this, Close); return _callSuper(this, Close, arguments); } (0, _inherits2.default)(Close, _$e$modules$CommandBa); return (0, _createClass2.default)(Close, [{ key: "validateArgs", value: function validateArgs(args) { this.requireArgument('id', args); } }, { key: "apply", value: function () { var _apply = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(args) { var id, mode, onClose, document, deferred, _t; return _regenerator.default.wrap(function (_context) { while (1) switch (_context.prev = _context.next) { case 0: id = args.id, mode = args.mode, onClose = args.onClose, document = elementor.documents.get(id); // Already closed. if (!('closed' === document.editor.status)) { _context.next = 1; break; } return _context.abrupt("return", jQuery.Deferred().resolve()); case 1: if (!(!mode && (document.editor.isChanged || document.isDraft()))) { _context.next = 2; break; } deferred = jQuery.Deferred(); this.getConfirmDialog(deferred).show(); return _context.abrupt("return", deferred.promise()); case 2: _t = mode; _context.next = _t === 'autosave' ? 3 : _t === 'save' ? 5 : _t === 'discard' ? 7 : 9; break; case 3: _context.next = 4; return $e.run('document/save/auto'); case 4: return _context.abrupt("continue", 9); case 5: _context.next = 6; return $e.run('document/save/update'); case 6: return _context.abrupt("continue", 9); case 7: _context.next = 8; return $e.run('document/save/discard', { document: document }); case 8: return _context.abrupt("continue", 9); case 9: $e.run('document/elements/deselect-all'); _context.next = 10; return $e.internal('editor/documents/unload', { document: document }); case 10: if (!onClose) { _context.next = 11; break; } _context.next = 11; return onClose(document); case 11: return _context.abrupt("return", jQuery.Deferred().resolve()); case 12: case "end": return _context.stop(); } }, _callee, this); })); function apply(_x) { return _apply.apply(this, arguments); } return apply; }() }, { key: "getConfirmDialog", value: function getConfirmDialog(deferred) { var _this = this; if (this.confirmDialog) { return this.confirmDialog; } this.confirmDialog = elementorCommon.dialogsManager.createWidget('confirm', { id: 'elementor-document-save-on-close', headerMessage: __('You are leaving to a separate site part.', 'elementor'), message: __('Save your changes before moving on because the current document and the one you’re moving to are separate site parts.', 'elementor'), position: { my: 'center center', at: 'center center' }, strings: { confirm: __('Save & leave', 'elementor'), cancel: __('Don\'t leave', 'elementor') }, onHide: function onHide() { // If still not action chosen. use `defer` because onHide is called before onConfirm/onCancel. _.defer(function () { if (!_this.args.mode) { deferred.reject('Close document has been canceled.'); } }); }, onCancel: function onCancel() { window.top.$e.internal('panel/state-ready'); deferred.reject('Close document has been canceled.'); }, onConfirm: function onConfirm() { _this.args.mode = 'save'; // Re-run with same args. $e.run('editor/documents/close', _this.args).then(function () { deferred.resolve(); }); } }); return this.confirmDialog; } }]); }($e.modules.CommandBase); var _default = exports["default"] = Close; /***/ }), /***/ "../assets/dev/js/editor/components/documents/commands/index.js": /*!**********************************************************************!*\ !*** ../assets/dev/js/editor/components/documents/commands/index.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "Close", ({ enumerable: true, get: function get() { return _close.Close; } })); Object.defineProperty(exports, "Open", ({ enumerable: true, get: function get() { return _open.Open; } })); Object.defineProperty(exports, "Preview", ({ enumerable: true, get: function get() { return _preview.Preview; } })); Object.defineProperty(exports, "Switch", ({ enumerable: true, get: function get() { return _switch.Switch; } })); Object.defineProperty(exports, "View", ({ enumerable: true, get: function get() { return _view.View; } })); var _close = __webpack_require__(/*! ./close */ "../assets/dev/js/editor/components/documents/commands/close.js"); var _open = __webpack_require__(/*! ./open */ "../assets/dev/js/editor/components/documents/commands/open.js"); var _preview = __webpack_require__(/*! ./preview */ "../assets/dev/js/editor/components/documents/commands/preview.js"); var _view = __webpack_require__(/*! ./view */ "../assets/dev/js/editor/components/documents/commands/view.js"); var _switch = __webpack_require__(/*! ./switch */ "../assets/dev/js/editor/components/documents/commands/switch.js"); /***/ }), /***/ "../assets/dev/js/editor/components/documents/commands/internal/attach-preview.js": /*!****************************************************************************************!*\ !*** ../assets/dev/js/editor/components/documents/commands/internal/attach-preview.js ***! \****************************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = exports.AttachPreview = void 0; var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js")); var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js")); var _excluded = ["shouldNavigateToDefaultRoute"]; function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } var AttachPreview = exports.AttachPreview = /*#__PURE__*/function (_$e$modules$CommandIn) { function AttachPreview() { (0, _classCallCheck2.default)(this, AttachPreview); return _callSuper(this, AttachPreview, arguments); } (0, _inherits2.default)(AttachPreview, _$e$modules$CommandIn); return (0, _createClass2.default)(AttachPreview, [{ key: "validateArgs", value: function validateArgs() { var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; if (args.selector) { this.requireArgumentType('selector', 'string'); if (0 === elementor.$previewContents.find(args.selector).length) { throw new Error('Invalid argument. The `selector` argument must be existed selector.'); } } } }, { key: "apply", value: function apply() { var _this = this; var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var _ref$shouldNavigateTo = _ref.shouldNavigateToDefaultRoute, shouldNavigateToDefaultRoute = _ref$shouldNavigateTo === void 0 ? true : _ref$shouldNavigateTo, args = (0, _objectWithoutProperties2.default)(_ref, _excluded); var document = elementor.documents.getCurrent(); return $e.data.get('globals/index').then(function () { elementor.trigger('globals:loaded'); return _this.attachDocumentToPreview(document, args); }).then(function () { elementor.toggleDocumentCssFiles(document, false); elementor.onEditModeSwitched(); elementor.checkPageStatus(); elementor.trigger('document:loaded', document); if (shouldNavigateToDefaultRoute) { return $e.internal('panel/open-default', { refresh: true }); } }); } }, { key: "attachDocumentToPreview", value: function attachDocumentToPreview(document, args) { var _args$selector = args.selector, selector = _args$selector === void 0 ? '.elementor-' + document.id : _args$selector, _args$shouldScroll = args.shouldScroll, shouldScroll = _args$shouldScroll === void 0 ? true : _args$shouldScroll; return new Promise(function (resolve, reject) { // Not yet loaded. if (!document) { return reject("Can't attach preview, there is no open document."); } if (!document.config.elements) { return resolve(); } document.$element = elementor.$previewContents.find(selector); var isInitialDocument = document.id === elementor.config.initial_document.id; if (!document.$element.length) { if (isInitialDocument) { elementor.onPreviewElNotFound(); } return reject("Can't attach preview to document '".concat(document.id, "', element '").concat(selector, "' was not found.")); } document.$element.addClass('elementor-edit-area elementor-edit-mode'); if (!isInitialDocument) { elementor.documents.getCurrent().$element.addClass('elementor-embedded-editor'); } elementor.initElements(); elementor.initPreviewView(document); document.container.view = elementor.getPreviewView(); document.container.model.attributes.elements = elementor.elements; if (shouldScroll) { elementor.helpers.scrollToView(document.$element); } document.$element.addClass('elementor-edit-area-active').removeClass('elementor-editor-preview'); resolve(); }); } }]); }($e.modules.CommandInternalBase); var _default = exports["default"] = AttachPreview; /***/ }), /***/ "../assets/dev/js/editor/components/documents/commands/internal/index.js": /*!*******************************************************************************!*\ !*** ../assets/dev/js/editor/components/documents/commands/internal/index.js ***! \*******************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "AttachPreview", ({ enumerable: true, get: function get() { return _attachPreview.AttachPreview; } })); Object.defineProperty(exports, "Load", ({ enumerable: true, get: function get() { return _load.Load; } })); Object.defineProperty(exports, "Unload", ({ enumerable: true, get: function get() { return _unload.Unload; } })); var _attachPreview = __webpack_require__(/*! ./attach-preview */ "../assets/dev/js/editor/components/documents/commands/internal/attach-preview.js"); var _load = __webpack_require__(/*! ./load */ "../assets/dev/js/editor/components/documents/commands/internal/load.js"); var _unload = __webpack_require__(/*! ./unload */ "../assets/dev/js/editor/components/documents/commands/internal/unload.js"); /***/ }), /***/ "../assets/dev/js/editor/components/documents/commands/internal/load.js": /*!******************************************************************************!*\ !*** ../assets/dev/js/editor/components/documents/commands/internal/load.js ***! \******************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = exports.Load = void 0; var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js")); var _document = _interopRequireDefault(__webpack_require__(/*! ../../document */ "../assets/dev/js/editor/components/documents/document.js")); var _heartbeat = _interopRequireDefault(__webpack_require__(/*! elementor-editor-utils/heartbeat */ "../assets/dev/js/editor/utils/heartbeat.js")); function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } var Load = exports.Load = /*#__PURE__*/function (_$e$modules$CommandIn) { function Load() { (0, _classCallCheck2.default)(this, Load); return _callSuper(this, Load, arguments); } (0, _inherits2.default)(Load, _$e$modules$CommandIn); return (0, _createClass2.default)(Load, [{ key: "validateArgs", value: function validateArgs() { var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; this.requireArgument('config', args); } }, { key: "apply", value: function apply(args) { var config = args.config, _args$setAsInitial = args.setAsInitial, setAsInitial = _args$setAsInitial === void 0 ? false : _args$setAsInitial, _args$shouldScroll = args.shouldScroll, shouldScroll = _args$shouldScroll === void 0 ? true : _args$shouldScroll, _args$shouldNavigateT = args.shouldNavigateToDefaultRoute, shouldNavigateToDefaultRoute = _args$shouldNavigateT === void 0 ? true : _args$shouldNavigateT; if (elementorCommon.config.experimentalFeatures.additional_custom_breakpoints) { // When the Responsive Optimization experiment is active, the responsive controls are generated on the // JS side instead of the PHP. config.settings.controls = elementor.generateResponsiveControls(config.settings.controls); } elementor.config.document = config; elementor.setAjax(); elementor.addWidgetsCache(config.widgets); elementor.templates.init(); var document = new _document.default(config); elementor.documents.add(document); // Must set current before create a container. elementor.documents.setCurrent(document); if (setAsInitial) { elementor.documents.setInitialById(document.id); } elementor.settings.page = new elementor.settings.modules.page(config.settings); document.container = elementor.settings.page.getEditedView().getContainer(); // Reference container back to document. document.container.document = document; elementor.heartbeat = new _heartbeat.default(document); var isOldPageVersion = elementor.config.document.version && elementor.helpers.compareVersions(elementor.config.document.version, '2.5.0', '<'); if (!elementor.config.user.introduction.flexbox && isOldPageVersion) { elementor.showFlexBoxAttentionDialog(); } if (elementor.loaded) { // TODO: Find better solution - Fix issue when globals does not render after saving from kit. // The issue is that the css-parser is depends upon cache and cache is not available during this time. return $e.data.get('globals/index').then(function () { if (setAsInitial) { // There is no need to attach preview when the iframe is reloaded. It will be triggered // automatically after the iframe finishes loading (see `EditorBase.onPreviewLoaded()`). elementor.reloadPreview(); return Promise.resolve(); } return $e.internal('editor/documents/attach-preview', { shouldScroll: shouldScroll, shouldNavigateToDefaultRoute: shouldNavigateToDefaultRoute, selector: args.selector }); }); } return Promise.resolve(document); } }]); }($e.modules.CommandInternalBase); var _default = exports["default"] = Load; /***/ }), /***/ "../assets/dev/js/editor/components/documents/commands/internal/unload.js": /*!********************************************************************************!*\ !*** ../assets/dev/js/editor/components/documents/commands/internal/unload.js ***! \********************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = exports.Unload = void 0; var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js")); var _document = _interopRequireDefault(__webpack_require__(/*! ../../document */ "../assets/dev/js/editor/components/documents/document.js")); function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } var Unload = exports.Unload = /*#__PURE__*/function (_$e$modules$CommandIn) { function Unload() { (0, _classCallCheck2.default)(this, Unload); return _callSuper(this, Unload, arguments); } (0, _inherits2.default)(Unload, _$e$modules$CommandIn); return (0, _createClass2.default)(Unload, [{ key: "validateArgs", value: function validateArgs() { var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; this.requireArgumentConstructor('document', _document.default, args); } }, { key: "apply", value: function apply(args) { return new Promise(function (resolve, reject) { var document = args.document; if (document.id !== elementor.config.document.id) { reject(); } elementor.elements = []; elementor.saver.stopAutoSave(document); elementor.channels.dataEditMode.trigger('switch', 'preview'); if (document.$element) { document.$element.removeClass('elementor-edit-area-active elementor-edit-mode').addClass('elementor-editor-preview'); } elementorCommon.elements.$body.removeClass("elementor-editor-".concat(document.config.type)); elementor.settings.page.destroy(); elementor.heartbeat.destroy(); document.editor.status = 'closed'; elementor.config.document = {}; elementor.documents.unsetCurrent(); elementor.trigger('document:unloaded', document); resolve(); }); } }]); }($e.modules.CommandInternalBase); var _default = exports["default"] = Unload; /***/ }), /***/ "../assets/dev/js/editor/components/documents/commands/open.js": /*!*********************************************************************!*\ !*** ../assets/dev/js/editor/components/documents/commands/open.js ***! \*********************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = exports.Open = void 0; var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js")); function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } var Open = exports.Open = /*#__PURE__*/function (_$e$modules$CommandBa) { function Open() { (0, _classCallCheck2.default)(this, Open); return _callSuper(this, Open, arguments); } (0, _inherits2.default)(Open, _$e$modules$CommandBa); return (0, _createClass2.default)(Open, [{ key: "validateArgs", value: function validateArgs(args) { this.requireArgument('id', args); } }, { key: "apply", value: function apply(args) { var id = args.id, selector = args.selector, _args$shouldScroll = args.shouldScroll, shouldScroll = _args$shouldScroll === void 0 ? true : _args$shouldScroll, _args$shouldNavigateT = args.shouldNavigateToDefaultRoute, shouldNavigateToDefaultRoute = _args$shouldNavigateT === void 0 ? true : _args$shouldNavigateT, _args$setAsInitial = args.setAsInitial, setAsInitial = _args$setAsInitial === void 0 ? false : _args$setAsInitial, currentDocument = elementor.documents.getCurrent(); // Already opened. if (currentDocument && id === currentDocument.id) { return jQuery.Deferred().resolve(); } // TODO: move to $e.hooks.ui. if (elementor.loaded) { elementor.$previewContents.find(".elementor-".concat(id)).addClass('loading'); } if (setAsInitial) { // Set the new initial document id to be sent with all requests. // The next request needs to have the new initial document id in order to have the correct preview URL. elementorCommon.ajax.addRequestConstant('initial_document_id', id); // Because the initial document has changed, we need to clear cached values (e.g. header wp_preview URL), elementor.documents.invalidateCache(); } return elementor.documents.request(id).then(function (config) { elementorCommon.elements.$body.addClass("elementor-editor-".concat(config.type)); // Tell the editor to load the document. return $e.internal('editor/documents/load', { config: config, selector: selector, setAsInitial: setAsInitial, shouldScroll: shouldScroll, shouldNavigateToDefaultRoute: shouldNavigateToDefaultRoute }); }).always(function () { // TODO: move to $e.hooks.ui. if (elementor.loaded) { elementor.$previewContents.find(".elementor-".concat(id)).removeClass('loading'); } }); } }]); }($e.modules.CommandBase); var _default = exports["default"] = Open; /***/ }), /***/ "../assets/dev/js/editor/components/documents/commands/preview.js": /*!************************************************************************!*\ !*** ../assets/dev/js/editor/components/documents/commands/preview.js ***! \************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = exports.Preview = void 0; var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js")); var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js")); var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js")); function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } var Preview = exports.Preview = /*#__PURE__*/function (_$e$modules$CommandBa) { function Preview() { (0, _classCallCheck2.default)(this, Preview); return _callSuper(this, Preview, arguments); } (0, _inherits2.default)(Preview, _$e$modules$CommandBa); return (0, _createClass2.default)(Preview, [{ key: "validateArgs", value: function validateArgs(args) { this.requireArgument('id', args); } // TODO: Check if blocking is required. }, { key: "apply", value: function () { var _apply = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(args) { var id, _$e$components$get, footerSaver, document; return _regenerator.default.wrap(function (_context) { while (1) switch (_context.prev = _context.next) { case 0: id = args.id, _$e$components$get = $e.components.get('document/save'), footerSaver = _$e$components$get.footerSaver, document = elementor.documents.get(id); if (!document.editor.isChanged) { _context.next = 1; break; } _context.next = 1; return $e.run('document/save/auto', { force: true }); case 1: // Open immediately in order to avoid popup blockers. footerSaver.previewWindow = open(document.config.urls.wp_preview, "wp-preview-".concat(document.id)); case 2: case "end": return _context.stop(); } }, _callee); })); function apply(_x) { return _apply.apply(this, arguments); } return apply; }() }]); }($e.modules.CommandBase); var _default = exports["default"] = Preview; /***/ }), /***/ "../assets/dev/js/editor/components/documents/commands/switch.js": /*!***********************************************************************!*\ !*** ../assets/dev/js/editor/components/documents/commands/switch.js ***! \***********************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = exports.Switch = void 0; var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js")); function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } var Switch = exports.Switch = /*#__PURE__*/function (_$e$modules$CommandBa) { function Switch() { (0, _classCallCheck2.default)(this, Switch); return _callSuper(this, Switch, arguments); } (0, _inherits2.default)(Switch, _$e$modules$CommandBa); return (0, _createClass2.default)(Switch, [{ key: "validateArgs", value: function validateArgs(args) { this.requireArgument('id', args); } }, { key: "apply", value: function apply(args) { var id = args.id, mode = args.mode, onClose = args.onClose, _args$shouldScroll = args.shouldScroll, shouldScroll = _args$shouldScroll === void 0 ? true : _args$shouldScroll, _args$shouldNavigateT = args.shouldNavigateToDefaultRoute, shouldNavigateToDefaultRoute = _args$shouldNavigateT === void 0 ? true : _args$shouldNavigateT, _args$setAsInitial = args.setAsInitial, setAsInitial = _args$setAsInitial === void 0 ? false : _args$setAsInitial; if (setAsInitial) { // Will be removed by the attach-preview after the iframe has loaded. jQuery('#elementor-preview-loading').show(); } return $e.run('editor/documents/close', { id: elementor.documents.getCurrentId(), mode: mode, onClose: onClose, selector: args.selector }).then(function () { return $e.run('editor/documents/open', { id: id, shouldScroll: shouldScroll, shouldNavigateToDefaultRoute: shouldNavigateToDefaultRoute, selector: args.selector, setAsInitial: setAsInitial }); }).then(function () { elementor.getPanelView().getPages('menu').view.addExitItem(); }); } }]); }($e.modules.CommandBase); var _default = exports["default"] = Switch; /***/ }), /***/ "../assets/dev/js/editor/components/documents/commands/view.js": /*!*********************************************************************!*\ !*** ../assets/dev/js/editor/components/documents/commands/view.js ***! \*********************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = exports.View = void 0; var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js")); var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js")); var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js")); function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } var View = exports.View = /*#__PURE__*/function (_$e$modules$CommandBa) { function View() { (0, _classCallCheck2.default)(this, View); return _callSuper(this, View, arguments); } (0, _inherits2.default)(View, _$e$modules$CommandBa); return (0, _createClass2.default)(View, [{ key: "validateArgs", value: function validateArgs(args) { this.requireArgument('id', args); } }, { key: "apply", value: function () { var _apply = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(args) { var id, document; return _regenerator.default.wrap(function (_context) { while (1) switch (_context.prev = _context.next) { case 0: id = args.id, document = elementor.documents.get(id); // Open immediately in order to avoid popup blockers. open(document.config.urls.permalink, "wp-view-".concat(document.id)); case 1: case "end": return _context.stop(); } }, _callee); })); function apply(_x) { return _apply.apply(this, arguments); } return apply; }() }]); }($e.modules.CommandBase); var _default = exports["default"] = View; /***/ }), /***/ "../assets/dev/js/editor/components/documents/component.js": /*!*****************************************************************!*\ !*** ../assets/dev/js/editor/components/documents/component.js ***! \*****************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"]; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "../node_modules/@babel/runtime/helpers/get.js")); var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js")); var _componentBase = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/component-base */ "../modules/web-cli/assets/js/modules/component-base.js")); var _document = _interopRequireDefault(__webpack_require__(/*! ./document */ "../assets/dev/js/editor/components/documents/document.js")); var commands = _interopRequireWildcard(__webpack_require__(/*! ./commands/ */ "../assets/dev/js/editor/components/documents/commands/index.js")); var internalCommands = _interopRequireWildcard(__webpack_require__(/*! ./commands/internal/ */ "../assets/dev/js/editor/components/documents/commands/internal/index.js")); var hooks = _interopRequireWildcard(__webpack_require__(/*! ./hooks */ "../assets/dev/js/editor/components/documents/hooks/index.js")); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); } function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } function _superPropGet(t, o, e, r) { var p = (0, _get2.default)((0, _getPrototypeOf2.default)(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } var Component = exports["default"] = /*#__PURE__*/function (_ComponentBase) { function Component() { (0, _classCallCheck2.default)(this, Component); return _callSuper(this, Component, arguments); } (0, _inherits2.default)(Component, _ComponentBase); return (0, _createClass2.default)(Component, [{ key: "__construct", value: function __construct() { var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; _superPropGet(Component, "__construct", this, 3)([args]); /** * All the documents. * * @type {Object.} */ this.documents = {}; /** * Current document. * * @type {Document} */ this.currentDocument = null; this.saveInitialDocumentToCache(); } }, { key: "getNamespace", value: function getNamespace() { return 'editor/documents'; } }, { key: "defaultCommands", value: function defaultCommands() { return this.importCommands(commands); } }, { key: "defaultHooks", value: function defaultHooks() { return this.importHooks(hooks); } }, { key: "defaultCommandsInternal", value: function defaultCommandsInternal() { return this.importCommands(internalCommands); } /** * Function add(). * * Add's document to the manager. * * @param {Document} document * * @return {Document} document */ }, { key: "add", value: function add(document) { var id = document.id; // Save the document. this.documents[id] = document; return document; } /** * Function addDocumentByConfig(). * * Add document to manager by config. * * @param {{}} config * * @return {Document} document */ }, { key: "addDocumentByConfig", value: function addDocumentByConfig(config) { return this.add(new _document.default(config)); } /** * Function get(). * * Get document by id. * * @param {number} id * * @return {Document|boolean} document, or false if doesn't exist */ }, { key: "get", value: function get(id) { if (undefined !== this.documents[id]) { return this.documents[id]; } return false; } /** * Function getCurrent(). * * Return's current document. * * @return {Document} document */ }, { key: "getCurrent", value: function getCurrent() { return this.currentDocument; } /** * Function getCurrentId(). * * Return's current document id. * * @return {number} document id */ }, { key: "getCurrentId", value: function getCurrentId() { return this.currentDocument.id; } }, { key: "getInitialId", value: function getInitialId() { return elementor.config.initial_document.id; } }, { key: "setInitialById", value: function setInitialById(id) { var document = this.get(id); if (!document) { return; } elementor.config.initial_document = document.config; elementorCommon.ajax.addRequestConstant('initial_document_id', document.id); } /** * Function setCurrent(). * * set current document by document instance. * * @param {Document} document */ }, { key: "setCurrent", value: function setCurrent(document) { if (undefined === this.documents[document.id]) { throw Error("The document with id: '".concat(document.id, "' does not exist/loaded")); } if (this.currentDocument) { this.currentDocument.editor.status = 'closed'; } this.currentDocument = this.documents[document.id]; this.currentDocument.editor.status = 'open'; elementorCommon.ajax.addRequestConstant('editor_post_id', document.id); } }, { key: "isCurrent", value: function isCurrent(id) { return parseInt(id) === this.currentDocument.id; } }, { key: "unsetCurrent", value: function unsetCurrent() { this.currentDocument = null; elementorCommon.ajax.addRequestConstant('editor_post_id', null); } }, { key: "request", value: function request(id) { return elementorCommon.ajax.load(this.getRequestArgs(id), true); } }, { key: "invalidateCache", value: function invalidateCache() { var _this = this; var id = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; if (id) { elementorCommon.ajax.invalidateCache(this.getRequestArgs(id)); return; } Object.keys(this.documents).forEach(function (docId) { elementorCommon.ajax.invalidateCache(_this.getRequestArgs(docId)); }); } }, { key: "getRequestArgs", value: function getRequestArgs(id) { id = parseInt(id); return { action: 'get_document_config', unique_id: "document-".concat(id), data: { id: id }, success: function success(config) { return config; }, error: function error(data) { var message; if (_.isString(data)) { message = data; } else if (data.statusText) { message = elementor.createAjaxErrorMessage(data); if (0 === data.readyState) { message += ' ' + __('Cannot load editor', 'elementor'); } } else if (data[0] && data[0].code) { message = __('Server Error', 'elementor') + ' ' + data[0].code; } // eslint-disable-next-line no-alert alert(message); } }; } /** * Temp: Don't request initial document via ajax. * Keep the event `elementor:init` before `preview:loaded`. */ }, { key: "saveInitialDocumentToCache", value: function saveInitialDocumentToCache() { var document = elementor.config.initial_document; elementorCommon.ajax.addRequestCache(this.getRequestArgs(document.id), document); } }]); }(_componentBase.default); /***/ }), /***/ "../assets/dev/js/editor/components/documents/document.js": /*!****************************************************************!*\ !*** ../assets/dev/js/editor/components/documents/document.js ***! \****************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js")); var _manager = _interopRequireDefault(__webpack_require__(/*! elementor/modules/history/assets/js/history/manager */ "../modules/history/assets/js/history/manager.js")); var _manager2 = _interopRequireDefault(__webpack_require__(/*! elementor/modules/history/assets/js/revisions/manager */ "../modules/history/assets/js/revisions/manager.js")); var _editor = _interopRequireDefault(__webpack_require__(/*! ./models/editor */ "../assets/dev/js/editor/components/documents/models/editor.js")); /** * @typedef {import('../../container/container')} Container */ var Document = exports["default"] = /*#__PURE__*/function () { /** * Function constructor(). * * Create document. * * @param {{}} config */ function Document(config) { (0, _classCallCheck2.default)(this, Document); /** * Document id. * * @type {number|null} */ (0, _defineProperty2.default)(this, "id", null); /** * History of the document. * * @type {HistoryManager} */ (0, _defineProperty2.default)(this, "history", null); /** * Revisions of the document. * * @type {RevisionsManager} */ (0, _defineProperty2.default)(this, "revisions", null); /** * Current container. * * @type {Container} */ (0, _defineProperty2.default)(this, "container", null); /** * Editor Settings. * * @type {Editor} */ (0, _defineProperty2.default)(this, "editor", new _editor.default()); this.config = config; this.id = config.id; this.history = new _manager.default(this); this.revisions = new _manager2.default(this); } return (0, _createClass2.default)(Document, [{ key: "isDraft", value: function isDraft() { return this.config.revisions.current_id !== this.config.id; } }]); }(); /***/ }), /***/ "../assets/dev/js/editor/components/documents/hooks/index.js": /*!*******************************************************************!*\ !*** ../assets/dev/js/editor/components/documents/hooks/index.js ***! \*******************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "ClearDynamicTagsCache", ({ enumerable: true, get: function get() { return _clearDynamicTagsCache.ClearDynamicTagsCache; } })); Object.defineProperty(exports, "RemoveActiveDocumentQueryParam", ({ enumerable: true, get: function get() { return _removeActiveDocumentQueryParam.RemoveActiveDocumentQueryParam; } })); Object.defineProperty(exports, "RemoveActiveTabQueryParam", ({ enumerable: true, get: function get() { return _removeActiveTabQueryParam.RemoveActiveTabQueryParam; } })); Object.defineProperty(exports, "RemoveActiveTabQueryParamBack", ({ enumerable: true, get: function get() { return _removeActiveTabQueryParamBack.RemoveActiveTabQueryParamBack; } })); Object.defineProperty(exports, "SetActiveDocumentQueryParam", ({ enumerable: true, get: function get() { return _setActiveDocumentQueryParam.SetActiveDocumentQueryParam; } })); Object.defineProperty(exports, "SwitchToActiveDocument", ({ enumerable: true, get: function get() { return _switchToActiveDocument.SwitchToActiveDocument; } })); Object.defineProperty(exports, "SwitchToActiveTab", ({ enumerable: true, get: function get() { return _switchToActiveTab.SwitchToActiveTab; } })); var _removeActiveDocumentQueryParam = __webpack_require__(/*! ./ui/close/remove-active-document-query-param */ "../assets/dev/js/editor/components/documents/hooks/ui/close/remove-active-document-query-param.js"); var _setActiveDocumentQueryParam = __webpack_require__(/*! ./ui/open/set-active-document-query-param */ "../assets/dev/js/editor/components/documents/hooks/ui/open/set-active-document-query-param.js"); var _clearDynamicTagsCache = __webpack_require__(/*! ./ui/open/clear-dynamic-tags-cache */ "../assets/dev/js/editor/components/documents/hooks/ui/open/clear-dynamic-tags-cache.js"); var _switchToActiveDocument = __webpack_require__(/*! ./ui/attach-preview/switch-to-active-document */ "../assets/dev/js/editor/components/documents/hooks/ui/attach-preview/switch-to-active-document.js"); var _switchToActiveTab = __webpack_require__(/*! ./ui/switch/switch-to-active-tab */ "../assets/dev/js/editor/components/documents/hooks/ui/switch/switch-to-active-tab.js"); var _removeActiveTabQueryParam = __webpack_require__(/*! ./ui/close/remove-active-tab-query-param */ "../assets/dev/js/editor/components/documents/hooks/ui/close/remove-active-tab-query-param.js"); var _removeActiveTabQueryParamBack = __webpack_require__(/*! ./ui/close/remove-active-tab-query-param-back */ "../assets/dev/js/editor/components/documents/hooks/ui/close/remove-active-tab-query-param-back.js"); /***/ }), /***/ "../assets/dev/js/editor/components/documents/hooks/ui/attach-preview/switch-to-active-document.js": /*!*********************************************************************************************************!*\ !*** ../assets/dev/js/editor/components/documents/hooks/ui/attach-preview/switch-to-active-document.js ***! \*********************************************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = exports.SwitchToActiveDocument = void 0; var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js")); var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js")); var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js")); var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js")); var _queryParams = __webpack_require__(/*! elementor-editor-utils/query-params */ "../assets/dev/js/editor/utils/query-params.js"); function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } /** * Switch to the document in the `active-document` query param on initial Editor load. * This hook runs only once, when the initial document has been attached. */ var SwitchToActiveDocument = exports.SwitchToActiveDocument = /*#__PURE__*/function (_$e$modules$hookUI$Af) { function SwitchToActiveDocument() { (0, _classCallCheck2.default)(this, SwitchToActiveDocument); return _callSuper(this, SwitchToActiveDocument, arguments); } (0, _inherits2.default)(SwitchToActiveDocument, _$e$modules$hookUI$Af); return (0, _createClass2.default)(SwitchToActiveDocument, [{ key: "getCommand", value: function getCommand() { return 'editor/documents/attach-preview'; } }, { key: "getId", value: function getId() { return 'switch-to-active-document'; } }, { key: "getConditions", value: function getConditions() { if (this.constructor.calledOnce) { return false; } return elementor.documents.getCurrentId() === elementor.config.initial_document.id; } }, { key: "apply", value: function () { var _apply = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() { var activeDocumentId, isLoadedAlready, _t; return _regenerator.default.wrap(function (_context) { while (1) switch (_context.prev = _context.next) { case 0: this.constructor.calledOnce = true; activeDocumentId = parseInt((0, _queryParams.getQueryParam)('active-document')), isLoadedAlready = activeDocumentId === elementor.documents.getCurrentId(); if (!(isNaN(activeDocumentId) || isLoadedAlready)) { _context.next = 1; break; } return _context.abrupt("return"); case 1: _context.prev = 1; _context.next = 2; return $e.run('editor/documents/switch', { id: activeDocumentId, mode: 'autosave' }); case 2: _context.next = 4; break; case 3: _context.prev = 3; _t = _context["catch"](1); $e.run('editor/documents/switch', { id: elementor.config.initial_document.id, mode: 'autosave' }); (0, _queryParams.removeQueryParam)('active-document'); case 4: case "end": return _context.stop(); } }, _callee, this, [[1, 3]]); })); function apply() { return _apply.apply(this, arguments); } return apply; }() }]); }($e.modules.hookUI.After); (0, _defineProperty2.default)(SwitchToActiveDocument, "calledOnce", false); var _default = exports["default"] = SwitchToActiveDocument; /***/ }), /***/ "../assets/dev/js/editor/components/documents/hooks/ui/close/remove-active-document-query-param.js": /*!*********************************************************************************************************!*\ !*** ../assets/dev/js/editor/components/documents/hooks/ui/close/remove-active-document-query-param.js ***! \*********************************************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = exports.RemoveActiveDocumentQueryParam = void 0; var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js")); var _queryParams = __webpack_require__(/*! elementor-editor-utils/query-params */ "../assets/dev/js/editor/utils/query-params.js"); function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } var RemoveActiveDocumentQueryParam = exports.RemoveActiveDocumentQueryParam = /*#__PURE__*/function (_$e$modules$hookUI$Af) { function RemoveActiveDocumentQueryParam() { (0, _classCallCheck2.default)(this, RemoveActiveDocumentQueryParam); return _callSuper(this, RemoveActiveDocumentQueryParam, arguments); } (0, _inherits2.default)(RemoveActiveDocumentQueryParam, _$e$modules$hookUI$Af); return (0, _createClass2.default)(RemoveActiveDocumentQueryParam, [{ key: "getCommand", value: function getCommand() { return 'editor/documents/close'; } }, { key: "getId", value: function getId() { return 'remove-active-document-query-param'; } }, { key: "apply", value: function apply(args) { var activeDocumentId = parseInt((0, _queryParams.getQueryParam)('active-document')), closedDocumentId = parseInt(args.id); if (activeDocumentId === closedDocumentId) { (0, _queryParams.removeQueryParam)('active-document'); } args.previous_active_document_id = activeDocumentId; } }]); }($e.modules.hookUI.After); var _default = exports["default"] = RemoveActiveDocumentQueryParam; /***/ }), /***/ "../assets/dev/js/editor/components/documents/hooks/ui/close/remove-active-tab-query-param-back.js": /*!*********************************************************************************************************!*\ !*** ../assets/dev/js/editor/components/documents/hooks/ui/close/remove-active-tab-query-param-back.js ***! \*********************************************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = exports.RemoveActiveTabQueryParamBack = void 0; var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js")); var _queryParams = __webpack_require__(/*! elementor-editor-utils/query-params */ "../assets/dev/js/editor/utils/query-params.js"); function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } var RemoveActiveTabQueryParamBack = exports.RemoveActiveTabQueryParamBack = /*#__PURE__*/function (_$e$modules$hookUI$Af) { function RemoveActiveTabQueryParamBack() { (0, _classCallCheck2.default)(this, RemoveActiveTabQueryParamBack); return _callSuper(this, RemoveActiveTabQueryParamBack, arguments); } (0, _inherits2.default)(RemoveActiveTabQueryParamBack, _$e$modules$hookUI$Af); return (0, _createClass2.default)(RemoveActiveTabQueryParamBack, [{ key: "getCommand", value: function getCommand() { return 'panel/global/back'; } }, { key: "getId", value: function getId() { return 'remove-active-tab-query-param-back'; } }, { key: "apply", value: function apply() { var activeTab = (0, _queryParams.getQueryParam)('active-tab'); if (activeTab) { (0, _queryParams.removeQueryParam)('active-tab'); } } }]); }($e.modules.hookUI.After); var _default = exports["default"] = RemoveActiveTabQueryParamBack; /***/ }), /***/ "../assets/dev/js/editor/components/documents/hooks/ui/close/remove-active-tab-query-param.js": /*!****************************************************************************************************!*\ !*** ../assets/dev/js/editor/components/documents/hooks/ui/close/remove-active-tab-query-param.js ***! \****************************************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = exports.RemoveActiveTabQueryParam = void 0; var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js")); var _queryParams = __webpack_require__(/*! elementor-editor-utils/query-params */ "../assets/dev/js/editor/utils/query-params.js"); function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } var RemoveActiveTabQueryParam = exports.RemoveActiveTabQueryParam = /*#__PURE__*/function (_$e$modules$hookUI$Af) { function RemoveActiveTabQueryParam() { (0, _classCallCheck2.default)(this, RemoveActiveTabQueryParam); return _callSuper(this, RemoveActiveTabQueryParam, arguments); } (0, _inherits2.default)(RemoveActiveTabQueryParam, _$e$modules$hookUI$Af); return (0, _createClass2.default)(RemoveActiveTabQueryParam, [{ key: "getCommand", value: function getCommand() { return 'editor/documents/close'; } }, { key: "getId", value: function getId() { return 'remove-active-tab-query-param'; } }, { key: "apply", value: function apply(args) { var activeTab = (0, _queryParams.getQueryParam)('active-tab'), activeDocumentId = parseInt(args.previous_active_document_id), closedDocumentId = parseInt(args.id); if (activeDocumentId === closedDocumentId && activeTab) { (0, _queryParams.removeQueryParam)('active-tab'); } } }]); }($e.modules.hookUI.After); var _default = exports["default"] = RemoveActiveTabQueryParam; /***/ }), /***/ "../assets/dev/js/editor/components/documents/hooks/ui/open/clear-dynamic-tags-cache.js": /*!**********************************************************************************************!*\ !*** ../assets/dev/js/editor/components/documents/hooks/ui/open/clear-dynamic-tags-cache.js ***! \**********************************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = exports.ClearDynamicTagsCache = void 0; var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js")); function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } var ClearDynamicTagsCache = exports.ClearDynamicTagsCache = /*#__PURE__*/function (_$e$modules$hookUI$Be) { function ClearDynamicTagsCache() { (0, _classCallCheck2.default)(this, ClearDynamicTagsCache); return _callSuper(this, ClearDynamicTagsCache, arguments); } (0, _inherits2.default)(ClearDynamicTagsCache, _$e$modules$hookUI$Be); return (0, _createClass2.default)(ClearDynamicTagsCache, [{ key: "getCommand", value: function getCommand() { return 'editor/documents/open'; } }, { key: "getId", value: function getId() { return 'clear-dynamic-tags-cache-on-document-open'; } }, { key: "apply", value: function apply() { elementor.dynamicTags.cleanCache(); } }]); }($e.modules.hookUI.Before); var _default = exports["default"] = ClearDynamicTagsCache; /***/ }), /***/ "../assets/dev/js/editor/components/documents/hooks/ui/open/set-active-document-query-param.js": /*!*****************************************************************************************************!*\ !*** ../assets/dev/js/editor/components/documents/hooks/ui/open/set-active-document-query-param.js ***! \*****************************************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = exports.SetActiveDocumentQueryParam = void 0; var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js")); var _queryParams = __webpack_require__(/*! elementor-editor-utils/query-params */ "../assets/dev/js/editor/utils/query-params.js"); function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } var SetActiveDocumentQueryParam = exports.SetActiveDocumentQueryParam = /*#__PURE__*/function (_$e$modules$hookUI$Af) { function SetActiveDocumentQueryParam() { (0, _classCallCheck2.default)(this, SetActiveDocumentQueryParam); return _callSuper(this, SetActiveDocumentQueryParam, arguments); } (0, _inherits2.default)(SetActiveDocumentQueryParam, _$e$modules$hookUI$Af); return (0, _createClass2.default)(SetActiveDocumentQueryParam, [{ key: "getCommand", value: function getCommand() { return 'editor/documents/open'; } }, { key: "getId", value: function getId() { return 'set-active-document-query-param'; } }, { key: "getConditions", value: function getConditions(args) { // Don't run for the initial/default document because it's redundant. return parseInt(args.id) !== parseInt(elementor.config.initial_document.id); } }, { key: "apply", value: function apply(args) { var id = parseInt(args.id); if (!isNaN(id)) { (0, _queryParams.setQueryParam)('active-document', args.id); } } }]); }($e.modules.hookUI.After); var _default = exports["default"] = SetActiveDocumentQueryParam; /***/ }), /***/ "../assets/dev/js/editor/components/documents/hooks/ui/switch/switch-to-active-tab.js": /*!********************************************************************************************!*\ !*** ../assets/dev/js/editor/components/documents/hooks/ui/switch/switch-to-active-tab.js ***! \********************************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = exports.SwitchToActiveTab = void 0; var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js")); var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js")); var _queryParams = __webpack_require__(/*! elementor-editor-utils/query-params */ "../assets/dev/js/editor/utils/query-params.js"); function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } var SwitchToActiveTab = exports.SwitchToActiveTab = /*#__PURE__*/function (_$e$modules$hookUI$Af) { function SwitchToActiveTab() { (0, _classCallCheck2.default)(this, SwitchToActiveTab); return _callSuper(this, SwitchToActiveTab, arguments); } (0, _inherits2.default)(SwitchToActiveTab, _$e$modules$hookUI$Af); return (0, _createClass2.default)(SwitchToActiveTab, [{ key: "getCommand", value: function getCommand() { return 'editor/documents/switch'; } }, { key: "getId", value: function getId() { return 'switch-to-active-tab'; } }, { key: "getConditions", value: function getConditions() { if (this.constructor.calledOnce) { return false; } return true; } }, { key: "apply", value: function apply() { this.constructor.calledOnce = true; try { var activeTab = (0, _queryParams.getQueryParam)('active-tab'); if (activeTab) { $e.route('panel/global/' + activeTab); } } catch (e) { (0, _queryParams.removeQueryParam)('active-tab'); } } }]); }($e.modules.hookUI.After); (0, _defineProperty2.default)(SwitchToActiveTab, "calledOnce", false); var _default = exports["default"] = SwitchToActiveTab; /***/ }), /***/ "../assets/dev/js/editor/components/documents/models/editor.js": /*!*********************************************************************!*\ !*** ../assets/dev/js/editor/components/documents/models/editor.js ***! \*********************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js")); var Editor = exports["default"] = /*#__PURE__*/(0, _createClass2.default)(function Editor() { (0, _classCallCheck2.default)(this, Editor); /** * Editor status. * * @type {'open'|'closed'} */ (0, _defineProperty2.default)(this, "status", 'closed'); /** * Is document still saving?. * * @type {boolean} */ (0, _defineProperty2.default)(this, "isSaving", false); /** * Is document changed?. * * @type {boolean} */ (0, _defineProperty2.default)(this, "isChanged", false); /** * Is document changed during save?. * * @type {boolean} */ (0, _defineProperty2.default)(this, "isChangedDuringSave", false); /** * Is document saved? * * @type {boolean} */ (0, _defineProperty2.default)(this, "isSaved", true); /** * Last save history id. * * @type {number} */ (0, _defineProperty2.default)(this, "lastSaveHistoryId", 0); }); /***/ }), /***/ "../assets/dev/js/editor/components/dynamic-tags/control-behavior.js": /*!***************************************************************************!*\ !*** ../assets/dev/js/editor/components/dynamic-tags/control-behavior.js ***! \***************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"]; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js")); var TagPanelView = __webpack_require__(/*! elementor-dynamic-tags/tag-panel-view */ "../assets/dev/js/editor/components/dynamic-tags/tag-panel-view.js"); module.exports = Marionette.Behavior.extend({ tagView: null, listenerAttached: false, initialize: function initialize() { if (!this.listenerAttached) { this.listenTo(this.view.options.container.settings, 'change:external:__dynamic__', this.onAfterExternalChange); this.listenerAttached = true; } }, shouldRenderTools: function shouldRenderTools() { var hasDefault = this.getOption('dynamicSettings').default; if (hasDefault) { return false; } var isFeatureAvailableToUser = elementor.helpers.hasPro() && !elementor.helpers.hasProAndNotConnected(), hasTags = this.getOption('tags').length > 0; return !isFeatureAvailableToUser || hasTags; }, renderTools: function renderTools() { var _this = this; if (!this.shouldRenderTools()) { return; } var $dynamicSwitcher = jQuery(Marionette.Renderer.render('#tmpl-elementor-control-dynamic-switcher')); $dynamicSwitcher.on('click', function (event) { return _this.onDynamicSwitcherClick(event); }); this.$el.find('.elementor-control-dynamic-switcher-wrapper').append($dynamicSwitcher); this.ui.dynamicSwitcher = $dynamicSwitcher; if ('color' === this.view.model.get('type')) { if (this.view.colorPicker) { this.moveDynamicSwitcherToColorPicker(); } else { setTimeout(function () { return _this.moveDynamicSwitcherToColorPicker(); }); } } // Add a Tipsy Tooltip to the Dynamic Switcher this.ui.dynamicSwitcher.tipsy({ title: function title() { return this.getAttribute('data-tooltip'); }, gravity: 's' }); }, moveDynamicSwitcherToColorPicker: function moveDynamicSwitcherToColorPicker() { var $colorPickerToolsContainer = this.view.colorPicker.$pickerToolsContainer; this.ui.dynamicSwitcher.removeClass('elementor-control-unit-1').addClass('e-control-tool'); var $eyedropper = $colorPickerToolsContainer.find('.elementor-control-element-color-picker'); if ($eyedropper.length) { this.ui.dynamicSwitcher.insertBefore($eyedropper); } else { $colorPickerToolsContainer.append(this.ui.dynamicSwitcher); } }, toggleDynamicClass: function toggleDynamicClass() { this.$el.toggleClass('elementor-control-dynamic-value', this.isDynamicMode()); }, isDynamicMode: function isDynamicMode() { var dynamicSettings = this.view.container.settings.get('__dynamic__'); return !!(dynamicSettings && dynamicSettings[this.view.model.get('name')]); }, createTagsList: function createTagsList() { var tags = _.groupBy(this.getOption('tags'), 'group'), groups = elementor.dynamicTags.getConfig('groups'), $tagsList = this.ui.tagsList = jQuery('
', { class: 'elementor-tags-list' }), $tagsListInner = jQuery('
', { class: 'elementor-tags-list__inner' }); $tagsList.append($tagsListInner); jQuery.each(groups, function (groupName) { var groupTags = tags[groupName]; if (!groupTags) { return; } var group = this, $groupTitle = jQuery('
', { class: 'elementor-tags-list__group-title' }).text(group.title); $tagsListInner.append($groupTitle); groupTags.forEach(function (tag) { var $tag = jQuery('
', { class: 'elementor-tags-list__item' }); $tag.text(tag.title).attr('data-tag-name', tag.name); $tagsListInner.append($tag); }); }); // Create and inject pro dynamic teaser template if Pro is not installed if (!elementor.helpers.hasPro() && Object.keys(tags).length) { var proTeaser = Marionette.Renderer.render('#tmpl-elementor-dynamic-tags-promo', { promotionUrl: elementor.config.dynamicPromotionURL.replace('%s', this.view.model.get('name')) }); $tagsListInner.append(proTeaser); } $tagsListInner.on('click', '.elementor-tags-list__item', this.onTagsListItemClick.bind(this)); elementorCommon.elements.$body.append($tagsList); }, getTagsList: function getTagsList() { if (!this.ui.tagsList) { this.createTagsList(); } return this.ui.tagsList; }, toggleTagsList: function toggleTagsList() { var $tagsList = this.getTagsList(); if ($tagsList.is(':visible')) { $tagsList.hide(); return; } var direction = elementorCommon.config.isRTL ? 'left' : 'right'; $tagsList.show().position({ my: "".concat(direction, " top"), at: "".concat(direction, " bottom+5"), of: this.ui.dynamicSwitcher }); }, setTagView: function setTagView(id, name, settings) { if (this.tagView) { this.tagView.destroy(); } var tagView = this.tagView = new TagPanelView({ id: id, name: name, settings: settings, controlName: this.view.model.get('name'), dynamicSettings: this.getOption('dynamicSettings') }), elementContainer = this.view.options.container, tagViewLabel = elementContainer.controls[tagView.options.controlName].label; tagView.options.container = new elementorModules.editor.Container({ type: 'dynamic', id: id, model: tagView.model, settings: tagView.model, view: tagView, parent: elementContainer, label: elementContainer.label + ' ' + tagViewLabel, controls: tagView.model.options.controls, renderer: elementContainer }); tagView.render(); this.$el.find('.elementor-control-tag-area').after(tagView.el); this.listenTo(tagView, 'remove', this.onTagViewRemove.bind(this)); }, setDefaultTagView: function setDefaultTagView() { var tagData = elementor.dynamicTags.tagTextToTagData(this.getDynamicValue()); this.setTagView(tagData.id, tagData.name, tagData.settings); }, tagViewToTagText: function tagViewToTagText() { var tagView = this.tagView; return elementor.dynamicTags.tagDataToTagText(tagView.getOption('id'), tagView.getOption('name'), tagView.model); }, getDynamicValue: function getDynamicValue() { return this.view.container.dynamic.get(this.view.model.get('name')); }, destroyTagView: function destroyTagView() { if (this.tagView) { this.tagView.destroy(); this.tagView = null; } }, showPromotion: function showPromotion() { var hasProAndNotConnected = elementor.helpers.hasProAndNotConnected(), dialogOptions = { title: __('Dynamic Content', 'elementor'), content: __('Create more personalized and dynamic sites by populating data from various sources with dozens of dynamic tags to choose from.', 'elementor'), targetElement: this.ui.dynamicSwitcher, position: { blockStart: '-10' }, actionButton: { url: hasProAndNotConnected ? elementorProEditorConfig.urls.connect : elementor.config.dynamicPromotionURL.replace('%s', this.view.model.get('name')), text: hasProAndNotConnected ? __('Connect & Activate', 'elementor') : __('Upgrade', 'elementor') } }; elementor.promotion.showDialog(dialogOptions); }, onRender: function onRender() { this.$el.addClass('elementor-control-dynamic'); this.renderTools(); this.toggleDynamicClass(); if (this.isDynamicMode()) { this.setDefaultTagView(); } }, onDynamicSwitcherClick: function onDynamicSwitcherClick(event) { event.stopPropagation(); if (this.getOption('tags').length) { this.toggleTagsList(); } else { this.showPromotion(); } }, onTagsListItemClick: function onTagsListItemClick(event) { var $tag = jQuery(event.currentTarget); this.setTagView(elementorCommon.helpers.getUniqueId(), $tag.data('tagName'), {}); // If an element has an active global value, disable it before applying the dynamic value. if (this.view.getGlobalKey()) { this.view.triggerMethod('unset:global:value'); } if (this.isDynamicMode()) { $e.run('document/dynamic/settings', { container: this.view.options.container, settings: (0, _defineProperty2.default)({}, this.view.model.get('name'), this.tagViewToTagText()) }); } else { $e.run('document/dynamic/enable', { container: this.view.options.container, settings: (0, _defineProperty2.default)({}, this.view.model.get('name'), this.tagViewToTagText()) }); } this.toggleDynamicClass(); this.toggleTagsList(); if (this.tagView.getTagConfig().settings_required) { this.tagView.showSettingsPopup(); } }, onTagViewRemove: function onTagViewRemove() { $e.run('document/dynamic/disable', { container: this.view.options.container, settings: (0, _defineProperty2.default)({}, this.view.model.get('name'), this.tagViewToTagText()) }); this.toggleDynamicClass(); }, onAfterExternalChange: function onAfterExternalChange() { this.destroyTagView(); if (this.isDynamicMode()) { this.setDefaultTagView(); } this.toggleDynamicClass(); }, onDestroy: function onDestroy() { this.destroyTagView(); if (this.ui.tagsList) { this.ui.tagsList.remove(); } } }); /***/ }), /***/ "../assets/dev/js/editor/components/dynamic-tags/manager.js": /*!******************************************************************!*\ !*** ../assets/dev/js/editor/components/dynamic-tags/manager.js ***! \******************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js")); function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } module.exports = elementorModules.Module.extend({ CACHE_KEY_NOT_FOUND_ERROR: 'Cache key not found', tags: { Base: __webpack_require__(/*! elementor-dynamic-tags/tag */ "../assets/dev/js/editor/components/dynamic-tags/tag.js") }, cache: {}, cacheRequests: {}, cacheCallbacks: [], getTagRenderPostId: function getTagRenderPostId(tag) { var _tag$editorRenderPost; return (_tag$editorRenderPost = tag.editorRenderPostId) !== null && _tag$editorRenderPost !== void 0 ? _tag$editorRenderPost : elementor.config.document.id; }, addCacheRequest: function addCacheRequest(tag) { var postId = this.getTagRenderPostId(tag); var cacheKey = this.createCacheKey(tag); if (!this.cacheRequests[postId]) { this.cacheRequests[postId] = {}; } this.cacheRequests[postId][cacheKey] = true; }, createCacheKey: function createCacheKey(tag) { var postId = this.getTagRenderPostId(tag); return btoa(tag.getOption('name')) + '-' + btoa(encodeURIComponent(JSON.stringify(tag.model))) + '-' + postId; }, loadTagDataFromCache: function loadTagDataFromCache(tag) { var cacheKey = this.createCacheKey(tag); if (undefined !== this.cache[cacheKey]) { return this.cache[cacheKey]; } var postId = this.getTagRenderPostId(tag); if (!this.cacheRequests[postId] || !this.cacheRequests[postId][cacheKey]) { this.addCacheRequest(tag); } }, loadCacheRequests: function loadCacheRequests() { var _this = this; var cacheRequests = this.cacheRequests, cacheCallbacks = this.cacheCallbacks; this.cacheRequests = {}; this.cacheCallbacks = []; var postIds = Object.keys(cacheRequests); if (0 === postIds.length) { cacheCallbacks.forEach(function (entry) { entry.callback(); }); return; } var pendingRequests = postIds.length; var onRequestComplete = function onRequestComplete() { pendingRequests -= 1; if (0 === pendingRequests) { cacheCallbacks.forEach(function (entry) { entry.callback(); }); } }; var needsUniqueIds = postIds.length > 1; var batchId = needsUniqueIds ? elementorCommon.helpers.getUniqueId() : null; postIds.forEach(function (postId) { elementorCommon.ajax.addRequest('render_tags', _objectSpread(_objectSpread({}, needsUniqueIds ? { unique_id: "render_tags-".concat(postId, "-").concat(batchId) } : {}), {}, { data: { post_id: Number(postId), tags: Object.keys(cacheRequests[postId]) }, success: function success(data) { _this.cache = _objectSpread(_objectSpread({}, _this.cache), data); onRequestComplete(); } })); }); }, refreshCacheFromServer: function refreshCacheFromServer(callback) { this.cacheCallbacks.push({ callback: callback }); this.loadCacheRequests(); }, getConfig: function getConfig(key) { return this.getItems(elementor.config.dynamicTags, key); }, parseTagsText: function parseTagsText(text, settings, parseCallback) { var self = this; if ('object' === settings.returnType) { return self.parseTagText(text, settings, parseCallback); } return text.replace(/\[elementor-tag[^\]]+]/g, function (tagText) { return self.parseTagText(tagText, settings, parseCallback); }); }, parseTagText: function parseTagText(tagText, settings, parseCallback) { var tagData = this.tagTextToTagData(tagText); if (!tagData) { if ('object' === settings.returnType) { return {}; } return ''; } return parseCallback(tagData.id, tagData.name, tagData.settings); }, tagTextToTagData: function tagTextToTagData(tagText) { var tagIDMatch = tagText.match(/id="(.*?(?="))"/), tagNameMatch = tagText.match(/name="(.*?(?="))"/), tagSettingsMatch = tagText.match(/settings="(.*?(?="]))/); if (!tagIDMatch || !tagNameMatch || !tagSettingsMatch) { return false; } return { id: tagIDMatch[1], name: tagNameMatch[1], settings: JSON.parse(decodeURIComponent(tagSettingsMatch[1])) }; }, createTag: function createTag(tagID, tagName, tagSettings) { var tagConfig = this.getConfig('tags.' + tagName); if (!tagConfig) { return; } var TagClass = this.tags[tagName] || this.tags.Base, model = new elementorModules.editor.elements.models.BaseSettings(tagSettings, { controls: tagConfig.controls }); return new TagClass({ id: tagID, name: tagName, model: model }); }, getTagDataContent: function getTagDataContent(tagID, tagName, tagSettings) { var tag = this.createTag(tagID, tagName, tagSettings); if (!tag) { return; } return tag.getContent(); }, tagDataToTagText: function tagDataToTagText(tagID, tagName, tagSettings) { tagSettings = encodeURIComponent(JSON.stringify(tagSettings && tagSettings.toJSON({ remove: ['default'] }) || {})); return '[elementor-tag id="' + tagID + '" name="' + tagName + '" settings="' + tagSettings + '"]'; }, tagContainerToTagText: function tagContainerToTagText(/** Container*/container) { return elementor.dynamicTags.tagDataToTagText(container.view.getOption('id'), container.view.getOption('name'), container.view.model); }, cleanCache: function cleanCache() { this.cache = {}; }, onInit: function onInit() { this.loadCacheRequests = _.debounce(this.loadCacheRequests, 300); } }); /***/ }), /***/ "../assets/dev/js/editor/components/dynamic-tags/tag-controls-stack-empty.js": /*!***********************************************************************************!*\ !*** ../assets/dev/js/editor/components/dynamic-tags/tag-controls-stack-empty.js ***! \***********************************************************************************/ /***/ ((module) => { "use strict"; module.exports = Marionette.ItemView.extend({ className: 'elementor-tag-controls-stack-empty', template: '#tmpl-elementor-tag-controls-stack-empty' }); /***/ }), /***/ "../assets/dev/js/editor/components/dynamic-tags/tag-controls-stack.js": /*!*****************************************************************************!*\ !*** ../assets/dev/js/editor/components/dynamic-tags/tag-controls-stack.js ***! \*****************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var EmptyView = __webpack_require__(/*! elementor-dynamic-tags/tag-controls-stack-empty */ "../assets/dev/js/editor/components/dynamic-tags/tag-controls-stack-empty.js"); module.exports = elementorModules.editor.views.ControlsStack.extend({ activeTab: 'content', template: _.noop, emptyView: EmptyView, isEmpty: function isEmpty() { // Ignore the section control return this.collection.length < 2; }, childViewOptions: function childViewOptions() { return { container: this.options.container }; }, getNamespaceArray: function getNamespaceArray() { var currentPageView = elementor.getPanelView().getCurrentPageView(), eventNamespace = currentPageView.getNamespaceArray(); eventNamespace.push(currentPageView.activeSection); eventNamespace.push(this.getOption('controlName')); eventNamespace.push(this.getOption('name')); return eventNamespace; }, onRenderTemplate: function onRenderTemplate() { this.activateFirstSection(); } }); /***/ }), /***/ "../assets/dev/js/editor/components/dynamic-tags/tag-panel-view.js": /*!*************************************************************************!*\ !*** ../assets/dev/js/editor/components/dynamic-tags/tag-panel-view.js ***! \*************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var TagControlsStack = __webpack_require__(/*! elementor-dynamic-tags/tag-controls-stack */ "../assets/dev/js/editor/components/dynamic-tags/tag-controls-stack.js"); module.exports = Marionette.ItemView.extend({ className: 'elementor-dynamic-cover e-input-style', tagControlsStack: null, templateHelpers: function templateHelpers() { var helpers = {}; if (this.model) { helpers.controls = this.model.options.controls; } return helpers; }, ui: { remove: '.elementor-dynamic-cover__remove' }, events: function events() { var events = { 'click @ui.remove': 'onRemoveClick' }; if (this.hasSettings()) { events.click = 'onClick'; } return events; }, getTemplate: function getTemplate() { var config = this.getTagConfig(), templateFunction = Marionette.TemplateCache.get('#tmpl-elementor-control-dynamic-cover'), renderedTemplate = Marionette.Renderer.render(templateFunction, { hasSettings: this.hasSettings(), isRemovable: !this.getOption('dynamicSettings').default, title: config.title, content: config.panel_template }); return Marionette.TemplateCache.prototype.compileTemplate(renderedTemplate.trim()); }, getTagConfig: function getTagConfig() { return elementor.dynamicTags.getConfig('tags.' + this.getOption('name')); }, initSettingsPopup: function initSettingsPopup() { var settingsPopupOptions = { className: 'elementor-tag-settings-popup', position: { my: 'left top+5', at: 'left bottom', of: this.$el, autoRefresh: true }, hide: { ignore: '.select2-container' } }; var settingsPopup = elementorCommon.dialogsManager.createWidget('buttons', settingsPopupOptions); this.getSettingsPopup = function () { return settingsPopup; }; }, hasSettings: function hasSettings() { return !!Object.values(this.getTagConfig().controls).length; }, showSettingsPopup: function showSettingsPopup() { if (!this.tagControlsStack) { this.initTagControlsStack(); } var settingsPopup = this.getSettingsPopup(); if (settingsPopup.isVisible()) { return; } settingsPopup.show(); }, initTagControlsStack: function initTagControlsStack() { this.tagControlsStack = new TagControlsStack({ model: this.model, controls: this.model.controls, name: this.options.name, controlName: this.options.controlName, container: this.options.container, el: this.getSettingsPopup().getElements('message')[0] }); this.tagControlsStack.render(); }, initModel: function initModel() { this.model = new elementorModules.editor.elements.models.BaseSettings(this.getOption('settings'), { controls: this.getTagConfig().controls }); }, initialize: function initialize() { // The `model` should always be available. this.initModel(); if (!this.hasSettings()) { return; } this.initSettingsPopup(); this.listenTo(this.model, 'change', this.render); }, onClick: function onClick() { this.showSettingsPopup(); }, onRemoveClick: function onRemoveClick(event) { event.stopPropagation(); this.destroy(); this.trigger('remove'); }, onDestroy: function onDestroy() { if (this.hasSettings()) { this.getSettingsPopup().destroy(); } if (this.tagControlsStack) { this.tagControlsStack.destroy(); } } }); /***/ }), /***/ "../assets/dev/js/editor/components/dynamic-tags/tag.js": /*!**************************************************************!*\ !*** ../assets/dev/js/editor/components/dynamic-tags/tag.js ***! \**************************************************************/ /***/ ((module) => { "use strict"; module.exports = Marionette.ItemView.extend({ hasTemplate: true, tagName: 'span', className: function className() { return 'elementor-tag'; }, getTemplate: function getTemplate() { if (!this.hasTemplate) { return false; } return Marionette.TemplateCache.get('#tmpl-elementor-tag-' + this.getOption('name') + '-content'); }, initialize: function initialize() { try { this.getTemplate(); } catch (e) { this.hasTemplate = false; } }, getConfig: function getConfig(key) { var config = elementor.dynamicTags.getConfig('tags.' + this.getOption('name')); if (key) { return config[key]; } return config; }, getContent: function getContent() { var contentType = this.getConfig('content_type'), data; if (!this.hasTemplate) { data = elementor.dynamicTags.loadTagDataFromCache(this); if (undefined === data) { throw new Error(elementor.dynamicTags.CACHE_KEY_NOT_FOUND_ERROR); } } if ('ui' === contentType) { this.render(); if (this.hasTemplate) { return this.el.outerHTML; } if (this.getConfig('wrapped_tag')) { data = jQuery(data).html(); } this.$el.html(data); } return data; }, onRender: function onRender() { this.el.id = 'elementor-tag-' + this.getOption('id'); } }); /***/ }), /***/ "../assets/dev/js/editor/components/hotkeys/component.js": /*!***************************************************************!*\ !*** ../assets/dev/js/editor/components/hotkeys/component.js ***! \***************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js")); var _componentModalBase = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/component-modal-base */ "../modules/web-cli/assets/js/modules/component-modal-base.js")); var _modalLayout = _interopRequireDefault(__webpack_require__(/*! ./modal-layout */ "../assets/dev/js/editor/components/hotkeys/modal-layout.js")); function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } var Component = exports["default"] = /*#__PURE__*/function (_ComponentModalBase) { function Component() { (0, _classCallCheck2.default)(this, Component); return _callSuper(this, Component, arguments); } (0, _inherits2.default)(Component, _ComponentModalBase); return (0, _createClass2.default)(Component, [{ key: "getNamespace", value: function getNamespace() { return 'shortcuts'; } }, { key: "defaultShortcuts", value: function defaultShortcuts() { return { '': { keys: 'ctrl+?, shift+?', exclude: ['input'] } }; } }, { key: "getModalLayout", value: function getModalLayout() { return _modalLayout.default; } }]); }(_componentModalBase.default); /***/ }), /***/ "../assets/dev/js/editor/components/hotkeys/hotkeys.js": /*!*************************************************************!*\ !*** ../assets/dev/js/editor/components/hotkeys/hotkeys.js ***! \*************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js")); var _component = _interopRequireDefault(__webpack_require__(/*! ./component */ "../assets/dev/js/editor/components/hotkeys/component.js")); function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } var _default = exports["default"] = /*#__PURE__*/function (_elementorModules$Mod) { function _default() { (0, _classCallCheck2.default)(this, _default); return _callSuper(this, _default, arguments); } (0, _inherits2.default)(_default, _elementorModules$Mod); return (0, _createClass2.default)(_default, [{ key: "onInit", value: function onInit() { $e.components.register(new _component.default({ manager: this })); } }]); }(elementorModules.Module); /***/ }), /***/ "../assets/dev/js/editor/components/hotkeys/modal-content.js": /*!*******************************************************************!*\ !*** ../assets/dev/js/editor/components/hotkeys/modal-content.js ***! \*******************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js")); var _environment = _interopRequireDefault(__webpack_require__(/*! elementor-common/utils/environment */ "../core/common/assets/js/utils/environment.js")); function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } var _default = exports["default"] = /*#__PURE__*/function (_Marionette$LayoutVie) { function _default() { (0, _classCallCheck2.default)(this, _default); return _callSuper(this, _default, arguments); } (0, _inherits2.default)(_default, _Marionette$LayoutVie); return (0, _createClass2.default)(_default, [{ key: "id", value: function id() { return 'elementor-hotkeys'; } }, { key: "templateHelpers", value: function templateHelpers() { return { environment: _environment.default }; } }, { key: "getTemplate", value: function getTemplate() { return '#tmpl-elementor-hotkeys'; } }]); }(Marionette.LayoutView); /***/ }), /***/ "../assets/dev/js/editor/components/hotkeys/modal-layout.js": /*!******************************************************************!*\ !*** ../assets/dev/js/editor/components/hotkeys/modal-layout.js ***! \******************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"]; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "../node_modules/@babel/runtime/helpers/get.js")); var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js")); var _modalContent = _interopRequireDefault(__webpack_require__(/*! ./modal-content */ "../assets/dev/js/editor/components/hotkeys/modal-content.js")); function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } function _superPropGet(t, o, e, r) { var p = (0, _get2.default)((0, _getPrototypeOf2.default)(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } var _default = exports["default"] = /*#__PURE__*/function (_elementorModules$com) { function _default() { (0, _classCallCheck2.default)(this, _default); return _callSuper(this, _default, arguments); } (0, _inherits2.default)(_default, _elementorModules$com); return (0, _createClass2.default)(_default, [{ key: "getModalOptions", value: function getModalOptions() { return { id: 'elementor-hotkeys__modal' }; } }, { key: "getLogoOptions", value: function getLogoOptions() { return { title: __('Keyboard Shortcuts', 'elementor') }; } }, { key: "initialize", value: function initialize() { for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _superPropGet(_default, "initialize", this, 3)(args); this.showLogo(); this.showContentView(); } }, { key: "showContentView", value: function showContentView() { this.modalContent.show(new _modalContent.default()); } }]); }(elementorModules.common.views.modal.Layout); /***/ }), /***/ "../assets/dev/js/editor/components/icons-manager/classes/icon-library.js": /*!********************************************************************************!*\ !*** ../assets/dev/js/editor/components/icons-manager/classes/icon-library.js ***! \********************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; var _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js")); var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js")); var _default = exports["default"] = /*#__PURE__*/function () { function _default() { var _this = this; (0, _classCallCheck2.default)(this, _default); (0, _defineProperty2.default)(this, "loaded", {}); (0, _defineProperty2.default)(this, "notifyCallback", null); (0, _defineProperty2.default)(this, "fetchIcons", function (library) { fetch(library.fetchJson, { mode: 'cors' }).then(function (res) { return res.json(); }).then(function (json) { library.icons = json.icons; return _this.normalizeIconList(library); }); }); (0, _defineProperty2.default)(this, "runCallback", function (library) { if ('function' !== typeof _this.notifyCallback) { return library; } return _this.notifyCallback(library); }); (0, _defineProperty2.default)(this, "initIconType", function (libraryConfig, callback) { _this.notifyCallback = callback; var store = elementor.iconManager.store; if (_this.loaded[libraryConfig.name]) { libraryConfig.icons = store.getIcons(libraryConfig); return _this.runCallback(libraryConfig); } // Enqueue CSS if (libraryConfig.enqueue) { libraryConfig.enqueue.forEach(function (assetURL) { var versionAddedURL = "".concat(assetURL).concat(libraryConfig !== null && libraryConfig !== void 0 && libraryConfig.ver ? '?ver=' + libraryConfig.ver : ''); elementor.helpers.enqueueEditorStylesheet(versionAddedURL); }); } if (libraryConfig.url) { var versionAddedURL = "".concat(libraryConfig.url).concat(libraryConfig !== null && libraryConfig !== void 0 && libraryConfig.ver ? '?ver=' + libraryConfig.ver : ''); elementor.helpers.enqueueEditorStylesheet(versionAddedURL); } // Already saved an stored if (store.isValid(libraryConfig)) { var data = store.get(store.getKey(libraryConfig)); return _this.normalizeIconList(data); } // Comes with icons if (libraryConfig.icons && libraryConfig.icons.length) { return _this.normalizeIconList(libraryConfig); } // Get icons from via ajax if (libraryConfig.fetchJson) { return _this.fetchIcons(libraryConfig); } // @todo: error handling }); } return (0, _createClass2.default)(_default, [{ key: "normalizeIconList", value: function normalizeIconList(library) { var icons = {}; var name; jQuery.each(library.icons, function (index, icon) { name = icon; if ('object' === (0, _typeof2.default)(name)) { name = Object.entries(name)[0][0]; } if (!name) { return; } icons[name] = { prefix: library.prefix, selector: library.prefix + name.trim(':'), name: elementorCommon.helpers.upperCaseWords(name).trim(':').split('-').join(' '), filter: name.trim(':'), displayPrefix: library.displayPrefix || library.prefix.replace('-', '') }; }); if (Object.keys(icons).length) { library.icons = icons; this.loaded[library.name] = true; elementor.iconManager.store.save(library); this.runCallback(library); } } }]); }(); /***/ }), /***/ "../assets/dev/js/editor/components/icons-manager/classes/store.js": /*!*************************************************************************!*\ !*** ../assets/dev/js/editor/components/icons-manager/classes/store.js ***! \*************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _Store = /*#__PURE__*/function () { function Store() { (0, _classCallCheck2.default)(this, Store); } return (0, _createClass2.default)(Store, [{ key: "save", value: function save(library) { elementorCommon.storage.set(_Store.getKey(library), library); } }, { key: "getIcons", value: function getIcons(library) { var data = this.get(_Store.getKey(library)); if (data && data.icons) { return data.icons; } return false; } }, { key: "get", value: function get(key) { return elementorCommon.storage.get(key); } }, { key: "isValid", value: function isValid(library) { var saved = this.get(_Store.getKey(library)); if (!saved) { return false; } if (saved.ver !== library.ver) { // @todo: delete from localStorage if version is invalid return false; } return saved.icons && saved.icons.length; } }], [{ key: "getKey", value: function getKey(library) { var name = library.name ? library.name : library; return "elementor_".concat(name, "_icons"); } }]); }(); var _default = exports["default"] = _Store; /***/ }), /***/ "../assets/dev/js/editor/components/icons-manager/components/icon-list.js": /*!********************************************************************************!*\ !*** ../assets/dev/js/editor/components/icons-manager/components/icon-list.js ***! \********************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js")); var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js")); var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js")); var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react")); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); } function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } var LazyIconList = /*#__PURE__*/function (_Component) { function LazyIconList() { var _this; (0, _classCallCheck2.default)(this, LazyIconList); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _callSuper(this, LazyIconList, [].concat(args)); (0, _defineProperty2.default)(_this, "state", { itemSize: { width: 0, height: 0 }, wrapperSize: { width: 0, height: 0 }, firstRowInView: 0 }); (0, _defineProperty2.default)(_this, "selectors", { item: '.elementor-icons-manager__tab__item', wrapper: 'elementor-icons-manager__tab__wrapper' }); (0, _defineProperty2.default)(_this, "attachScrollListener", function () { var element = document.getElementById(_this.selectors.wrapper); if (element) { element.addEventListener('scroll', _this.handleScroll); } }); (0, _defineProperty2.default)(_this, "maybeMeasureItem", function () { if (_this.state.itemSize.width) { return; } // CSS Item Padding var itemPadding = 20, testElement = document.querySelector(_this.selectors.item); if (!testElement) { return; } var wrapper = document.getElementById(_this.selectors.wrapper); var newState = { itemSize: { width: testElement.offsetWidth + itemPadding, height: testElement.offsetHeight + itemPadding }, wrapperSize: { width: wrapper.offsetWidth, height: wrapper.clientHeight } }; return _this.setState(newState, function () { _this.maybeScrollToSelected(); }); }); (0, _defineProperty2.default)(_this, "maybeScrollToSelected", function () { if (!_this.hasSelected()) { return; } var selectedIndex = _this.props.selectedIndex, _this$state = _this.state, wrapperSize = _this$state.wrapperSize, itemSize = _this$state.itemSize, itemsInRow = Math.floor(wrapperSize.width / itemSize.width), selectedItemRow = Math.ceil(selectedIndex / itemsInRow) - 1, scrollTop = selectedItemRow * itemSize.height; setTimeout(function () { _this.props.parentRef.current.scrollTo({ top: scrollTop, left: 0, behavior: 'auto' }); }, 0); }); (0, _defineProperty2.default)(_this, "handleScroll", function () { _this.clearDebounceScrollCallback(); _this._debounce = setTimeout(function () { var element = document.getElementById(_this.selectors.wrapper); var itemSize = _this.state.itemSize; _this.setState({ firstRowInView: Math.floor(element.scrollTop / itemSize.height) }); }, 10); }); (0, _defineProperty2.default)(_this, "render", function () { var _this$state2 = _this.state, itemSize = _this$state2.itemSize, wrapperSize = _this$state2.wrapperSize; var firstRowInView = _this.state.firstRowInView; if (!itemSize.width) { return _this.renderFirstElementForMeasurement(); } var items = _this.props.items, itemsInRow = Math.floor(wrapperSize.width / itemSize.width), totalRows = Math.ceil(items.length / itemsInRow), spareRows = 4; var rowsInView = Math.ceil(wrapperSize.height / itemSize.height) + spareRows; if (rowsInView > totalRows) { rowsInView = totalRows; } // Prevent scroll overflow if (firstRowInView > totalRows - rowsInView) { firstRowInView = totalRows - rowsInView; } var tailRows = totalRows - firstRowInView - rowsInView, firstItemIndexInWindow = firstRowInView * itemsInRow, lastItemIndexInWindow = (firstRowInView + rowsInView) * itemsInRow - 1, itemsInView = items.slice(firstItemIndexInWindow, lastItemIndexInWindow + 1), offsetStyle = { height: "".concat(firstRowInView * itemSize.height, "px") }, tailStyle = { height: "".concat(tailRows * itemSize.height, "px") }; return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement("div", { className: 'elementor-icons-manager__tab__content__offset', style: offsetStyle }), /*#__PURE__*/_react.default.createElement("div", { id: 'elementor-icons-manager__tab__content' }, itemsInView), /*#__PURE__*/_react.default.createElement("div", { className: 'elementor-icons-manager__tab__content__tail', style: tailStyle })); }); return _this; } (0, _inherits2.default)(LazyIconList, _Component); return (0, _createClass2.default)(LazyIconList, [{ key: "componentDidMount", value: function componentDidMount() { this.attachScrollListener(); this.maybeMeasureItem(); } }, { key: "componentWillUnmount", value: function componentWillUnmount() { this.clearDebounceScrollCallback(); var element = document.getElementById(this.selectors.wrapper); if (element) { element.removeEventListener('scroll', this.handleScroll); } } }, { key: "clearDebounceScrollCallback", value: function clearDebounceScrollCallback() { clearTimeout(this._debounce); } }, { key: "renderFirstElementForMeasurement", value: function renderFirstElementForMeasurement() { return /*#__PURE__*/_react.default.createElement("div", { id: 'elementor-icons-manager__tab__content' }, this.props.items[0]); } }, { key: "hasSelected", value: function hasSelected() { return -1 !== this.props.selectedIndex; } }]); }(_react.Component); var _default = exports["default"] = LazyIconList; LazyIconList.propTypes = { items: _propTypes.default.array, selectedIndex: _propTypes.default.number, parentRef: _propTypes.default.any }; /***/ }), /***/ "../assets/dev/js/editor/components/icons-manager/components/icon-manager.js": /*!***********************************************************************************!*\ !*** ../assets/dev/js/editor/components/icons-manager/components/icon-manager.js ***! \***********************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"]; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports.renderIconManager = exports["default"] = void 0; var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react")); var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js")); var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js")); var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js")); var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js")); var _react2 = _interopRequireDefault(__webpack_require__(/*! elementor-utils/react */ "../assets/dev/js/utils/react.js")); var _tab = _interopRequireDefault(__webpack_require__(/*! ./tab */ "../assets/dev/js/editor/components/icons-manager/components/tab.js")); var _iconsGoPro = _interopRequireDefault(__webpack_require__(/*! ./icons-go-pro */ "../assets/dev/js/editor/components/icons-manager/components/icons-go-pro.js")); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); } function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } var IconsManager = /*#__PURE__*/function (_Component) { function IconsManager() { var _this; (0, _classCallCheck2.default)(this, IconsManager); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _callSuper(this, IconsManager, [].concat(args)); (0, _defineProperty2.default)(_this, "scrollViewRef", (0, _react.createRef)()); (0, _defineProperty2.default)(_this, "state", { activeTab: _this.props.activeTab, selected: { library: '', value: '' }, iconTabs: elementor.config.icons.libraries, loaded: _this.props.loaded, filter: '' }); (0, _defineProperty2.default)(_this, "cache", {}); (0, _defineProperty2.default)(_this, "loadAllTabs", function () { var loaded = _this.state.loaded; var icons = _this.props.icons; icons.forEach(function (tabSettings) { if (loaded[tabSettings.name]) { return; } if (-1 < ['all', 'recommended'].indexOf(tabSettings.name)) { return; } elementor.iconManager.library.initIconType(_objectSpread({}, tabSettings), function (library) { _this.cache[library.name] = library; loaded[tabSettings.name] = true; }); }); loaded.all = true; loaded.recommended = true; _this.setState({ loaded: loaded }); }); (0, _defineProperty2.default)(_this, "getActiveTab", function () { var activeTab = _this.state.activeTab; var loaded = _this.state.loaded, icons = _this.props.icons; if (!activeTab) { if (_this.props.activeTab) { activeTab = _this.props.activeTab; } } if ('GoPro' === activeTab) { return activeTab; } if (!loaded[activeTab]) { return false; } var tabSettings = _objectSpread({}, icons.filter(function (tab) { return tab.name === activeTab; })[0]); if (loaded[activeTab]) { return _objectSpread({}, tabSettings); } if ('all' === tabSettings.name && !loaded.all) { return _this.loadAllTabs(); } elementor.iconManager.library.initIconType(_objectSpread({}, tabSettings), function (library) { _this.cache[library.name] = library; _this.updateLoaded(library.name); }); return false; }); (0, _defineProperty2.default)(_this, "getIconTabsLinks", function () { var native = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; return _this.props.icons.map(function (tab) { if (native ^ _this.isNativeTab(tab)) { return ''; } var isCurrentTab = tab.name === _this.state.activeTab; var className = 'elementor-icons-manager__tab-link'; if (isCurrentTab) { className += ' elementor-active'; } return ( /*#__PURE__*/ // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions _react.default.createElement("div", { className: className, key: tab.name, onClick: function onClick() { if (isCurrentTab) { return; } _this.setState({ activeTab: tab.name }); } }, /*#__PURE__*/_react.default.createElement("i", { className: tab.labelIcon }), tab.label) ); }); }); (0, _defineProperty2.default)(_this, "getActiveTabIcons", function (activeTab) { if (activeTab.name) { return _this.getActiveTabIcons(activeTab.name); } if (_this.cache[activeTab]) { return _this.cache[activeTab].icons; } if ('recommended' === activeTab) { return _this.state.iconTabs[0].icons; } if ('all' === activeTab) { return _this.getAllIcons(); } if (!_this.state.loaded[activeTab]) { var librarySettings = _this.props.icons.filter(function (library) { return activeTab === library.name; }); return elementor.iconManager.library.initIconType(_objectSpread({}, librarySettings[0]), function (library) { _this.cache[library.name] = library; _this.updateLoaded(library.name); }); } return elementor.iconManager.store.getIcons(activeTab); }); (0, _defineProperty2.default)(_this, "getAllIcons", function () { if (_this.cache.all) { return _this.cache.all.icons; } var icons = {}; _this.props.icons.forEach(function (tabSettings) { if ('all' === tabSettings.name || 'recommended' === tabSettings.name) { return; } icons[tabSettings.name] = _this.getActiveTabIcons(tabSettings.name); }); _this.cache.all = { icons: icons }; return icons; }); (0, _defineProperty2.default)(_this, "handleSearch", function (event) { var filter = event.target.value; if (filter && '' !== filter) { filter = filter.toLocaleLowerCase(); if (_this.state.filter === filter) { return; } } else { filter = ''; } _this.setState({ filter: filter }); }); (0, _defineProperty2.default)(_this, "setSelected", function (selected) { elementor.iconManager.setSettings('selectedIcon', selected); _this.setState({ selected: selected }); }); (0, _defineProperty2.default)(_this, "getSelected", function () { var selected = _this.state.selected; if ('' === selected.value && _this.props.selected && _this.props.selected.value) { selected = { value: _this.props.selected.value, library: _this.props.selected.library }; } return selected; }); (0, _defineProperty2.default)(_this, "render", function () { var activeTab = _this.getActiveTab(), activeTabName = activeTab.name ? activeTab.name : activeTab, _this$props$showSearc = _this.props.showSearch, showSearch = _this$props$showSearc === void 0 ? true : _this$props$showSearc, filter = _this.state.filter; if ('GoPro' !== activeTab) { if (!activeTabName || !_this.state.loaded[activeTabName]) { return 'Loading'; } if (activeTab) { activeTab.icons = _this.getActiveTabIcons(activeTab); } } var selected = _this.getSelected(); return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement("div", { id: "elementor-icons-manager__sidebar", className: 'elementor-templates-modal__sidebar' }, /*#__PURE__*/_react.default.createElement("div", { id: "elementor-icons-manager__tab-links" }, _this.getIconTabsLinks(), _this.getUploadCustomButton(), _this.getIconTabsLinks(false))), /*#__PURE__*/_react.default.createElement("div", { id: "elementor-icons-manager__main", className: 'elementor-templates-modal__content' }, 'GoPro' === activeTabName ? /*#__PURE__*/_react.default.createElement(_iconsGoPro.default, null) : /*#__PURE__*/_react.default.createElement(_react.Fragment, null, showSearch ? _this.getSearchHTML() : '', /*#__PURE__*/_react.default.createElement("div", { id: "elementor-icons-manager__tab__wrapper", ref: _this.scrollViewRef }, /*#__PURE__*/_react.default.createElement("div", { id: "elementor-icons-manager__tab__title" }, activeTab.label), /*#__PURE__*/_react.default.createElement("div", { id: "elementor-icons-manager__tab__content_wrapper" }, /*#__PURE__*/_react.default.createElement("input", { type: "hidden", name: "icon_value", id: "icon_value", value: selected.value }), /*#__PURE__*/_react.default.createElement("input", { type: "hidden", name: "icon_type", id: "icon_type", value: selected.library }), _this.state.loaded[activeTab.name] ? /*#__PURE__*/_react.default.createElement(_tab.default, (0, _extends2.default)({ setSelected: _this.setSelected, selected: selected, filter: filter, key: activeTab.name, parentRef: _this.scrollViewRef }, activeTab)) : 'Loading'))))); }); return _this; } (0, _inherits2.default)(IconsManager, _Component); return (0, _createClass2.default)(IconsManager, [{ key: "updateLoaded", value: function updateLoaded(libraryName) { var loaded = this.state.loaded; loaded[libraryName] = true; this.setState({ loaded: loaded }); } }, { key: "isNativeTab", value: function isNativeTab(tab) { return ('all' === tab.name || 'recommended' === tab.name || 'fa-' === tab.name.substr(0, 3)) && tab.native; } }, { key: "getUploadCustomButton", value: function getUploadCustomButton() { var _this2 = this; var onClick = function onClick() { if ('GoPro' === _this2.state.activeTab) { return; } _this2.setState({ activeTab: 'GoPro' }); }; if (this.props.customIconsURL) { onClick = function onClick() { window.open(_this2.props.customIconsURL, '_blank'); }; } return /*#__PURE__*/_react.default.createElement("div", { id: "elementor-icons-manager__upload" }, /*#__PURE__*/_react.default.createElement("div", { id: "elementor-icons-manager__upload__title" }, __('My Libraries', 'elementor')), /*#__PURE__*/_react.default.createElement("button", { id: "elementor-icons-manager__upload__button", className: "elementor-button", onClick: onClick }, __('Upload', 'elementor'))); } }, { key: "getSearchHTML", value: function getSearchHTML() { return /*#__PURE__*/_react.default.createElement("div", { id: "elementor-icons-manager__search" }, /*#__PURE__*/_react.default.createElement("input", { placeholder: 'Filter by name...', onInput: this.handleSearch }), /*#__PURE__*/_react.default.createElement("i", { className: 'eicon-search' })); } }]); }(_react.Component); var _default = exports["default"] = IconsManager; var renderIconManager = exports.renderIconManager = function renderIconManager(props) { var containerElement = document.querySelector('#elementor-icons-manager-modal .dialog-content'); return _react2.default.render(/*#__PURE__*/_react.default.createElement(IconsManager, (0, _extends2.default)({}, props, { containerElement: containerElement })), containerElement); }; IconsManager.propTypes = { activeTab: _propTypes.default.any, customIconsURL: _propTypes.default.string, icons: _propTypes.default.any, loaded: _propTypes.default.any, modalView: _propTypes.default.any, recommended: _propTypes.default.oneOfType([_propTypes.default.bool, _propTypes.default.object]), selected: _propTypes.default.any, showSearch: _propTypes.default.bool }; /***/ }), /***/ "../assets/dev/js/editor/components/icons-manager/components/icon.js": /*!***************************************************************************!*\ !*** ../assets/dev/js/editor/components/icons-manager/components/icon.js ***! \***************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js")); var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js")); var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js")); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); } function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } var Icon = exports["default"] = /*#__PURE__*/function (_Component) { function Icon() { var _this; (0, _classCallCheck2.default)(this, Icon); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _callSuper(this, Icon, [].concat(args)); (0, _defineProperty2.default)(_this, "setSelected", function () { _this.props.setSelectedHandler({ value: _this.props.data.displayPrefix + ' ' + _this.props.data.selector, library: _this.props.library }); }); (0, _defineProperty2.default)(_this, "render", function () { return ( /*#__PURE__*/ // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions _react.default.createElement("div", { className: _this.props.containerClass, key: _this.props.keyID, onClick: _this.setSelected, filter: _this.props.data.filter }, /*#__PURE__*/_react.default.createElement("div", { className: "elementor-icons-manager__tab__item__content" }, /*#__PURE__*/_react.default.createElement("i", { className: 'elementor-icons-manager__tab__item__icon ' + _this.props.className }), /*#__PURE__*/_react.default.createElement("div", { className: 'elementor-icons-manager__tab__item__name', title: _this.props.data.name }, _this.props.data.name))) ); }); return _this; } (0, _inherits2.default)(Icon, _Component); return (0, _createClass2.default)(Icon); }(_react.Component); Icon.propTypes = { className: _propTypes.default.string, containerClass: _propTypes.default.string, data: _propTypes.default.object, keyID: _propTypes.default.string, library: _propTypes.default.string, selector: _propTypes.default.string, setSelectedHandler: _propTypes.default.func }; /***/ }), /***/ "../assets/dev/js/editor/components/icons-manager/components/icons-go-pro.js": /*!***********************************************************************************!*\ !*** ../assets/dev/js/editor/components/icons-manager/components/icons-go-pro.js ***! \***********************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"]; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js")); var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js")); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); } function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } var IconsGoPro = /*#__PURE__*/function (_Component) { function IconsGoPro() { var _this; (0, _classCallCheck2.default)(this, IconsGoPro); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _callSuper(this, IconsGoPro, [].concat(args)); (0, _defineProperty2.default)(_this, "render", function () { return /*#__PURE__*/_react.default.createElement("div", { id: "elementor-icons-manager__promotion" }, /*#__PURE__*/_react.default.createElement("i", { id: "elementor-icons-manager__promotion__icon", className: "eicon-nerd" }), /*#__PURE__*/_react.default.createElement("div", { id: "elementor-icons-manager__promotion__text" }, __('Become a Pro user to upload unlimited font icon folders to your website.', 'elementor')), /*#__PURE__*/_react.default.createElement("a", { href: elementor.config.icons.goProURL, id: "elementor-icons-manager__promotion__link", className: "elementor-button go-pro", target: "_blank", rel: "noopener noreferrer" }, __('Upgrade Now', 'elementor'))); }); return _this; } (0, _inherits2.default)(IconsGoPro, _Component); return (0, _createClass2.default)(IconsGoPro); }(_react.Component); var _default = exports["default"] = IconsGoPro; /***/ }), /***/ "../assets/dev/js/editor/components/icons-manager/components/tab.js": /*!**************************************************************************!*\ !*** ../assets/dev/js/editor/components/icons-manager/components/tab.js ***! \**************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react")); var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js")); var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.js")); var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js")); var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js")); var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js")); var _iconList = _interopRequireDefault(__webpack_require__(/*! ./icon-list */ "../assets/dev/js/editor/components/icons-manager/components/icon-list.js")); var _icon = _interopRequireDefault(__webpack_require__(/*! ./icon */ "../assets/dev/js/editor/components/icons-manager/components/icon.js")); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); } function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; } function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } var Tab = /*#__PURE__*/function (_Component) { function Tab() { var _this; (0, _classCallCheck2.default)(this, Tab); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _callSuper(this, Tab, [].concat(args)); (0, _defineProperty2.default)(_this, "componentDidMount", function () { if (_this.props.selected && _this.props.selected.value) { setTimeout(function () { var element = document.querySelector('.elementor-selected'); if (element) { element.scrollIntoView(false); } }, 0); } }); (0, _defineProperty2.default)(_this, "handleFullIconList", function () { var fullIconList = []; Object.entries(_this.props.icons).forEach(function (library) { if ('recommended' !== library[0]) { fullIconList = [].concat((0, _toConsumableArray2.default)(fullIconList), (0, _toConsumableArray2.default)(_this.getIconsOfType(library[0], library[1]))); } }); return fullIconList.sort(function (a, b) { return a.filter === b.filter ? 0 : +(a.filter > b.filter) || -1; }); }); (0, _defineProperty2.default)(_this, "getLibrary", function (libraryName) { var icons = elementor.config.icons.libraries.filter(function (library) { return libraryName === library.name; }); return icons; }); (0, _defineProperty2.default)(_this, "handleRecommendedList", function () { var recommendedIconList = []; Object.entries(_this.props.icons).forEach(function (library) { var iconLibrary = _this.getLibrary(library[0]), iconsOfType = iconLibrary[0].icons, recommendedIconsOfType = {}; library[1].forEach(function (iconName) { if (iconsOfType[iconName]) { recommendedIconsOfType[iconName] = iconsOfType[iconName]; } }); recommendedIconList = [].concat((0, _toConsumableArray2.default)(recommendedIconList), (0, _toConsumableArray2.default)(_this.getIconsOfType(library[0], recommendedIconsOfType))); }); return recommendedIconList; }); (0, _defineProperty2.default)(_this, "getIconsComponentList", function () { var iconsToShow = []; var _this$props = _this.props, name = _this$props.name, icons = _this$props.icons, filter = _this$props.filter; switch (name) { case 'all': iconsToShow = _this.handleFullIconList(); break; case 'recommended': iconsToShow = _this.handleRecommendedList(); break; default: iconsToShow = _this.getIconsOfType(name, icons); break; } if (filter) { iconsToShow = Object.values(iconsToShow).filter(function (icon) { return icon.props.data.name.toLowerCase().indexOf(filter) > -1; }); } return iconsToShow; }); (0, _defineProperty2.default)(_this, "render", function () { var icons = _this.getIconsComponentList(); var selectedIndex = -1; var _iterator = _createForOfIteratorHelper(icons.entries()), _step; try { for (_iterator.s(); !(_step = _iterator.n()).done;) { var _step$value = (0, _slicedToArray2.default)(_step.value, 2), index = _step$value[0], icon = _step$value[1]; if (icon.props.containerClass.includes('elementor-selected')) { selectedIndex = index; break; } } } catch (err) { _iterator.e(err); } finally { _iterator.f(); } return /*#__PURE__*/_react.default.createElement(_iconList.default, { selectedIndex: selectedIndex, items: icons, parentRef: _this.props.parentRef }); }); return _this; } (0, _inherits2.default)(Tab, _Component); return (0, _createClass2.default)(Tab, [{ key: "getIconsOfType", value: function getIconsOfType(type, icons) { var _this2 = this; var _this$props2 = this.props, selected = _this$props2.selected, filter = _this$props2.filter; return Object.entries(icons).map(function (icon) { var iconData = icon[1], iconName = icon[0], className = iconData.displayPrefix + ' ' + iconData.selector; var containerClass = 'elementor-icons-manager__tab__item'; if (selected.value === className) { containerClass += ' elementor-selected'; } var key = containerClass + type + '-' + iconName + filter; return /*#__PURE__*/_react.default.createElement(_icon.default, { key: key, library: type, keyID: iconName, containerClass: containerClass, className: className, setSelectedHandler: _this2.props.setSelected, data: iconData }); }); } }]); }(_react.Component); Tab.propTypes = { data: _propTypes.default.any, filter: _propTypes.default.any, icons: _propTypes.default.object, name: _propTypes.default.string, selected: _propTypes.default.object, setSelected: _propTypes.default.func, parentRef: _propTypes.default.any }; var _default = exports["default"] = Tab; /***/ }), /***/ "../assets/dev/js/editor/components/icons-manager/icons-manager.js": /*!*************************************************************************!*\ !*** ../assets/dev/js/editor/components/icons-manager/icons-manager.js ***! \*************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"]; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js")); var _modalLayout = _interopRequireDefault(__webpack_require__(/*! ./modal-layout */ "../assets/dev/js/editor/components/icons-manager/modal-layout.js")); var _iconManager = __webpack_require__(/*! ./components/icon-manager */ "../assets/dev/js/editor/components/icons-manager/components/icon-manager.js"); var _iconLibrary = _interopRequireDefault(__webpack_require__(/*! ./classes/icon-library */ "../assets/dev/js/editor/components/icons-manager/classes/icon-library.js")); var _store = _interopRequireDefault(__webpack_require__(/*! ./classes/store */ "../assets/dev/js/editor/components/icons-manager/classes/store.js")); function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } var _default = exports["default"] = /*#__PURE__*/function (_elementorModules$Mod) { function _default() { (0, _classCallCheck2.default)(this, _default); return _callSuper(this, _default, arguments); } (0, _inherits2.default)(_default, _elementorModules$Mod); return (0, _createClass2.default)(_default, [{ key: "onInit", value: function onInit() { // Init icon library helper this.library = new _iconLibrary.default(); // Init Icon library Storage helper this.store = new _store.default(); // Fetch fa4 to fa5 migration data elementor.helpers.fetchFa4ToFa5Mapping(); this.cache = {}; } }, { key: "getLayout", value: function getLayout() { var _this = this; if (!this.layout) { this.layout = new _modalLayout.default(); var layoutModal = this.layout.getModal(); layoutModal.addButton({ name: 'insert_icon', text: __('Insert', 'elementor'), classes: 'elementor-button e-primary', callback: function callback() { _this.updateControlValue(); _this.unMountIconManager(); } }); layoutModal.on('show', this.onPickerShow.bind(this)).on('hide', this.unMountIconManager.bind(this)); } return this.layout; } }, { key: "getDefaultSettings", value: function getDefaultSettings() { return { selectedIcon: {} }; } }, { key: "unMountIconManager", value: function unMountIconManager() { this.unmount(); } }, { key: "loadIconLibraries", value: function loadIconLibraries() { if (!this.cache.loaded) { elementor.config.icons.libraries.forEach(function (library) { if ('all' === library.name) { return; } elementor.iconManager.library.initIconType(library); }); this.cache.loaded = true; } } }, { key: "onPickerShow", value: function onPickerShow() { var controlView = this.getSettings('controlView'), loaded = { GoPro: true }, iconManagerConfig = { recommended: controlView.model.get('recommended') || false }; var selected = controlView.getControlValue(), icons = elementor.config.icons.libraries; if (!selected.library || !selected.value) { selected = { value: '', library: '' }; } iconManagerConfig.selected = selected; this.setSettings('selectedIcon', selected); if (iconManagerConfig.recommended) { var hasRecommended = false; icons.forEach(function (library, index) { if ('recommended' === library.name) { hasRecommended = true; icons[index].icons = iconManagerConfig.recommended; } }); if (!hasRecommended) { icons.unshift({ name: 'recommended', label: 'Recommended', icons: iconManagerConfig.recommended, labelIcon: 'eicon-star-o', native: true }); } } else { icons = icons.filter(function (library) { return 'recommended' !== library.name; }); } icons.forEach(function (tab, index) { if (-1 === ['all', 'recommended'].indexOf(tab.name)) { elementor.iconManager.library.initIconType(tab, function (lib) { icons[index] = lib; }); } loaded[tab.name] = true; }); iconManagerConfig.loaded = loaded; iconManagerConfig.icons = icons; // Set active tab var activeTab = selected.library || icons[0].name; if ('svg' === selected.library) { activeTab = icons[0].name; } // Selected Library exists if (!Object.keys(icons).some(function (library) { return library === activeTab; })) { activeTab = icons[0].name; } // Show recommended tab if selected from it if (iconManagerConfig.recommended && '' !== selected.library && '' !== selected.value && Object.prototype.hasOwnProperty.call(iconManagerConfig.recommended, selected.library)) { var iconLibrary = icons.filter(function (library) { return selected.library === library.name; }); var selectedIconName = selected.value.replace(iconLibrary[0].displayPrefix + ' ' + iconLibrary[0].prefix, ''); if (iconManagerConfig.recommended[selected.library].some(function (icon) { return -1 < icon.indexOf(selectedIconName); })) { activeTab = icons[0].name; } } iconManagerConfig.customIconsURL = elementor.config.customIconsURL; iconManagerConfig.activeTab = activeTab; var _renderIconManager = (0, _iconManager.renderIconManager)(iconManagerConfig), unmount = _renderIconManager.unmount; this.unmount = unmount; } }, { key: "updateControlValue", value: function updateControlValue() { var settings = this.getSettings(); settings.controlView.setValue(settings.selectedIcon); settings.controlView.applySavedValue(); } }, { key: "show", value: function show(options) { this.setSettings('controlView', options.view); this.getLayout().showModal(options); } }]); }(elementorModules.Module); /***/ }), /***/ "../assets/dev/js/editor/components/icons-manager/modal-layout.js": /*!************************************************************************!*\ !*** ../assets/dev/js/editor/components/icons-manager/modal-layout.js ***! \************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"]; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "../node_modules/@babel/runtime/helpers/get.js")); var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js")); var _layout = _interopRequireDefault(__webpack_require__(/*! elementor-common/views/modal/layout */ "../core/common/assets/js/views/modal/layout.js")); function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } function _superPropGet(t, o, e, r) { var p = (0, _get2.default)((0, _getPrototypeOf2.default)(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } var _default = exports["default"] = /*#__PURE__*/function (_BaseModalLayout) { function _default() { (0, _classCallCheck2.default)(this, _default); return _callSuper(this, _default, arguments); } (0, _inherits2.default)(_default, _BaseModalLayout); return (0, _createClass2.default)(_default, [{ key: "getModalOptions", value: function getModalOptions() { return { id: 'elementor-icons-manager-modal' }; } }, { key: "getLogoOptions", value: function getLogoOptions() { return { title: __('Icon Library', 'elementor') }; } }, { key: "initialize", value: function initialize() { for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _superPropGet(_default, "initialize", this, 3)(args); this.showLogo(); } }]); }(_layout.default); /***/ }), /***/ "../assets/dev/js/editor/components/preview/commands/drop.js": /*!*******************************************************************!*\ !*** ../assets/dev/js/editor/components/preview/commands/drop.js ***! \*******************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports.Drop = void 0; var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js")); function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } var Drop = exports.Drop = /*#__PURE__*/function (_$e$modules$editor$Co) { function Drop() { (0, _classCallCheck2.default)(this, Drop); return _callSuper(this, Drop, arguments); } (0, _inherits2.default)(Drop, _$e$modules$editor$Co); return (0, _createClass2.default)(Drop, [{ key: "validateArgs", value: function validateArgs() { var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; this.requireContainer(args); this.requireArgumentType('model', 'object', args); } }, { key: "apply", value: function apply() { var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var _args$containers = args.containers, containers = _args$containers === void 0 ? [args.container] : _args$containers, _args$options = args.options, options = _args$options === void 0 ? {} : _args$options, result = []; containers.forEach(function (container) { result.push(container.view.createElementFromModel(args.model, options)); }); if (1 === containers.length) { return result[0]; } return result; } }]); }($e.modules.editor.CommandContainerBase); /***/ }), /***/ "../assets/dev/js/editor/components/preview/commands/index.js": /*!********************************************************************!*\ !*** ../assets/dev/js/editor/components/preview/commands/index.js ***! \********************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "Drop", ({ enumerable: true, get: function get() { return _drop.Drop; } })); Object.defineProperty(exports, "Reload", ({ enumerable: true, get: function get() { return _reload.Reload; } })); var _drop = __webpack_require__(/*! ./drop */ "../assets/dev/js/editor/components/preview/commands/drop.js"); var _reload = __webpack_require__(/*! ./reload */ "../assets/dev/js/editor/components/preview/commands/reload.js"); /***/ }), /***/ "../assets/dev/js/editor/components/preview/commands/reload.js": /*!*********************************************************************!*\ !*** ../assets/dev/js/editor/components/preview/commands/reload.js ***! \*********************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports.Reload = void 0; var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js")); function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } var Reload = exports.Reload = /*#__PURE__*/function (_$e$modules$CommandBa) { function Reload() { (0, _classCallCheck2.default)(this, Reload); return _callSuper(this, Reload, arguments); } (0, _inherits2.default)(Reload, _$e$modules$CommandBa); return (0, _createClass2.default)(Reload, [{ key: "apply", value: function apply() { elementor.reloadPreview(); } }]); }($e.modules.CommandBase); /***/ }), /***/ "../assets/dev/js/editor/components/preview/component.js": /*!***************************************************************!*\ !*** ../assets/dev/js/editor/components/preview/component.js ***! \***************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js")); var commands = _interopRequireWildcard(__webpack_require__(/*! ./commands/ */ "../assets/dev/js/editor/components/preview/commands/index.js")); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); } function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } var Component = exports["default"] = /*#__PURE__*/function (_$e$modules$Component) { function Component() { (0, _classCallCheck2.default)(this, Component); return _callSuper(this, Component, arguments); } (0, _inherits2.default)(Component, _$e$modules$Component); return (0, _createClass2.default)(Component, [{ key: "getNamespace", value: function getNamespace() { return 'preview'; } }, { key: "defaultCommands", value: function defaultCommands() { return this.importCommands(commands); } }]); }($e.modules.ComponentBase); /***/ }), /***/ "../assets/dev/js/editor/components/selection/manager.js": /*!***************************************************************!*\ !*** ../assets/dev/js/editor/components/selection/manager.js ***! \***************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js")); var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js")); function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; } function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } /** * @typedef {import('../../container/container')} Container */ var Manager = exports["default"] = /*#__PURE__*/function (_elementorModules$edi) { /** * Manager constructor. * * @return {Manager} manager */ function Manager() { var _this; (0, _classCallCheck2.default)(this, Manager); _this = _callSuper(this, Manager); // Using a Proxy in order to use update methods only once on external invocations, but internally the `add` or // `remove` methods may be executed many times, when update methods will be used only once. /** * Selected elements. * * The list of the selected elements. * * @type {{}} */ (0, _defineProperty2.default)(_this, "elements", {}); /** * Selected elements type. * * Represents the common type of multiple selected elements, or false when the selected elements are of different * types. * * @type {string|boolean} */ (0, _defineProperty2.default)(_this, "type", false); return (0, _possibleConstructorReturn2.default)(_this, new Proxy(_this, { get: function get(target, prop) { if (['add', 'remove'].includes(prop)) { return function () { if (!target.isAllowed()) { return; } var result = target[prop].apply(target, arguments); target.updateType(); target.updateSortable(); target.updatePanelPage(); target.updateNavigator(); return result; }; } return Reflect.get.apply(Reflect, arguments); } })); } /** * Get selection elements. * * Get the list of selected elements as an array of containers. If a fallback element container specified, it will * be returned when there are no selected elements. * * @param {Container[]|Container} fallback * @return {Container[]} selection elements */ (0, _inherits2.default)(Manager, _elementorModules$edi); return (0, _createClass2.default)(Manager, [{ key: "getElements", value: function getElements() { var fallback = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; var result = Object.values(this.elements); if (!result.length && fallback) { result = Array.isArray(fallback) ? fallback : [fallback]; } return result; } /** * Add elements to selection. * * Add new elements to selection by their container, and clear the currently selected elements unless appending is * active, in which case the new elements are just added to the current selection. * * @param {Container[]|Container} containers * @param {boolean} append */ }, { key: "add", value: function add(containers) { var append = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; if (!this.isAllowed()) { return; } containers = Array.isArray(containers) ? containers : [containers]; // If command/ctrl+click not clicked, clear selected elements. if (!append) { this.remove([], true); } var _iterator = _createForOfIteratorHelper(containers), _step; try { for (_iterator.s(); !(_step = _iterator.n()).done;) { var container = _step.value; this.elements[container.id] = container; container.view.select(); } } catch (err) { _iterator.e(err); } finally { _iterator.f(); } } /** * Remove elements from selection. * * Remove elements from selection by their container, unless the parameter for clearing all selected elements is * active, in which case the the whole selection is cleared. * * @param {Container[]|Container} containers * @param {boolean} all */ }, { key: "remove", value: function remove(containers) { var all = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; if (!this.isAllowed()) { return; } containers = Array.isArray(containers) ? containers : [containers]; if (all) { containers = this.getElements(); } var _iterator2 = _createForOfIteratorHelper(containers), _step2; try { for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { var container = _step2.value; delete this.elements[container.id]; container.view.deselect(); } } catch (err) { _iterator2.e(err); } finally { _iterator2.f(); } } /** * Does element selected. * * Check whether an element container exists in the selected elements. * * @param {Container} container * @return {boolean} true if the container exists in the selected elements */ }, { key: "has", value: function has(container) { return this.getElements().includes(container); } /** * Update selected elements type. * * Resolve the common type of all selected elements and assign it as class property. When the selected objects are * of different types, `false` is assigned. */ }, { key: "updateType", value: function updateType() { var elements = this.getElements(); this.type = Boolean(elements.length) && elements.reduce(function (previous, current) { if (previous === current.type) { return current.type; } return false; }, elements[0].type); } /** * Update sortable state. * * In case more than one element is selected, currently sorting supposed to be disabled, and vice-versa. */ }, { key: "updateSortable", value: function updateSortable() { elementor.toggleSortableState(!this.isMultiple()); } /** * Update the panel page. * * Selected elements affect the panel panel in a way that when element is selected - its settings page is displayed, * and when the element is blurred (unfocused) - the the default page opened. When more than one element selected, * the default page should appear. */ }, { key: "updatePanelPage", value: function updatePanelPage() { var elements = this.getElements(); if (1 === elements.length) { $e.run('panel/editor/open', { model: elements[0].model, view: elements[0].view }); } else { $e.internal('panel/open-default', { autoFocusSearch: false }); } } /** * Update navigator selections. * * Any change in the document selected elements should be reflected in the navigator, this method is responsible for * updating the navigator. */ }, { key: "updateNavigator", value: function updateNavigator() { if (!$e.components.get('document/elements').utils.showNavigator()) { return; } elementor.navigator.getLayout().elements.currentView.recursiveChildInvoke('updateSelection'); } /** * Is multiple selection. * * Check whether multiple elements were selected. * * @return {boolean} true if multiple elements were selected */ }, { key: "isMultiple", value: function isMultiple() { return this.getElements().length > 1; } /** * Is selection of same type. * * Check whether the selected elements are of same type. * * @return {boolean} true if the selected elements are of same type */ }, { key: "isSameType", value: function isSameType() { return !this.getElements().length || Boolean(this.type); } }, { key: "isAllowed", value: function isAllowed() { return 'edit' === elementor.channels.dataEditMode.request('activeMode'); } }]); }(elementorModules.editor.utils.Module); /***/ }), /***/ "../assets/dev/js/editor/components/settings/base/manager.js": /*!*******************************************************************!*\ !*** ../assets/dev/js/editor/components/settings/base/manager.js ***! \*******************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js")); var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js")); var ControlsCSSParser = __webpack_require__(/*! elementor-editor-utils/controls-css-parser */ "../assets/dev/js/editor/utils/controls-css-parser.js"); module.exports = elementorModules.ViewModule.extend({ model: null, hasChange: false, changeCallbacks: {}, addChangeCallback: function addChangeCallback(attribute, callback) { this.changeCallbacks[attribute] = callback; }, bindEvents: function bindEvents() { elementor.on('document:loaded', this.onElementorDocumentLoaded); this.model.on('change', this.onModelChange); }, unbindEvents: function unbindEvents() { elementor.off('document:loaded', this.onElementorDocumentLoaded); }, addPanelPage: function addPanelPage() { var name = this.getSettings('name'); elementor.getPanelView().addPage(name + '_settings', { view: elementor.settings.panelPages[name] || elementor.settings.panelPages.base, title: this.getSettings('panelPage.title'), options: { editedView: this.getEditedView(), model: this.model, controls: this.model.controls, name: name } }); }, getContainerType: function getContainerType() { return this.getSettings('name') + '_settings'; }, /** * @deprecated since 3.7.0, use `getContainerType()` instead. */ getContainerId: function getContainerId() { elementorDevTools.deprecation.deprecated('getContainerId()', '3.7.0', 'getContainerType()'); return this.getContainerType(); }, // Emulate an element view/model structure with the parts needed for a container. getEditedView: function getEditedView() { var documentElementType = elementor.elementsManager.getElementTypeClass('document'), ModelClass = documentElementType.getModel(), type = this.getContainerType(), editModel = new ModelClass({ id: type, elType: type, settings: this.model }); var container = new elementorModules.editor.Container({ type: type, id: type, model: editModel, settings: editModel.get('settings'), view: false, parent: false, label: this.getSettings('panelPage').title, controls: this.model.controls, document: this.getDocument(), renderer: false }); return { getContainer: function getContainer() { return container; }, getEditModel: function getEditModel() { return editModel; }, model: editModel, container: container }; }, getDocument: function getDocument() { return false; }, updateStylesheet: function updateStylesheet(keepOldEntries) { var controlsCSS = this.getControlsCSS(); if (!keepOldEntries) { controlsCSS.stylesheet.empty(); } this.model.handleRepeaterData(this.model.attributes); controlsCSS.addStyleRules(this.model.getStyleControls(), this.model.attributes, this.model.controls, [/{{WRAPPER}}/g], [this.getSettings('cssWrapperSelector')]); controlsCSS.addStyleToDocument({ // Ensures we don't override default global style at: 'before', of: '#elementor-style-e-global-style' }); }, initModel: function initModel() { this.model = new elementorModules.editor.elements.models.BaseSettings(this.getSettings('settings'), { controls: this.getSettings('controls') }); }, getStyleId: function getStyleId() { return this.getSettings('name'); }, initControlsCSSParser: function initControlsCSSParser() { var controlsCSS; this.destroyControlsCSS = function () { controlsCSS.removeStyleFromDocument(); }; this.getControlsCSS = function () { if (!controlsCSS) { controlsCSS = new ControlsCSSParser({ id: this.getStyleId(), settingsModel: this.model, context: this.getEditedView() }); } return controlsCSS; }; }, getDataToSave: function getDataToSave(data) { return data; }, save: function save(callback) { var _this = this; return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() { var self, settings, data; return _regenerator.default.wrap(function (_context) { while (1) switch (_context.prev = _context.next) { case 0: self = _this; if (self.hasChange) { _context.next = 1; break; } return _context.abrupt("return"); case 1: settings = _this.model.toJSON({ remove: ['default'] }), data = _this.getDataToSave({ data: settings }); NProgress.start(); return _context.abrupt("return", elementorCommon.ajax.addRequest('save_' + _this.getSettings('name') + '_settings', { data: data, success: function success() { NProgress.done(); self.setSettings('settings', settings); self.hasChange = false; if (callback) { callback.apply(self, arguments); } }, error: function error() { // eslint-disable-next-line no-alert alert('An error occurred.'); } })); case 2: case "end": return _context.stop(); } }, _callee); }))(); }, onInit: function onInit() { this.initModel(); this.initControlsCSSParser(); this.addPanelMenuItem(); this.debounceSave = _.debounce(this.save, 3000); elementorModules.ViewModule.prototype.onInit.apply(this, arguments); }, /** * BC for custom settings without a JS component. */ addPanelMenuItem: function addPanelMenuItem() { var menuSettings = this.getSettings('panelPage.menu'); if (!menuSettings) { return; } var namespace = 'panel/' + this.getSettings('name') + '-settings', menuItemOptions = { icon: menuSettings.icon, title: this.getSettings('panelPage.title'), type: 'page', pageName: this.getSettings('name') + '_settings', callback: function callback() { return $e.route("".concat(namespace, "/settings")); } }; $e.bc.ensureTab(namespace, 'settings', menuItemOptions.pageName); elementor.modules.layouts.panel.pages.menu.Menu.addItem(menuItemOptions, 'settings', menuSettings.beforeItem); }, onModelChange: function onModelChange(model) { var self = this; self.hasChange = true; this.getControlsCSS().stylesheet.empty(); _.each(model.changed, function (value, key) { if (self.changeCallbacks[key]) { self.changeCallbacks[key].call(self, value); } }); self.updateStylesheet(true); self.debounceSave(); }, onElementorDocumentLoaded: function onElementorDocumentLoaded() { this.updateStylesheet(); this.addPanelPage(); }, destroy: function destroy() { this.unbindEvents(); this.model.destroy(); } }); /***/ }), /***/ "../assets/dev/js/editor/components/settings/base/panel.js": /*!*****************************************************************!*\ !*** ../assets/dev/js/editor/components/settings/base/panel.js ***! \*****************************************************************/ /***/ ((module) => { "use strict"; module.exports = elementorModules.editor.views.ControlsStack.extend({ id: function id() { return 'elementor-panel-' + this.getOption('name') + '-settings'; }, getTemplate: function getTemplate() { return '#tmpl-elementor-panel-' + this.getOption('name') + '-settings'; }, childViewContainer: function childViewContainer() { return '#elementor-panel-' + this.getOption('name') + '-settings-controls'; }, childViewOptions: function childViewOptions() { return { container: this.getOption('editedView').getContainer() }; } }); /***/ }), /***/ "../assets/dev/js/editor/components/settings/editor-preferences/manager.js": /*!*********************************************************************************!*\ !*** ../assets/dev/js/editor/components/settings/editor-preferences/manager.js ***! \*********************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js")); var _manager = _interopRequireDefault(__webpack_require__(/*! ../base/manager */ "../assets/dev/js/editor/components/settings/base/manager.js")); function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } var _default = exports["default"] = /*#__PURE__*/function (_BaseManager) { function _default() { var _this; (0, _classCallCheck2.default)(this, _default); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _callSuper(this, _default, [].concat(args)); _this.changeCallbacks = { ui_theme: _this.onUIThemeChanged, panel_width: _this.onPanelWidthChanged, edit_buttons: _this.onEditButtonsChanged, show_hidden_elements: _this.onShowHiddenElementsChange, show_launchpad_checklist: _this.toggleChecklistIconVisibility }; return _this; } (0, _inherits2.default)(_default, _BaseManager); return (0, _createClass2.default)(_default, [{ key: "getDefaultSettings", value: function getDefaultSettings() { return { darkModeLinkID: 'elementor-editor-dark-mode-css' }; } }, { key: "toggleChecklistIconVisibility", value: function toggleChecklistIconVisibility(switcherValue) { var shouldShow = 'yes' === switcherValue; this.addMixpanelTrackingChecklist(shouldShow); $e.run('checklist/toggle-icon', shouldShow); } }, { key: "onUIThemeChanged", value: function onUIThemeChanged(newValue) { var $lightUi = jQuery('#e-theme-ui-light-css'); var $darkUi = jQuery('#e-theme-ui-dark-css'); if ('auto' === newValue) { $lightUi.attr('media', '(prefers-color-scheme: light)'); $darkUi.attr('media', '(prefers-color-scheme: dark)'); return; } if ('light' === newValue) { $lightUi.attr('media', 'all'); $darkUi.attr('media', 'none'); } else { $lightUi.attr('media', 'none'); $darkUi.attr('media', 'all'); } } }, { key: "onPanelWidthChanged", value: function onPanelWidthChanged(newValue) { elementor.panel.saveSize({ width: newValue.size + newValue.unit }); elementor.panel.setSize(); } }, { key: "onEditButtonsChanged", value: function onEditButtonsChanged() { // Let the button change before the high-performance action of rendering the entire page setTimeout(function () { return elementor.getPreviewView()._renderChildren(); }, 300); } }, { key: "onShowHiddenElementsChange", value: function onShowHiddenElementsChange() { elementorFrontend.elements.$body.toggleClass('e-preview--show-hidden-elements'); } }, { key: "addMixpanelTrackingChecklist", value: function addMixpanelTrackingChecklist(shouldShow) { var name = shouldShow ? 'checklistShow' : 'checklistHide'; var postId = elementor.getPreviewContainer().document.config.id; var postTitle = elementor.getPreviewContainer().model.attributes.settings.attributes.post_title; var postTypeTitle = elementor.getPreviewContainer().document.config.post_type_title; var documentType = elementor.getPreviewContainer().document.config.type; return elementorCommon.eventsManager.dispatchEvent(elementorCommon.eventsManager.config.names.elementorEditor.userPreferences[name], { location: elementorCommon.eventsManager.config.locations.elementorEditor, secondaryLocation: elementorCommon.eventsManager.config.secondaryLocations.userPreferences, trigger: elementorCommon.eventsManager.config.triggers.toggleClick, element: elementorCommon.eventsManager.config.elements.toggle, postId: postId, postTitle: postTitle, postTypeTitle: postTypeTitle, documentType: documentType }); } }]); }(_manager.default); /***/ }), /***/ "../assets/dev/js/editor/components/settings/page/component.js": /*!*********************************************************************!*\ !*** ../assets/dev/js/editor/components/settings/page/component.js ***! \*********************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"]; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js")); var _componentBase = _interopRequireDefault(__webpack_require__(/*! elementor-editor/component-base */ "../assets/dev/js/editor/component-base.js")); function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } var Component = exports["default"] = /*#__PURE__*/function (_ComponentBase) { function Component() { (0, _classCallCheck2.default)(this, Component); return _callSuper(this, Component, arguments); } (0, _inherits2.default)(Component, _ComponentBase); return (0, _createClass2.default)(Component, [{ key: "getNamespace", value: function getNamespace() { return 'panel/page-settings'; } }, { key: "defaultTabs", value: function defaultTabs() { return { settings: { title: __('Settings', 'elementor') }, style: { title: __('Style', 'elementor') }, advanced: { title: __('Advanced', 'elementor') } }; } }, { key: "renderTab", value: function renderTab(tab, args) { var activeControl = args.activeControl, _args$refresh = args.refresh, refresh = _args$refresh === void 0 ? false : _args$refresh; if (this.shouldRenderPage(tab) || refresh) { elementor.getPanelView().setPage('page_settings').activateTab(tab); } this.activateControl(activeControl); } }, { key: "shouldRenderPage", value: function shouldRenderPage(tab) { var _currentPanelView$get; var currentPanelView = elementor.getPanelView(); var isSamePage = 'page_settings' === currentPanelView.getCurrentPageName(); var isSameTab = tab === ((_currentPanelView$get = currentPanelView.getCurrentPageView()) === null || _currentPanelView$get === void 0 ? void 0 : _currentPanelView$get.activeTab); return !isSamePage || !isSameTab; } }, { key: "getTabsWrapperSelector", value: function getTabsWrapperSelector() { return '.elementor-panel-navigation'; } }]); }(_componentBase.default); /***/ }), /***/ "../assets/dev/js/editor/components/settings/page/manager.js": /*!*******************************************************************!*\ !*** ../assets/dev/js/editor/components/settings/page/manager.js ***! \*******************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); var _construct2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/construct */ "../node_modules/@babel/runtime/helpers/construct.js")); var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.js")); var _component = _interopRequireDefault(__webpack_require__(/*! ./component */ "../assets/dev/js/editor/components/settings/page/component.js")); var _childrenArray = _interopRequireDefault(__webpack_require__(/*! elementor-editor/container/model/children-array */ "../assets/dev/js/editor/container/model/children-array.js")); var BaseSettings = __webpack_require__(/*! elementor-editor/components/settings/base/manager */ "../assets/dev/js/editor/components/settings/base/manager.js"); module.exports = BaseSettings.extend({ getStyleId: function getStyleId() { return this.getSettings('name') + '-' + elementor.documents.getCurrent().id; }, onInit: function onInit() { BaseSettings.prototype.onInit.apply(this); $e.components.register(new _component.default({ manager: this })); }, save: function save() {}, getDataToSave: function getDataToSave(data) { data.id = elementor.config.document.id; return data; }, // Emulate an element view/model structure with the parts needed for a container. getEditedView: function getEditedView() { var _this = this; if (this.editedView) { return this.editedView; } var documentElementType = elementor.elementsManager.getElementTypeClass('document'), ModelClass = documentElementType.getModel(), type = this.getContainerType(), editModel = new ModelClass({ id: type, elType: type, settings: this.model, elements: elementor.elements }), container = new elementorModules.editor.Container({ type: type, id: editModel.id, model: editModel, settings: editModel.get('settings'), label: elementor.config.document.panel.title, controls: this.model.controls, children: (0, _construct2.default)(_childrenArray.default, (0, _toConsumableArray2.default)(elementor.elements || [])), parent: false, // Emulate a view that can render the style. renderer: { view: { lookup: function lookup() { return container; }, renderOnChange: function renderOnChange() { return _this.updateStylesheet(); }, renderUI: function renderUI() { return _this.updateStylesheet(); } } } }); this.editedView = { getContainer: function getContainer() { return container; }, getEditModel: function getEditModel() { return editModel; }, model: editModel, container: container }; return this.editedView; }, getContainerType: function getContainerType() { return 'document'; }, /** * @deprecated since 3.7.0, use `getContainerType()` instead. */ getContainerId: function getContainerId() { elementorDevTools.deprecation.deprecated('getContainerId()', '3.7.0', 'getContainerType()'); return this.getContainerType(); } }); /***/ }), /***/ "../assets/dev/js/editor/components/settings/settings.js": /*!***************************************************************!*\ !*** ../assets/dev/js/editor/components/settings/settings.js ***! \***************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); var _manager = _interopRequireDefault(__webpack_require__(/*! ./editor-preferences/manager */ "../assets/dev/js/editor/components/settings/editor-preferences/manager.js")); module.exports = elementorModules.Module.extend({ modules: { base: __webpack_require__(/*! elementor-editor/components/settings/base/manager */ "../assets/dev/js/editor/components/settings/base/manager.js"), page: __webpack_require__(/*! elementor-editor/components/settings/page/manager */ "../assets/dev/js/editor/components/settings/page/manager.js"), editorPreferences: _manager.default }, panelPages: { base: __webpack_require__(/*! elementor-editor/components/settings/base/panel */ "../assets/dev/js/editor/components/settings/base/panel.js") }, onInit: function onInit() { this.initSettings(); }, initSettings: function initSettings() { var self = this; _.each(elementor.config.settings, function (config, name) { var Manager = self.modules[name] || self.modules.base; self[name] = new Manager(config); }); } }); /***/ }), /***/ "../assets/dev/js/editor/components/template-library/behaviors/insert-template.js": /*!****************************************************************************************!*\ !*** ../assets/dev/js/editor/components/template-library/behaviors/insert-template.js ***! \****************************************************************************************/ /***/ ((module) => { "use strict"; var InsertTemplateHandler; InsertTemplateHandler = Marionette.Behavior.extend({ ui: { insertButton: '.elementor-template-library-template-insert' }, events: { 'click @ui.insertButton': 'onInsertButtonClick' }, onRender: function onRender() { this.ui.insertButton.toggleClass('disabled', this.view.model.isLocked()); }, onInsertButtonClick: function onInsertButtonClick(e) { if ('locked' === this.view.model.get('status')) { e.preventDefault(); e.stopPropagation(); return; } var args = { model: this.view.model }; this.ui.insertButton.addClass('elementor-disabled'); var activeSource = args.model.get('source'); /** * Filter template source. * * @param bool isRemote - If `true` the source is a remote source. * @param string activeSource - The current template source. */ var isRemote = elementor.hooks.applyFilters('templates/source/is-remote', 'remote' === activeSource, activeSource); if (isRemote && !elementor.config.library_connect.is_connected) { $e.route('library/connect', args); return; } $e.run('library/insert-template', args); } }); module.exports = InsertTemplateHandler; /***/ }), /***/ "../assets/dev/js/editor/components/template-library/collections/templates.js": /*!************************************************************************************!*\ !*** ../assets/dev/js/editor/components/template-library/collections/templates.js ***! \************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var TemplateLibraryTemplateModel = __webpack_require__(/*! elementor-templates/models/template */ "../assets/dev/js/editor/components/template-library/models/template.js"), TemplateLibraryCollection; TemplateLibraryCollection = Backbone.Collection.extend({ model: TemplateLibraryTemplateModel }); module.exports = TemplateLibraryCollection; /***/ }), /***/ "../assets/dev/js/editor/components/template-library/commands-data/index.js": /*!**********************************************************************************!*\ !*** ../assets/dev/js/editor/components/template-library/commands-data/index.js ***! \**********************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "Templates", ({ enumerable: true, get: function get() { return _templates.Templates; } })); var _templates = __webpack_require__(/*! ./templates */ "../assets/dev/js/editor/components/template-library/commands-data/templates.js"); /***/ }), /***/ "../assets/dev/js/editor/components/template-library/commands-data/templates.js": /*!**************************************************************************************!*\ !*** ../assets/dev/js/editor/components/template-library/commands-data/templates.js ***! \**************************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = exports.Templates = void 0; var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js")); function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } var Templates = exports.Templates = /*#__PURE__*/function (_$e$modules$CommandDa) { function Templates() { (0, _classCallCheck2.default)(this, Templates); return _callSuper(this, Templates, arguments); } (0, _inherits2.default)(Templates, _$e$modules$CommandDa); return (0, _createClass2.default)(Templates, null, [{ key: "getEndpointFormat", value: function getEndpointFormat() { return 'template-library/templates'; } }]); }($e.modules.CommandData); var _default = exports["default"] = Templates; /***/ }), /***/ "../assets/dev/js/editor/components/template-library/commands/index.js": /*!*****************************************************************************!*\ !*** ../assets/dev/js/editor/components/template-library/commands/index.js ***! \*****************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "InsertTemplate", ({ enumerable: true, get: function get() { return _insertTemplate.InsertTemplate; } })); Object.defineProperty(exports, "Open", ({ enumerable: true, get: function get() { return _open.Open; } })); var _insertTemplate = __webpack_require__(/*! ./insert-template */ "../assets/dev/js/editor/components/template-library/commands/insert-template.js"); var _open = __webpack_require__(/*! ./open */ "../assets/dev/js/editor/components/template-library/commands/open.js"); /***/ }), /***/ "../assets/dev/js/editor/components/template-library/commands/insert-template.js": /*!***************************************************************************************!*\ !*** ../assets/dev/js/editor/components/template-library/commands/insert-template.js ***! \***************************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = exports.InsertTemplate = void 0; var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js")); function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } var InsertTemplate = exports.InsertTemplate = /*#__PURE__*/function (_$e$modules$CommandBa) { function InsertTemplate() { (0, _classCallCheck2.default)(this, InsertTemplate); return _callSuper(this, InsertTemplate, arguments); } (0, _inherits2.default)(InsertTemplate, _$e$modules$CommandBa); return (0, _createClass2.default)(InsertTemplate, [{ key: "apply", value: function apply(args) { return this.component.insertTemplate(args); } }]); }($e.modules.CommandBase); var _default = exports["default"] = InsertTemplate; /***/ }), /***/ "../assets/dev/js/editor/components/template-library/commands/open.js": /*!****************************************************************************!*\ !*** ../assets/dev/js/editor/components/template-library/commands/open.js ***! \****************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = exports.Open = void 0; var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js")); function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } var Open = exports.Open = /*#__PURE__*/function (_$e$modules$CommandBa) { function Open() { (0, _classCallCheck2.default)(this, Open); return _callSuper(this, Open, arguments); } (0, _inherits2.default)(Open, _$e$modules$CommandBa); return (0, _createClass2.default)(Open, [{ key: "apply", value: function apply(args) { return this.component.show(args); } }]); }($e.modules.CommandBase); var _default = exports["default"] = Open; /***/ }), /***/ "../assets/dev/js/editor/components/template-library/component.js": /*!************************************************************************!*\ !*** ../assets/dev/js/editor/components/template-library/component.js ***! \************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"]; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js")); var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js")); var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js")); var _readOnlyError2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/readOnlyError */ "../node_modules/@babel/runtime/helpers/readOnlyError.js")); var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "../node_modules/@babel/runtime/helpers/get.js")); var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js")); var _componentModalBase = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/component-modal-base */ "../modules/web-cli/assets/js/modules/component-modal-base.js")); var commands = _interopRequireWildcard(__webpack_require__(/*! ./commands/ */ "../assets/dev/js/editor/components/template-library/commands/index.js")); var commandsData = _interopRequireWildcard(__webpack_require__(/*! ./commands-data/ */ "../assets/dev/js/editor/components/template-library/commands-data/index.js")); var _constants = __webpack_require__(/*! ./constants */ "../assets/dev/js/editor/components/template-library/constants.js"); var _globalStylesDialog = __webpack_require__(/*! ./views/parts/global-styles-dialog */ "../assets/dev/js/editor/components/template-library/views/parts/global-styles-dialog.js"); var _editorOneEvents = __webpack_require__(/*! elementor-editor-utils/editor-one-events */ "../assets/dev/js/editor/utils/editor-one-events.js"); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t3 in e) "default" !== _t3 && {}.hasOwnProperty.call(e, _t3) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t3)) && (i.get || i.set) ? o(f, _t3, i) : f[_t3] = e[_t3]); return f; })(e, t); } function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } function _superPropGet(t, o, e, r) { var p = (0, _get2.default)((0, _getPrototypeOf2.default)(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } var TemplateLibraryLayoutView = __webpack_require__(/*! elementor-templates/views/library-layout */ "../assets/dev/js/editor/components/template-library/views/library-layout.js"); var Component = exports["default"] = /*#__PURE__*/function (_ComponentModalBase) { function Component() { (0, _classCallCheck2.default)(this, Component); return _callSuper(this, Component, arguments); } (0, _inherits2.default)(Component, _ComponentModalBase); return (0, _createClass2.default)(Component, [{ key: "__construct", value: function __construct(args) { _superPropGet(Component, "__construct", this, 3)([args]); // When switching documents update defaultTabs. elementor.on('document:loaded', this.onDocumentLoaded.bind(this)); // Remove whole component cache data. $e.data.deleteCache(this, 'library'); elementor.channels.templates.on('quota:update', function () { var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, force = _ref.force; $e.components.get('cloud-library').utils.setQuotaConfig(force); }); } }, { key: "getNamespace", value: function getNamespace() { return 'library'; } }, { key: "defaultTabs", value: function defaultTabs() { return { 'templates/blocks': { title: __('Blocks', 'elementor'), getFilter: function getFilter() { return { source: 'remote', type: 'block', subtype: elementor.config.document.remoteLibrary.category }; } }, 'templates/pages': { title: __('Pages', 'elementor'), filter: { source: 'remote', type: 'page' } }, 'templates/my-templates': { title: __('Templates', 'elementor'), getFilter: function getFilter() { var _elementor$templates$, _elementor$templates$2; return { source: (_elementor$templates$ = elementor.templates.getSourceSelection()) !== null && _elementor$templates$ !== void 0 ? _elementor$templates$ : 'local', view: (_elementor$templates$2 = elementor.templates.getViewSelection()) !== null && _elementor$templates$2 !== void 0 ? _elementor$templates$2 : 'list' }; } } }; } }, { key: "defaultRoutes", value: function defaultRoutes() { var _this = this; var defaultRoutes = { import: function _import() { _this.manager.layout.showImportView(); }, 'save-template': function saveTemplate(args) { var _args$context; _this.manager.layout.showSaveTemplateView(args.model, (_args$context = args.context) !== null && _args$context !== void 0 ? _args$context : _constants.SAVE_CONTEXTS.SAVE); }, preview: function preview(args) { _this.manager.layout.showPreviewView(args.model); }, connect: function connect(args) { args.texts = { title: __('Connect to Template Library', 'elementor'), message: __('Access this template and our entire library by creating a free personal account', 'elementor'), button: __('Get Started', 'elementor') }; _this.manager.layout.showConnectView(args); }, 'view-folder': function viewFolder(args) { _this.manager.layout.showFolderView(args); } }; return defaultRoutes; } }, { key: "defaultCommands", value: function defaultCommands() { var modalCommands = _superPropGet(Component, "defaultCommands", this, 3)([]); return _objectSpread(_objectSpread({}, modalCommands), this.importCommands(commands)); } }, { key: "defaultData", value: function defaultData() { return this.importCommands(commandsData); } }, { key: "defaultShortcuts", value: function defaultShortcuts() { return { open: { keys: 'ctrl+shift+l' } }; } }, { key: "onDocumentLoaded", value: function onDocumentLoaded(document) { this.setDefaultRoute(document.config.remoteLibrary.default_route); this.maybeOpenLibrary(); } }, { key: "renderTab", value: function renderTab(tab) { var currentTab = this.tabs[tab]; var filter = currentTab.getFilter ? currentTab.getFilter() : currentTab.filter; this.trackLibraryNavigation(tab, currentTab.title); this.currentTab = tab; this.manager.setScreen(filter); } }, { key: "trackLibraryNavigation", value: function trackLibraryNavigation(tab, tabTitle) { _editorOneEvents.EditorOneEventManager.sendELibraryNav(tabTitle || tab); } }, { key: "activateTab", value: function activateTab(tab) { var _this$manager; $e.routes.saveState('library'); _superPropGet(Component, "activateTab", this, 3)([tab]); // Update ARIA attributes for accessibility var $tabsWrapper = jQuery(this.getTabsWrapperSelector()); var $tabs = $tabsWrapper.find('[role="tab"]'); var $activeTab = $tabs.filter("[data-tab=\"".concat(tab, "\"]")); var $templatesContainer = (_this$manager = this.manager) === null || _this$manager === void 0 || (_this$manager = _this$manager.layout) === null || _this$manager === void 0 || (_this$manager = _this$manager.modalContent) === null || _this$manager === void 0 || (_this$manager = _this$manager.currentView) === null || _this$manager === void 0 ? void 0 : _this$manager.$childViewContainer; $tabs.attr({ 'aria-selected': 'false', tabindex: '-1' }); $activeTab.attr({ 'aria-selected': 'true', tabindex: '0' }); if ($templatesContainer !== null && $templatesContainer !== void 0 && $templatesContainer.length) { $templatesContainer.attr({ role: 'tabpanel', 'aria-labelledby': "tab-".concat(tab) }); } } }, { key: "open", value: function open() { _superPropGet(Component, "open", this, 3)([]); if (!this.manager.layout) { this.manager.layout = this.layout; } this.manager.layout.setHeaderDefaultParts(); return true; } }, { key: "close", value: function close() { if (!_superPropGet(Component, "close", this, 3)([])) { return false; } this.manager.modalConfig = {}; return true; } }, { key: "show", value: function show(args) { this.manager.modalConfig = args; if (args.toDefault || !$e.routes.restoreState('library')) { $e.route(this.getDefaultRoute()); } } // TODO: Move function to 'insert-template' command. }, { key: "insertTemplate", value: function insertTemplate(args) { var _this2 = this; this.downloadTemplate(args, function (data, callbackParams) { var _model$get, _elementor$config$lib; var model = callbackParams.model; var source = (_model$get = model.get('source')) !== null && _model$get !== void 0 ? _model$get : 'local'; var templateType = model.get('type'); var templateTitle = model.get('title'); var templateId = model.get('template_id'); var baseTier = (_elementor$config$lib = elementor.config.library_connect) === null || _elementor$config$lib === void 0 ? void 0 : _elementor$config$lib.base_access_tier; var templateTier = model.get('accessTier'); $e.run('document/elements/import', { model: model, data: data, options: callbackParams.importOptions, onAfter: function onAfter() { _this2.manager.eventManager.sendTemplateInsertedEvent({ library_type: source }); _editorOneEvents.EditorOneEventManager.sendELibraryInsert({ assetId: templateId, assetName: templateTitle, libraryType: templateType || source, proRequired: baseTier !== templateTier }); } }); }); } }, { key: "downloadTemplate", value: function downloadTemplate(args, callback) { var _this3 = this; var autoImportSettings = elementor.config.document.remoteLibrary.autoImportSettings, model = args.model; var _args$withPageSetting = args.withPageSettings, withPageSettings = _args$withPageSetting === void 0 ? null : _args$withPageSetting; if (autoImportSettings) { withPageSettings = true; } this.manager.layout.showLoadingView(); var shouldFetchPageSettings = null === withPageSettings ? model.get('hasPageSettings') : withPageSettings; this.manager.requestTemplateContent(model.get('source'), model.get('template_id'), { data: { with_page_settings: shouldFetchPageSettings }, success: function () { var _success = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(data) { var processedData, globalStylesResult, importOptions, insertTemplateHandler, _t; return _regenerator.default.wrap(function (_context) { while (1) switch (_context.prev = _context.next) { case 0: _this3.manager.layout.hideLoadingView(); processedData = data; if (!_this3.manager.hasGlobalStyles(data)) { _context.next = 4; break; } _context.prev = 1; _context.next = 2; return _this3.processGlobalStylesImport(data); case 2: globalStylesResult = _context.sent; processedData = globalStylesResult.data; withPageSettings = globalStylesResult.withPageSettings; _context.next = 4; break; case 3: _context.prev = 3; _t = _context["catch"](1); return _context.abrupt("return"); case 4: if (!_this3.manager.hasGlobalStyles(data) && null === withPageSettings) { withPageSettings = false; } importOptions = jQuery.extend({}, _this3.manager.modalConfig.importOptions); importOptions.withPageSettings = withPageSettings; if (!(null === withPageSettings && model.get('hasPageSettings'))) { _context.next = 5; break; } insertTemplateHandler = _this3.getImportSettingsDialog(); insertTemplateHandler.showImportDialogWithData(model, processedData, importOptions, callback); return _context.abrupt("return"); case 5: _this3.manager.layout.hideModal(); _this3.showFlatteningWarningIfNeeded(processedData); callback(processedData, { model: model, importOptions: importOptions }); case 6: case "end": return _context.stop(); } }, _callee, null, [[1, 3]]); })); function success(_x) { return _success.apply(this, arguments); } return success; }(), error: function error(data) { _this3.manager.showErrorDialog(data); }, complete: function complete() { _this3.manager.layout.hideLoadingView(); } }); } }, { key: "processGlobalStylesImport", value: function () { var _processGlobalStylesImport = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2(data) { var _yield$showGlobalStyl, mode, result, processedData, _t2; return _regenerator.default.wrap(function (_context2) { while (1) switch (_context2.prev = _context2.next) { case 0: _context2.next = 1; return (0, _globalStylesDialog.showGlobalStylesDialog)(); case 1: _yield$showGlobalStyl = _context2.sent; mode = _yield$showGlobalStyl.mode; this.manager.layout.showLoadingView(); _context2.prev = 2; _context2.next = 3; return new Promise(function (resolve, reject) { elementorCommon.ajax.addRequest('process_global_styles', { data: { content: JSON.stringify(data.content), import_mode: mode, global_classes: data.global_classes ? JSON.stringify(data.global_classes) : null, global_variables: data.global_variables ? JSON.stringify(data.global_variables) : null }, success: resolve, error: reject }); }); case 3: result = _context2.sent; processedData = _objectSpread(_objectSpread({}, data), {}, { content: result.content, flattened_classes_count: result.flattened_classes_count || 0, flattened_variables_count: result.flattened_variables_count || 0 }); if (result.updated_global_classes || result.updated_global_variables) { window.dispatchEvent(new CustomEvent('elementor/global-styles/imported', { detail: { global_classes: result.updated_global_classes, global_variables: result.updated_global_variables } })); } return _context2.abrupt("return", { data: processedData, withPageSettings: 'match_site' === mode }); case 4: _context2.prev = 4; _t2 = _context2["catch"](2); this.manager.showErrorDialog(_t2); throw _t2; case 5: _context2.prev = 5; this.manager.layout.hideLoadingView(); return _context2.finish(5); case 6: case "end": return _context2.stop(); } }, _callee2, this, [[2, 4, 5, 6]]); })); function processGlobalStylesImport(_x2) { return _processGlobalStylesImport.apply(this, arguments); } return processGlobalStylesImport; }() }, { key: "getImportSettingsDialog", value: function getImportSettingsDialog() { var self = this; var InsertTemplateHandler = { dialog: null, showImportDialog: function showImportDialog(model) { var dialog = InsertTemplateHandler.getDialog(model); dialog.onConfirm = function () { $e.run('library/insert-template', { model: model, withPageSettings: true, onAfter: function onAfter() { elementor.templates.eventManager.sendInsertApplySettingsEvent({ apply_modal_result: 'apply', library_type: model.get('source') }); } }); }; dialog.onCancel = function () { $e.run('library/insert-template', { model: model, withPageSettings: false, onAfter: function onAfter() { elementor.templates.eventManager.sendInsertApplySettingsEvent({ apply_modal_result: "don't apply", library_type: model.get('source') }); } }); }; dialog.show(); }, showImportDialogWithData: function showImportDialogWithData(model, data, importOptions, callback) { var dialog = InsertTemplateHandler.getDialog(model); dialog.onConfirm = function () { importOptions.withPageSettings = true; elementor.templates.eventManager.sendInsertApplySettingsEvent({ apply_modal_result: 'apply', library_type: model.get('source') }); self.manager.layout.hideModal(); callback(data, { model: model, importOptions: importOptions }); }; dialog.onCancel = function () { importOptions.withPageSettings = false; elementor.templates.eventManager.sendInsertApplySettingsEvent({ apply_modal_result: "don't apply", library_type: model.get('source') }); self.manager.layout.hideModal(); callback(data, { model: model, importOptions: importOptions }); }; dialog.show(); }, initDialog: function initDialog(model) { InsertTemplateHandler.dialog = elementorCommon.dialogsManager.createWidget('confirm', { id: 'elementor-insert-template-settings-dialog', /* Translators: %s is the type content */ headerMessage: __('Apply the settings of this %s too?', 'elementor').replace('%s', elementor.translate(model.attributes.type)), /* Translators: %s is the type content */ message: __('This will override the design, layout, and other settings of the %s you’re working on.', 'elementor').replace('%s', elementor.documents.getCurrent().container.label), strings: { confirm: __('Apply', 'elementor'), cancel: __('Don’t apply', 'elementor') } }); }, getDialog: function getDialog(model) { if (!InsertTemplateHandler.dialog) { InsertTemplateHandler.initDialog(model); } return InsertTemplateHandler.dialog; } }; return InsertTemplateHandler; } }, { key: "getTabsWrapperSelector", value: function getTabsWrapperSelector() { return '#elementor-template-library-header-menu'; } }, { key: "getModalLayout", value: function getModalLayout() { return TemplateLibraryLayoutView; } }, { key: "maybeOpenLibrary", value: function maybeOpenLibrary() { if ('#library' === location.hash) { $e.run('library/open'); location.hash = ''; } } }, { key: "showFlatteningWarningIfNeeded", value: function showFlatteningWarningIfNeeded(result) { var flattenedClassesCount = result.flattened_classes_count || 0; var flattenedVariablesCount = result.flattened_variables_count || 0; if (0 === flattenedClassesCount && 0 === flattenedVariablesCount) { return; } var message; if (flattenedClassesCount > 0 && flattenedVariablesCount > 0) { message = __('Some styles were added as static values because the style limits were reached.', 'elementor'); } else if (flattenedClassesCount > 0) { message = __('Some styles were added as static values because the class limit was reached.', 'elementor'); } else { message = __('Some styles were added as static values because the variable limit was reached.', 'elementor'); } elementor.notifications.showToast({ message: message }); } }]); }(_componentModalBase.default); /***/ }), /***/ "../assets/dev/js/editor/components/template-library/constants.js": /*!************************************************************************!*\ !*** ../assets/dev/js/editor/components/template-library/constants.js ***! \************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"]; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.SAVE_CONTEXTS = exports.QUOTA_WARNINGS = exports.QUOTA_BAR_STATES = void 0; var SAVE_CONTEXTS = exports.SAVE_CONTEXTS = Object.freeze({ SAVE: 'save', MOVE: 'move', COPY: 'copy', BULK_MOVE: 'bulkMove', BULK_COPY: 'bulkCopy' }); var QUOTA_WARNINGS = exports.QUOTA_WARNINGS = Object.freeze({ /* Translators: 1: Quota usage percentage */ // eslint-disable-next-line @wordpress/i18n-no-flanking-whitespace, @wordpress/i18n-translator-comments warning: __('You\'ve saved %1$d%% of the templates in your plan. To get more space ', 'elementor') + '' + __('Upgrade now', 'elementor') + '', /* Translators: 1: Quota usage percentage */ // eslint-disable-next-line @wordpress/i18n-no-flanking-whitespace, @wordpress/i18n-translator-comments alert: __('You\'ve saved %1$d%% of the templates in your plan. To get more space ', 'elementor') + '' + __('Upgrade now', 'elementor') + '' }); var QUOTA_BAR_STATES = exports.QUOTA_BAR_STATES = Object.freeze({ NORMAL: 'normal', WARNING: 'warning', ALERT: 'alert' }); /***/ }), /***/ "../assets/dev/js/editor/components/template-library/event-manager/index.js": /*!**********************************************************************************!*\ !*** ../assets/dev/js/editor/components/template-library/event-manager/index.js ***! \**********************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports.EventManager = void 0; var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js")); var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js")); var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js")); var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } var EVENTS_MAP = { SAVE_TEMPLATE_CONTEXT_MENU_EXPOSURE: 'save_template_context_menu_exposure', NEW_SAVE_TEMPLATE_CLICKED: 'new_save_template_clicked', TEMPLATE_SAVED: 'template_saved', TEMPLATE_TRANSFER: 'template_transfer', ITEM_DELETED: 'item_deleted', TEMPLATE_IMPORT: 'template_import', TEMPLATE_RENAME: 'template_rename', TEMPLATE_INSERTED: 'template_inserted', BULK_ACTIONS_SUCCESS: 'bulk_actions', BULK_ACTIONS_FAILED: 'bulk_actions', FOLDER_CREATE: 'folder_create', QUOTA_BAR_CAPACITY: 'quota_bar_capacity', INSERT_APPLY_SETTINGS: 'insert_apply_settings', UPGRADE_CLICKED: 'upgrade_clicked', PAGE_VIEWED: 'page_viewed', DELETION_UNDO: 'deletion_undo', CT_BADGE_HOVER: 'ct_badge_hover' }; var CLOUD_TEMPLATES_EXPERIMENTS = { SAVE_TEMPLATE: 'save-template-cloud' }; var EventManager = exports.EventManager = /*#__PURE__*/function () { function EventManager() { (0, _classCallCheck2.default)(this, EventManager); } return (0, _createClass2.default)(EventManager, [{ key: "getExperimentVariant", value: function () { var _getExperimentVariant = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(experimentName) { var _elementorCommon, _elementorCommon2; return _regenerator.default.wrap(function (_context) { while (1) switch (_context.prev = _context.next) { case 0: if ((_elementorCommon = elementorCommon) !== null && _elementorCommon !== void 0 && _elementorCommon.eventsManager) { _context.next = 1; break; } return _context.abrupt("return", 'control'); case 1: return _context.abrupt("return", ((_elementorCommon2 = elementorCommon) === null || _elementorCommon2 === void 0 || (_elementorCommon2 = _elementorCommon2.eventsManager) === null || _elementorCommon2 === void 0 ? void 0 : _elementorCommon2.getExperimentVariant(experimentName, 'control')) || 'control'); case 2: case "end": return _context.stop(); } }, _callee); })); function getExperimentVariant(_x) { return _getExperimentVariant.apply(this, arguments); } return getExperimentVariant; }() }, { key: "getSaveTemplateExperimentVariant", value: function getSaveTemplateExperimentVariant() { return this.getExperimentVariant(CLOUD_TEMPLATES_EXPERIMENTS.SAVE_TEMPLATE); } }, { key: "startSaveTemplateExperiment", value: function startSaveTemplateExperiment(variant) { var _elementorCommon3, _elementorCommon4; if (!((_elementorCommon3 = elementorCommon) !== null && _elementorCommon3 !== void 0 && _elementorCommon3.eventsManager)) { return; } return (_elementorCommon4 = elementorCommon) === null || _elementorCommon4 === void 0 || (_elementorCommon4 = _elementorCommon4.eventsManager) === null || _elementorCommon4 === void 0 ? void 0 : _elementorCommon4.startExperiment(CLOUD_TEMPLATES_EXPERIMENTS.SAVE_TEMPLATE, variant); } }, { key: "sendEvent", value: function sendEvent(eventName, data) { return elementorCommon.eventsManager.dispatchEvent(eventName, data); } }, { key: "sendContextMenuExposureEvent", value: function sendContextMenuExposureEvent() { return this.sendEvent(EVENTS_MAP.SAVE_TEMPLATE_CONTEXT_MENU_EXPOSURE, { location: elementorCommon.eventsManager.config.locations.elementorEditor, secondaryLocation: elementorCommon.eventsManager.config.secondaryLocations.contextMenu, trigger: elementorCommon.eventsManager.config.triggers.visible }); } }, { key: "sendNewSaveTemplateClickedEvent", value: function sendNewSaveTemplateClickedEvent() { return this.sendEvent(EVENTS_MAP.NEW_SAVE_TEMPLATE_CLICKED, { location: elementorCommon.eventsManager.config.locations.templatesLibrary.library, secondaryLocation: elementorCommon.eventsManager.config.secondaryLocations.templateLibrary.saveModal, trigger: elementorCommon.eventsManager.config.triggers.click }); } }, { key: "sendTemplateSavedEvent", value: function sendTemplateSavedEvent(data) { return this.sendEvent(EVENTS_MAP.TEMPLATE_SAVED, _objectSpread({ location: elementorCommon.eventsManager.config.locations.templatesLibrary.library, secondaryLocation: elementorCommon.eventsManager.config.secondaryLocations.templateLibrary.saveModal, trigger: elementorCommon.eventsManager.config.triggers.click }, data)); } }, { key: "sendTemplateTransferEvent", value: function sendTemplateTransferEvent(data) { return this.sendEvent(EVENTS_MAP.TEMPLATE_TRANSFER, _objectSpread({ location: elementorCommon.eventsManager.config.locations.templatesLibrary.library, secondaryLocation: elementorCommon.eventsManager.config.secondaryLocations.templateLibrary.saveModal }, data)); } }, { key: "sendItemDeletedEvent", value: function sendItemDeletedEvent(data) { return this.sendEvent(EVENTS_MAP.ITEM_DELETED, _objectSpread({ location: elementorCommon.eventsManager.config.locations.templatesLibrary.library, secondaryLocation: elementorCommon.eventsManager.config.secondaryLocations.templateLibrary.deleteDialog }, data)); } }, { key: "sendTemplateImportEvent", value: function sendTemplateImportEvent(data) { return this.sendEvent(EVENTS_MAP.TEMPLATE_IMPORT, _objectSpread({ location: elementorCommon.eventsManager.config.locations.templatesLibrary.library, secondaryLocation: elementorCommon.eventsManager.config.secondaryLocations.templateLibrary.saveModal }, data)); } }, { key: "sendTemplateRenameEvent", value: function sendTemplateRenameEvent(data) { return this.sendEvent(EVENTS_MAP.TEMPLATE_RENAME, _objectSpread({ location: elementorCommon.eventsManager.config.locations.templatesLibrary.library, secondaryLocation: elementorCommon.eventsManager.config.secondaryLocations.templateLibrary.renameDialog }, data)); } }, { key: "sendTemplateInsertedEvent", value: function sendTemplateInsertedEvent(data) { return this.sendEvent(EVENTS_MAP.TEMPLATE_INSERTED, _objectSpread({ location: elementorCommon.eventsManager.config.locations.templatesLibrary.library }, data)); } }, { key: "sendBulkActionsSuccessEvent", value: function sendBulkActionsSuccessEvent(data) { return this.sendEvent(EVENTS_MAP.BULK_ACTIONS_SUCCESS, _objectSpread({ bulk_status: 'success', location: elementorCommon.eventsManager.config.locations.templatesLibrary.library, secondaryLocation: elementorCommon.eventsManager.config.secondaryLocations.templateLibrary.saveModal }, data)); } }, { key: "sendBulkActionsFailedEvent", value: function sendBulkActionsFailedEvent(data) { return this.sendEvent(EVENTS_MAP.BULK_ACTIONS_FAILED, _objectSpread({ bulk_status: 'fail', location: elementorCommon.eventsManager.config.locations.templatesLibrary.library, secondaryLocation: elementorCommon.eventsManager.config.secondaryLocations.templateLibrary.saveModal }, data)); } }, { key: "sendFolderCreateEvent", value: function sendFolderCreateEvent() { return this.sendEvent(EVENTS_MAP.FOLDER_CREATE, { location: elementorCommon.eventsManager.config.locations.templatesLibrary.library, secondaryLocation: elementorCommon.eventsManager.config.secondaryLocations.templateLibrary.createFolderDialog }); } }, { key: "sendQuotaBarCapacityEvent", value: function sendQuotaBarCapacityEvent(data) { return this.sendEvent(EVENTS_MAP.QUOTA_BAR_CAPACITY, _objectSpread({ location: elementorCommon.eventsManager.config.locations.templatesLibrary.library }, data)); } }, { key: "sendInsertApplySettingsEvent", value: function sendInsertApplySettingsEvent(data) { return this.sendEvent(EVENTS_MAP.INSERT_APPLY_SETTINGS, _objectSpread({ location: elementorCommon.eventsManager.config.locations.templatesLibrary.library, secondaryLocation: elementorCommon.eventsManager.config.secondaryLocations.templateLibrary.applySettingsDialog }, data)); } }, { key: "sendUpgradeClickedEvent", value: function sendUpgradeClickedEvent(data) { var _elementor; return this.sendEvent(EVENTS_MAP.UPGRADE_CLICKED, _objectSpread({ location: elementorCommon.eventsManager.config.locations.templatesLibrary.library, current_sub: (_elementor = elementor) === null || _elementor === void 0 || (_elementor = _elementor.config) === null || _elementor === void 0 || (_elementor = _elementor.library_connect) === null || _elementor === void 0 ? void 0 : _elementor.current_access_tier }, data)); } }, { key: "sendPageViewEvent", value: function sendPageViewEvent(data) { return this.sendEvent(EVENTS_MAP.PAGE_VIEWED, _objectSpread({ page_loaded: data.location }, data)); } }, { key: "sendDeletionUndoEvent", value: function sendDeletionUndoEvent(data) { return this.sendEvent(EVENTS_MAP.DELETION_UNDO, _objectSpread({}, data)); } }, { key: "sendCTBadgeEvent", value: function sendCTBadgeEvent(data) { return this.sendEvent(EVENTS_MAP.CT_BADGE_HOVER, { ct_badge_hover_position: data.ct_badge_hover_position, ct_badge_type: data.ct_badge_type, ct_position_state: data.ct_position_state }); } }]); }(); /***/ }), /***/ "../assets/dev/js/editor/components/template-library/manager.js": /*!**********************************************************************!*\ !*** ../assets/dev/js/editor/components/template-library/manager.js ***! \**********************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"]; /* provided dependency */ var sprintf = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["sprintf"]; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js")); var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.js")); var _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js")); var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js")); var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js")); var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js")); var _component = _interopRequireDefault(__webpack_require__(/*! ./component */ "../assets/dev/js/editor/components/template-library/component.js")); var _localStorage = _interopRequireDefault(__webpack_require__(/*! elementor-api/core/data/storages/local-storage */ "../modules/web-cli/assets/js/core/data/storages/local-storage.js")); var _eventManager = __webpack_require__(/*! ./event-manager */ "../assets/dev/js/editor/components/template-library/event-manager/index.js"); var _constants = __webpack_require__(/*! ./constants */ "../assets/dev/js/editor/components/template-library/constants.js"); function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } var TemplateLibraryCollection = __webpack_require__(/*! elementor-templates/collections/templates */ "../assets/dev/js/editor/components/template-library/collections/templates.js"); var TemplateLibraryManager = function TemplateLibraryManager() { var _this3 = this; this.modalConfig = {}; this.eventManager = new _eventManager.EventManager(); var self = this, templateTypes = {}, storage = new _localStorage.default(), storageKeyPrefix = 'my_templates_', sourceKey = 'source', viewKey = 'view', bulkSelectedItems = new Set(), lastDeletedItems = new Set(); var variantsConfig = { control: { saveBtnText: __('Save', 'elementor'), saveDialogDescription: sprintf(/* Translators: 1: Opening bold tag, 2: Closing bold tag. 2: Line break tag. 4: Opening bold tag, 5: Closing bold tag. */ __("You can save it to %1$sCloud Templates%2$s to reuse across any of your Elementor sites at any time%3$sor to %4$sSite Templates%5$s so it's always ready when editing this website.", 'elementor'), '', '', '
', '', '') }, B: { saveBtnText: __('Save page', 'elementor'), saveDialogDescription: sprintf(/* Translators: 1: Opening bold tag, 2: Closing bold tag. 3: Opening bold tag, 4: Closing bold tag. */ __('Store your design in %1$sCloud Templates%2$s for future Elementor projects. Or save it to %3$sSite Templates%4$s, to reuse anywhere on this site.', 'elementor'), '', '', '', '') } }; var deleteDialog, errorDialog, templatesCollection, config = {}, filterTerms = {}, isLoading = false, total = 0, toastConfig = { show: false, options: {} }, bulkSelectedItemsTypes = []; var registerDefaultTemplateTypes = function registerDefaultTemplateTypes() { self.getDefaultTemplateTypeData().then(function (data) { var elements = Object.entries(elementor.getConfig().elements).reduce(function (acc, _ref) { var _ref2 = (0, _slicedToArray2.default)(_ref, 2), type = _ref2[0], element = _ref2[1]; if (!(element !== null && element !== void 0 && element.atomic_props_schema)) { return acc; } acc[type] = element.title; return acc; }, {}); var translationMap = _objectSpread(_objectSpread({ page: __('Page', 'elementor'), section: __('Section', 'elementor'), container: __('Container', 'elementor') }, elements), {}, (0, _defineProperty2.default)({}, elementor.config.document.type, elementor.config.document.panel.title)); jQuery.each(translationMap, function (type, title) { self.getDefaultTemplateTypeSafeData(title, type).then(function (defaultTemplateData) { var safeData = jQuery.extend(true, {}, data, defaultTemplateData); self.registerTemplateType(type, safeData); }); }); }); }; var registerDefaultFilterTerms = function registerDefaultFilterTerms() { filterTerms = { text: { callback: function callback(value) { value = value.toLowerCase(); if (this.get('title').toLowerCase().indexOf(value) >= 0) { return true; } return _.any(this.get('tags'), function (tag) { return tag.toLowerCase().indexOf(value) >= 0; }); } }, type: {}, subtype: {}, favorite: {} }; }; this.isLoading = function () { return isLoading; }; this.canLoadMore = function () { if (!templatesCollection) { return false; } return templatesCollection.length < total; }; this.init = function () { var _this = this; registerDefaultTemplateTypes(); registerDefaultFilterTerms(); this.component = $e.components.register(new _component.default({ manager: this })); elementor.addBackgroundClickListener('libraryToggleMore', { element: '.elementor-template-library-template-more' }); window.addEventListener('message', function (message) { var data = message.data; if (!data.name || data.name !== 'library/capture-screenshot-done') { return; } var template = templatesCollection.models.find(function (templateModel) { return templateModel.get('template_id') === parseInt(data.id); }); if (!template) { return null; } template.set('preview_url', data.imageUrl); }); this.handleKeydown = function (event) { if (_this.isSelectAllShortcut(event) && _this.isCloudGridView() && _this.isClickedInLibrary(event)) { event.preventDefault(); _this.selectAllTemplates(); } if (_this.isUndoShortCut(event) && lastDeletedItems.size) { _this.restoreRemovedItems(); } }; document.addEventListener('keydown', this.handleKeydown); }; this.getDefaultTemplateTypeData = function () { return this.eventManager.getSaveTemplateExperimentVariant().then(function (experimentVariant) { var _variantsConfig$exper; return { saveDialog: { icon: '', canSaveToCloud: true, saveBtnText: (_variantsConfig$exper = variantsConfig[experimentVariant]) === null || _variantsConfig$exper === void 0 ? void 0 : _variantsConfig$exper.saveBtnText }, moveDialog: { description: __('Alternatively, you can copy the template.', 'elementor'), icon: '', canSaveToCloud: true, saveBtnText: __('Move', 'elementor'), nameLabel: '', namePlaceholder: '' }, copyDialog: { description: __('Alternatively, you can move the template.', 'elementor'), icon: '', canSaveToCloud: true, saveBtnText: __('Copy', 'elementor'), nameLabel: '', namePlaceholder: '' }, bulkMoveDialog: { description: __('Alternatively, you can copy the templates.', 'elementor'), title: __('Move templates to a different location', 'elementor'), icon: '', canSaveToCloud: true, saveBtnText: __('Move', 'elementor'), nameLabel: '', namePlaceholder: '' }, bulkCopyDialog: { description: __('Alternatively, you can move the templates.', 'elementor'), title: __('Copy templates to a different location', 'elementor'), icon: '', canSaveToCloud: true, saveBtnText: __('Copy', 'elementor'), nameLabel: '', namePlaceholder: '' } }; }); }; this.getDefaultTemplateTypeSafeData = function (title, type) { return this.eventManager.getSaveTemplateExperimentVariant().then(function (experimentVariant) { var _variantsConfig$exper2; var isPageType = 'page' === type; /* Translators: %s: Template type. */ var nameLabel = sprintf(__('%s name', 'elementor'), title); var namePlaceholder = isPageType ? __('Type the page name here', 'elementor') : __('Give your template a name', 'elementor'); return { saveDialog: { description: ((_variantsConfig$exper2 = variantsConfig[experimentVariant]) === null || _variantsConfig$exper2 === void 0 ? void 0 : _variantsConfig$exper2.saveDialogDescription) || '', /* Translators: %s: Template type. */ title: sprintf(__('Save this %s to your library', 'elementor'), title), nameLabel: nameLabel, namePlaceholder: namePlaceholder, /* Translators: %s: Template type. */ saveLocationLabel: sprintf(__('Where would you like to save this %s?', 'elementor'), title) }, moveDialog: { /* Translators: %s: Template type. */ title: sprintf(__('Move your %s to a different location', 'elementor'), title), /* Translators: %s: Template type. */ saveLocationLabel: sprintf(__('Where would you like to move this %s?', 'elementor'), title), nameLabel: nameLabel, namePlaceholder: namePlaceholder }, copyDialog: { /* Translators: %s: Template type. */ title: sprintf(__('Copy your %s to a different location', 'elementor'), title), /* Translators: %s: Template type. */ saveLocationLabel: sprintf(__('Where would you like to cppy this %s?', 'elementor'), title), nameLabel: nameLabel, namePlaceholder: namePlaceholder }, bulkMoveDialog: { saveLocationLabel: __('Where would you like to move selected templates?', 'elementor') }, bulkCopyDialog: { saveLocationLabel: __('Where would you like to copy selected templates?', 'elementor') } }; }); }; this.isSelectAllShortcut = function (event) { return (event.metaKey || event.ctrlKey) && 'a' === event.key; }; this.isUndoShortCut = function (event) { return (event.metaKey || event.ctrlKey) && 'z' === event.key; }; this.isCloudGridView = function () { return 'cloud' === this.getFilter('source') && 'grid' === this.getViewSelection(); }; this.isClickedInLibrary = function (event) { if (event.target === document.body) { return true; // When the rename dialog is closed it sets the target to the body. } var libraryElement = document.getElementById('elementor-template-library-modal'); return libraryElement && event.target === libraryElement; }; this.clearLastRemovedItems = function () { lastDeletedItems.clear(); }; this.addLastRemovedItems = function (ids) { if (!Array.isArray(ids) && !ids.length) { return; } ids.forEach(function (id) { return lastDeletedItems.add(id); }); }; this.selectAllTemplates = function () { var _this2 = this; document.querySelectorAll('.elementor-template-library-template[data-template_id]').forEach(function (element) { var templateId = element.getAttribute('data-template_id'); var type = element.getAttribute('data-type'); element.classList.add('bulk-selected-item'); _this2.addBulkSelectionItem(templateId, type); }); this.layout.handleBulkActionBar(); }; this.restoreRemovedItems = function () { this.onUndoDelete(1 < lastDeletedItems.size); }; this.getSourceSelection = function () { return storage.getItem(storageKeyPrefix + sourceKey); }; this.setSourceSelection = function (value) { return storage.setItem(storageKeyPrefix + sourceKey, value); }; this.getViewSelection = function () { return storage.getItem(storageKeyPrefix + viewKey); }; this.setViewSelection = function (value) { return storage.setItem(storageKeyPrefix + viewKey, value); }; this.getTemplateTypes = function (type) { if (type) { return templateTypes[type]; } return templateTypes; }; this.registerTemplateType = function (type, data) { if (templateTypes.hasOwnProperty(type)) { return; } templateTypes[type] = data; }; this.deleteTemplate = function (templateModel, options) { this.clearLastRemovedItems(); var dialog = self.getDeleteDialog(templateModel); dialog.onConfirm = function () { if (options.onConfirm) { options.onConfirm(); } var templateId = templateModel.get('template_id'); var source = templateModel.get('source'); var itemType = templateModel.get('subType'); elementorCommon.ajax.addRequest('delete_template', { data: { source: source, template_id: templateId }, success: function success(response) { templatesCollection.remove(templateModel); if ('cloud' === source) { self.addLastRemovedItems([templateId]); } if (options.onSuccess) { options.onSuccess(response); } self.layout.updateViewCollection(self.filterTemplates()); var buttons = 'cloud' === source ? [{ name: 'undo_bulk', text: __('Undo', 'elementor'), callback: function callback() { self.onUndoDelete(); } }] : null; elementor.notifications.showToast({ message: "1 item deleted successfully", buttons: buttons }); self.triggerQuotaUpdate(); self.resetBulkActionBar(); self.eventManager.sendItemDeletedEvent({ library_type: source, item_type: itemType }); } }); }; dialog.show(); }; this.renameTemplate = function (templateModel, options) { var originalTitle = templateModel.get('title'); _this3.clearLastRemovedItems(); var dialog = _this3.getRenameDialog(templateModel); return new Promise(function (resolve) { dialog.onConfirm = function () { if (options.onConfirm) { options.onConfirm(); } var source = templateModel.get('source'); elementorCommon.ajax.addRequest('rename_template', { data: { source: source, id: templateModel.get('template_id'), title: templateModel.get('title') }, success: function success(response) { templateModel.trigger('change:title'); _this3.eventManager.sendTemplateRenameEvent({ source: source }); resolve(response); }, error: function error(_error) { _this3.showErrorDialog(_error); templateModel.set('title', originalTitle); resolve(); } }); }; dialog.show(); }); }; this.getRenameDialog = function (templateModel) { var headerMessage = sprintf( // Translators: %1$s: Folder name, %2$s: Number of templates. __('Rename "%1$s"', 'elementor'), templateModel.get('title')); var originalTitle = templateModel.get('title'); var $inputArea = jQuery('', { id: 'elementor-rename-template-dialog__input', type: 'text', value: templateModel.get('title') }).attr('autocomplete', 'off'); var dialog = elementorCommon.dialogsManager.createWidget('confirm', { id: 'elementor-template-library-rename-dialog', headerMessage: headerMessage, message: $inputArea, strings: { confirm: __('Rename', 'elementor') }, hide: { ignore: '#elementor-template-library-modal' }, onCancel: function onCancel() { templateModel.set('title', originalTitle); }, onShow: function onShow() { elementor.templates.eventManager.sendPageViewEvent({ location: elementorCommon.eventsManager.config.secondaryLocations.templateLibrary.renameDialog }); $inputArea.trigger('focus'); } }); $inputArea.on('input', function (event) { event.preventDefault(); var title = event.target.value.trim(); templateModel.set('title', title, { silent: true }); dialog.getElements('ok').prop('disabled', !self.isTemplateTitleValid(title)); }); return dialog; }; this.isTemplateTitleValid = function (title) { return title.trim().length > 0 && title.trim().length <= 75; }; this.getFolderTemplates = function (parentElement) { _this3.clearLastRemovedItems(); var parentId = parentElement.model.get('template_id'); var parentTitle = parentElement.model.get('title'); return new Promise(function (resolve) { isLoading = true; var ajaxOptions = { data: { source: 'cloud', template_id: parentId }, success: function success(data) { _this3.setFilter('orderby', '', true); _this3.setFilter('order', '', true); _this3.setFilter('parent', { id: parentId, title: parentTitle }); templatesCollection = new TemplateLibraryCollection(data.templates); elementor.templates.layout.hideLoadingView(); self.layout.updateViewCollection(templatesCollection.models); self.layout.modalContent.currentView.ui.addNewFolder.remove(); self.layout.modalContent.currentView.ui.addNewFolderDivider.remove(); self.layout.resetSortingUI(); isLoading = false; resolve(); }, error: function error(_error2) { isLoading = false; _this3.showErrorDialog(_error2); } }; elementorCommon.ajax.addRequest('get_item_children', ajaxOptions); }); }; this.createFolder = function (folderData, options) { var _this4 = this; this.clearLastRemovedItems(); if (null !== this.getFilter('parent')) { this.showErrorDialog(__('You can not create a folder inside another folder.', 'elementor')); return; } var dialog = this.getCreateFolderDialog(folderData); return new Promise(function (resolve) { dialog.onConfirm = /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() { return _regenerator.default.wrap(function (_context) { while (1) switch (_context.prev = _context.next) { case 0: _context.next = 1; return elementorCommon.ajax.addRequest('create_folder', { data: { source: folderData.source, title: folderData.title }, success: function success(response) { resolve(response); options === null || options === void 0 || options.onSuccess(); _this4.eventManager.sendFolderCreateEvent(); }, error: function error(_error3) { _this4.showErrorDialog(_error3); resolve(); } }); case 1: case "end": return _context.stop(); } }, _callee); })); dialog.show(); }); }; this.getCreateFolderDialog = function (folderData) { var paragraph = document.createElement('p'); paragraph.className = 'elementor-create-folder-template-dialog__p'; paragraph.textContent = __('Save assets to reuse on any site in your account.', 'elementor'); var inputArea = document.createElement('input'); inputArea.className = 'elementor-create-folder-template-dialog__input'; inputArea.type = 'text'; inputArea.value = ''; inputArea.placeholder = __('Folder name', 'elementor'); inputArea.autocomplete = 'off'; var fragment = document.createDocumentFragment(); fragment.appendChild(paragraph); fragment.appendChild(inputArea); var dialog = elementorCommon.dialogsManager.createWidget('confirm', { id: 'elementor-template-library-create-new-folder-dialog', headerMessage: __('Create a new folder', 'elementor'), message: fragment, strings: { confirm: __('Create', 'elementor') }, hide: { ignore: '#elementor-template-library-modal' }, onShow: function onShow() { inputArea.focus(); elementor.templates.eventManager.sendPageViewEvent({ location: elementorCommon.eventsManager.config.secondaryLocations.templateLibrary.newFolderModal }); } }); dialog.getElements('ok').prop('disabled', true); inputArea.addEventListener('input', function (event) { event.preventDefault(); var title = event.target.value.trim(); folderData.title = title; var isTitleValid = self.isTemplateTitleValid(title); dialog.getElements('ok').prop('disabled', !isTitleValid); }); return dialog; }; this.deleteFolder = function (templateModel, options) { var _this5 = this; this.clearLastRemovedItems(); var ajaxOptions = { data: { source: 'cloud', template_id: templateModel.get('template_id') }, success: function success(data) { return _this5.handleGetFolderDataSuccess(templateModel, options, data); } }; elementorCommon.ajax.addRequest('get_item_children', ajaxOptions); }; this.handleGetFolderDataSuccess = function (templateModel, options, data) { var _this6 = this; var dialog = this.getDeleteFolderDialog(templateModel, data); dialog.onConfirm = function () { var _options$onConfirm; (_options$onConfirm = options.onConfirm) === null || _options$onConfirm === void 0 || _options$onConfirm.call(options); _this6.sendDeleteRequest(templateModel, options); }; dialog.show(); }; this.getDeleteFolderDialog = function (templateModel, data) { var deleteFolderDialog = elementorCommon.dialogsManager.createWidget('confirm', { id: 'elementor-template-library-delete-dialog', headerMessage: __('Delete this folder?', 'elementor'), message: sprintf( // Translators: %1$s: Folder name, %2$s: Number of templates. __('This will permanently delete "%1$s" that contains %2$d templates.', 'elementor'), templateModel.get('title'), data.total), strings: { confirm: __('Delete', 'elementor') }, onShow: function onShow() { elementor.templates.eventManager.sendPageViewEvent({ location: elementorCommon.eventsManager.config.secondaryLocations.templateLibrary.deleteFolderDialog }); } }); deleteFolderDialog.getElements('ok').addClass('e-danger color-white'); return deleteFolderDialog; }; this.getBulkDeleteDialog = function () { var bulkDeleteDialog = elementorCommon.dialogsManager.createWidget('confirm', { id: 'elementor-template-library-bulk-delete-dialog', headerMessage: __('Delete items?', 'elementor'), message: sprintf( // Translators: %1$s: Number of selected items. __('This will permanently remove %1$s selected items.', 'elementor'), bulkSelectedItems.size), strings: { confirm: __('Delete', 'elementor') } }); bulkDeleteDialog.getElements('ok').addClass('e-danger color-white'); return bulkDeleteDialog; }; this.sendDeleteRequest = function (templateModel, options) { var _this7 = this; var templateId = templateModel.get('template_id'); var source = templateModel.get('source'); elementorCommon.ajax.addRequest('delete_template', { data: { source: source, template_id: templateId }, success: function success(response) { var _options$onSuccess; self.addLastRemovedItems([templateId]); templatesCollection.remove(templateModel, { silent: true }); (_options$onSuccess = options.onSuccess) === null || _options$onSuccess === void 0 || _options$onSuccess.call(options, response); elementor.templates.eventManager.sendPageViewEvent({ location: elementorCommon.eventsManager.config.secondaryLocations.templateLibrary.deleteFolderDialog }); elementor.templates.eventManager.sendItemDeletedEvent({ library_type: source, item_type: 'folder' }); _this7.triggerQuotaUpdate(); } }); }; /** * @param {*} model - Template model. * @param {Object} args - Template arguments. * @deprecated since 2.8.0, use `$e.run( 'library/insert-template' )` instead. */ this.importTemplate = function (model) { var args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; this.clearLastRemovedItems(); elementorDevTools.deprecation.deprecated('importTemplate', '2.8.0', "$e.run( 'library/insert-template' )"); args.model = model; $e.run('library/insert-template', args); }; this.saveTemplate = function (type, data) { var _data$source; this.clearLastRemovedItems(); var templateType = templateTypes[type]; _.extend(data, { source: (_data$source = data.source) !== null && _data$source !== void 0 ? _data$source : 'local', type: type }); if (templateType.prepareSavedData) { data = templateType.prepareSavedData(data); } data.content = JSON.stringify(data.content); var defaultAjaxParams = { data: data, success: function success(successData) { $e.route('library/templates/my-templates', { onBefore: function onBefore() { self.triggerQuotaUpdate(); if (templatesCollection) { var itemExist = templatesCollection.findWhere({ template_id: successData.template_id }); if (!itemExist) { templatesCollection.add(successData); } } self.sendOnSavedTemplateSuccessEvent(data); } }); }, error: function error(errorData) { self.showErrorDialog(errorData); self.clearToastConfig(); self.sendOnSavedTemplateFailedEvent(data); } }; var ajaxParams = _.extend(defaultAjaxParams, templateType.ajaxParams); elementorCommon.ajax.addRequest(this.getSaveAjaxAction(data.save_context), ajaxParams); }; this.sendOnSavedTemplateSuccessEvent = function (formData) { if (_constants.SAVE_CONTEXTS.SAVE === formData.save_context) { self.eventManager.sendTemplateSavedEvent({ library_type: formData.source, template_type: formData.type }); } else if ([_constants.SAVE_CONTEXTS.COPY, _constants.SAVE_CONTEXTS.MOVE].includes(formData.save_context)) { self.eventManager.sendTemplateTransferEvent({ transfer_method: formData.save_context, template_type: formData.type, template_origin: formData.from_source, template_destination: formData.source }); } else if ([_constants.SAVE_CONTEXTS.BULK_MOVE, _constants.SAVE_CONTEXTS.BULK_COPY].includes(formData.save_context)) { self.eventManager.sendBulkActionsSuccessEvent({ bulk_action: _constants.SAVE_CONTEXTS.BULK_MOVE === formData.save_context ? 'move' : 'copy', library_type: formData.source, bulk_count: formData.from_template_id.length, template_origin: formData.from_source, template_destination: formData.source }); } }; this.sendOnSavedTemplateFailedEvent = function (formData) { if ([_constants.SAVE_CONTEXTS.BULK_MOVE, _constants.SAVE_CONTEXTS.BULK_COPY].includes(formData.save_context)) { self.eventManager.sendBulkActionsFailedEvent({ bulk_action: _constants.SAVE_CONTEXTS.BULK_MOVE === formData.save_context ? 'move' : 'copy', library_type: formData.source, bulk_count: formData.from_template_id.length, template_origin: formData.from_source, template_destination: formData.source }); } }; this.getSaveAjaxAction = function (saveContext) { var _saveActions$saveCont; this.clearLastRemovedItems(); var saveActions = (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, _constants.SAVE_CONTEXTS.SAVE, 'save_template'), _constants.SAVE_CONTEXTS.MOVE, 'move_template'), _constants.SAVE_CONTEXTS.COPY, 'copy_template'), _constants.SAVE_CONTEXTS.BULK_MOVE, 'bulk_move_templates'), _constants.SAVE_CONTEXTS.BULK_COPY, 'bulk_copy_templates'); return (_saveActions$saveCont = saveActions[saveContext]) !== null && _saveActions$saveCont !== void 0 ? _saveActions$saveCont : 'save_template'; }; this.requestTemplateContent = function (source, id, ajaxOptions) { this.clearLastRemovedItems(); var options = { unique_id: id, data: { source: source, edit_mode: true, display: true, template_id: id } }; if (ajaxOptions) { jQuery.extend(true, options, ajaxOptions); } return elementorCommon.ajax.addRequest('get_template_data', options); }; this.hasGlobalStyles = function (templateData) { var _templateData$global_, _templateData$global_2; var hasClasses = ((_templateData$global_ = templateData.global_classes) === null || _templateData$global_ === void 0 ? void 0 : _templateData$global_.items) && Object.keys(templateData.global_classes.items).length > 0; var hasVariables = ((_templateData$global_2 = templateData.global_variables) === null || _templateData$global_2 === void 0 ? void 0 : _templateData$global_2.data) && Object.keys(templateData.global_variables.data).length > 0; return hasClasses || hasVariables; }; this.syncGlobalStylesBeforeSave = function () { var promises = []; var event = new CustomEvent('elementor/global-styles/before-save', { detail: { promises: promises } }); window.dispatchEvent(event); return Promise.allSettled(promises); }; this.markAsFavorite = function (templateModel, favorite) { this.clearLastRemovedItems(); var options = { data: { source: templateModel.get('source'), template_id: templateModel.get('template_id'), favorite: favorite } }; return elementorCommon.ajax.addRequest('mark_template_as_favorite', options); }; this.getDeleteDialog = function (templateModel) { if (!deleteDialog) { deleteDialog = elementorCommon.dialogsManager.createWidget('confirm', { id: 'elementor-template-library-delete-dialog', headerMessage: __('Delete this template?', 'elementor'), message: sprintf( // Translators: %1$s: Template name. __('This will permanently remove "%1$s".', 'elementor'), templateModel.get('title')), strings: { confirm: __('Delete', 'elementor') }, onShow: function onShow() { elementor.templates.eventManager.sendPageViewEvent({ location: elementorCommon.eventsManager.config.secondaryLocations.templateLibrary.deleteDialog }); } }); deleteDialog.getElements('ok').addClass('e-danger color-white'); } return deleteDialog; }; this.getErrorDialog = function () { if (!errorDialog) { errorDialog = elementorCommon.dialogsManager.createWidget('alert', { id: 'elementor-template-library-error-dialog', headerMessage: __('An error occurred.', 'elementor') }); } return errorDialog; }; this.getTemplatesCollection = function () { return templatesCollection; }; this.getConfig = function (item) { if (item) { return config[item] ? config[item] : {}; } return config; }; this.requestLibraryData = function (options) { if (templatesCollection && !options.forceUpdate) { if (options.onUpdate) { options.onUpdate(); } return; } if (options.onBeforeUpdate) { options.onBeforeUpdate(); } var ajaxOptions = { data: {}, success: function success(data) { templatesCollection = new TemplateLibraryCollection(data.templates); if (data.config) { config = data.config; } if (options.onUpdate) { options.onUpdate(); } } }; if (options.forceSync) { ajaxOptions.data.sync = true; } elementorCommon.ajax.addRequest('get_library_data', ajaxOptions); }; this.getFilter = function (name) { return elementor.channels.templates.request('filter:' + name); }; this.setFilter = function (name, value, silent) { this.clearLastRemovedItems(); elementor.channels.templates.reply('filter:' + name, value); if (!silent) { elementor.channels.templates.trigger('filter:change'); } }; this.getFilterTerms = function (termName) { if (termName) { return filterTerms[termName]; } return filterTerms; }; this.setScreen = function (args) { this.clearLastRemovedItems(); elementor.channels.templates.stopReplying(); self.setFilter('source', args.source, true); self.setFilter('type', args.type, true); self.setFilter('subtype', args.subtype, true); self.showTemplates(); }; this.loadTemplates = function (onUpdate) { this.clearLastRemovedItems(); isLoading = true; total = 0; self.layout.showLoadingView(); var query = { source: this.getFilter('source') }, options = {}; // TODO: Remove - it when all the data commands is ready, manage the cache!. if ('local' === query.source || 'cloud' === query.source) { options.refresh = true; } this.setFilter('parent', null, query); var loadTemplatesData = function loadTemplatesData() { return $e.data.get('library/templates', query, options).then(function (result) { var _result$data; var templates = 'cloud' === query.source ? result.data.templates.templates : result.data.templates; templatesCollection = new TemplateLibraryCollection(templates); if ((_result$data = result.data) !== null && _result$data !== void 0 && (_result$data = _result$data.templates) !== null && _result$data !== void 0 && _result$data.total) { var _result$data2; total = (_result$data2 = result.data) === null || _result$data2 === void 0 || (_result$data2 = _result$data2.templates) === null || _result$data2 === void 0 ? void 0 : _result$data2.total; } if (result.data.config) { config = result.data.config; } self.layout.hideLoadingView(); if (onUpdate) { onUpdate(); } }).finally(function () { isLoading = false; }); }; var handleCloudSource = function handleCloudSource() { var _elementorAppConfig$c; if ('undefined' === typeof ((_elementorAppConfig$c = elementorAppConfig['cloud-library']) === null || _elementorAppConfig$c === void 0 ? void 0 : _elementorAppConfig$c.quota)) { return $e.components.get('cloud-library').utils.getQuotaConfig(true).then(function () { if (self.shouldShowCloudStateView()) { self.layout.showCloudStateView(); return; } return loadTemplatesData(); }).catch(function () { self.layout.showCloudStateView(); isLoading = false; }); } if (self.shouldShowCloudStateView()) { self.layout.showCloudStateView(); return; } return loadTemplatesData(); }; if ('cloud' === query.source) { handleCloudSource(); } else { loadTemplatesData(); } }; this.searchTemplates = function (data) { _this3.clearLastRemovedItems(); return new Promise(function (resolve) { _this3.setFilter('parent', null); isLoading = true; var ajaxOptions = { data: data, success: function success(result) { isLoading = false; templatesCollection = new TemplateLibraryCollection(result.templates); total = result.total; self.layout.updateViewCollection(templatesCollection.models); _this3.setFilter('text', data.search); resolve(result); }, error: function error(_error4) { isLoading = false; _this3.showErrorDialog(_error4); resolve(); } }; elementorCommon.ajax.addRequest('search_templates', ajaxOptions); }); }; this.loadMore = function () { var _this3$getFilter; var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, onUpdate = _ref4.onUpdate, _ref4$search = _ref4.search, search = _ref4$search === void 0 ? '' : _ref4$search, _ref4$refresh = _ref4.refresh, refresh = _ref4$refresh === void 0 ? false : _ref4$refresh; isLoading = true; _this3.clearLastRemovedItems(); var source = _this3.getFilter('source'); var parentId = (_this3$getFilter = _this3.getFilter('parent')) === null || _this3$getFilter === void 0 ? void 0 : _this3$getFilter.id; var ajaxOptions = { data: { source: source, offset: refresh ? 0 : templatesCollection.length, search: search, parentId: parentId, orderby: elementor.templates.getFilter('orderby') || null, order: elementor.templates.getFilter('order') || null }, success: function success(result) { var collection = new TemplateLibraryCollection(result.templates); if (refresh) { templatesCollection.reset(collection.models); self.layout.updateViewCollection(templatesCollection.models); } else { templatesCollection.add(collection.models, { merge: true }); self.layout.addTemplates(collection.models); } if (onUpdate) { onUpdate(); } isLoading = false; }, error: function error() { isLoading = false; } }; elementorCommon.ajax.addRequest('load_more_templates', ajaxOptions); }; this.showTemplates = function () { // The tabs should exist in DOM on loading. self.layout.setHeaderDefaultParts(); self.loadTemplates(function () { var templatesToShow = self.filterTemplates(); self.layout.showTemplatesView(new TemplateLibraryCollection(templatesToShow)); self.handleToast(); }); }; this.handleToast = function () { var _toastConfig, _toastConfig2; if (!((_toastConfig = toastConfig) !== null && _toastConfig !== void 0 && _toastConfig.show)) { return; } elementor.notifications.showToast((_toastConfig2 = toastConfig) === null || _toastConfig2 === void 0 ? void 0 : _toastConfig2.options); this.clearToastConfig(); }; this.setToastConfig = function (newConfig) { toastConfig = newConfig; }; this.clearToastConfig = function () { this.setToastConfig({ show: false, options: {} }); }; this.filterTemplates = function () { var activeSource = self.getFilter('source'); return templatesCollection.filter(function (model) { if (activeSource !== model.get('source')) { return false; } var typeInfo = templateTypes[model.get('type')]; return !typeInfo || false !== typeInfo.showInLibrary; }); }; this.showErrorDialog = function (errorMessage) { if ('object' === (0, _typeof2.default)(errorMessage)) { var message = ''; _.each(errorMessage, function (error) { if (!(error !== null && error !== void 0 && error.message)) { return; } message += '
' + error.message + '.
'; }); errorMessage = message; } else if (errorMessage) { errorMessage += '.'; } if (errorMessage) { errorMessage = __('The following error(s) occurred while processing the request:', 'elementor') + '
' + errorMessage + '
'; } else { errorMessage = __('Please try again.', 'elementor'); } self.getErrorDialog().setMessage(errorMessage).show(); }; this.onSelectSourceFilterChange = function (event) { var _event$currentTarget$, _event$currentTarget; var templatesSource = (_event$currentTarget$ = event === null || event === void 0 || (_event$currentTarget = event.currentTarget) === null || _event$currentTarget === void 0 || (_event$currentTarget = _event$currentTarget.dataset) === null || _event$currentTarget === void 0 ? void 0 : _event$currentTarget.source) !== null && _event$currentTarget$ !== void 0 ? _event$currentTarget$ : 'local', alreadyActive = templatesSource === self.getFilter('source'); if (alreadyActive) { return; } self.setSourceSelection(templatesSource); self.setFilter('source', templatesSource, true); self.clearBulkSelectionItems(); self.loadTemplates(function () { var templatesToShow = self.filterTemplates(); self.layout.showTemplatesView(new TemplateLibraryCollection(templatesToShow)); }); }; this.onSelectViewChange = function (selectedView) { self.setViewSelection(selectedView); self.setFilter(viewKey, selectedView, true); self.layout.updateViewCollection(self.filterTemplates()); self.resetBulkActionBar(); }; this.resetBulkActionBar = function () { _this3.clearBulkSelectionItems(); _this3.layout.handleBulkActionBarUi(); }; this.shouldShowCloudStateView = function () { if (!elementor.config.library_connect.is_connected) { return true; } return !this.hasCloudLibraryQuota() || this.cloudLibraryIsDeactivated(); }; this.cloudLibraryIsDeactivated = function () { var _elementorAppConfig$c2; var quota = (_elementorAppConfig$c2 = elementorAppConfig['cloud-library']) === null || _elementorAppConfig$c2 === void 0 ? void 0 : _elementorAppConfig$c2.quota; if (!quota) { return false; } var _quota$currentUsage = quota.currentUsage, currentUsage = _quota$currentUsage === void 0 ? 0 : _quota$currentUsage, _quota$threshold = quota.threshold, threshold = _quota$threshold === void 0 ? 0 : _quota$threshold, _quota$subscriptionId = quota.subscriptionId, subscriptionId = _quota$subscriptionId === void 0 ? '' : _quota$subscriptionId; var isOverThreshold = currentUsage > threshold; var hasSubscription = '' !== subscriptionId; return isOverThreshold && !hasSubscription; }; this.hasCloudLibraryQuota = function () { var _elementorAppConfig$c3, _elementorAppConfig$c4; return 'undefined' !== typeof ((_elementorAppConfig$c3 = elementorAppConfig['cloud-library']) === null || _elementorAppConfig$c3 === void 0 ? void 0 : _elementorAppConfig$c3.quota) && 0 < ((_elementorAppConfig$c4 = elementorAppConfig['cloud-library'].quota) === null || _elementorAppConfig$c4 === void 0 ? void 0 : _elementorAppConfig$c4.threshold); }; this.addBulkSelectionItem = function (templateId) { var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'template'; bulkSelectedItemsTypes.push(type); bulkSelectedItems.add(parseInt(templateId)); }; this.removeBulkSelectionItem = function (templateId) { var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'template'; var index = bulkSelectedItemsTypes.findIndex(function (item) { return item === type; }); if (index !== -1) { bulkSelectedItemsTypes.splice(index, 1); } bulkSelectedItems.delete(parseInt(templateId)); }; this.clearBulkSelectionItems = function () { bulkSelectedItems.clear(); bulkSelectedItemsTypes = []; }; this.getBulkSelectionItems = function () { return bulkSelectedItems; }; this.getUniqueBulkSelectionItemsTypesEventLabel = function () { var types = (0, _toConsumableArray2.default)(new Set(bulkSelectedItemsTypes)); var hasFolders = types.includes('folder'); var hasTemplates = types.some(function (type) { return type !== 'folder'; }); if (hasFolders && hasTemplates) { return 'both'; } if (hasFolders) { return 'folder'; } return 'template'; }; this.onBulkDeleteClick = function () { var _this8 = this; this.clearLastRemovedItems(); return new Promise(function (resolve) { var selectedItems = _this8.getBulkSelectionItems(); if (!selectedItems.size) { return; } var dialog = _this8.getBulkDeleteDialog(); var source = _this8.getFilter('source'); var templateIds = Array.from(selectedItems); dialog.onConfirm = function () { isLoading = true; var ajaxOptions = { data: { source: source, template_ids: templateIds }, success: function success() { isLoading = false; var modelsToRemove = templatesCollection.models.filter(function (templateModel) { return selectedItems.has(templateModel.get('template_id')); }); if ('cloud' === source) { self.addLastRemovedItems(templateIds); } templatesCollection.remove(modelsToRemove); self.layout.updateViewCollection(self.filterTemplates()); var tempBulkSelectedItemsTypes = bulkSelectedItemsTypes; self.clearBulkSelectionItems(); bulkSelectedItemsTypes = tempBulkSelectedItemsTypes; self.eventManager.sendBulkActionsSuccessEvent({ library_type: source, bulk_action: 'delete', bulk_count: templateIds.length }); var buttons = 'cloud' === source ? [{ name: 'undo_bulk_delete', text: __('Undo', 'elementor'), callback: function callback() { _this8.onUndoDelete(1 < templateIds.length); } }] : null; elementor.notifications.showToast({ message: "".concat(templateIds.length, " items deleted successfully"), buttons: buttons }); _this8.triggerQuotaUpdate(); resolve(); }, error: function error(_error5) { isLoading = false; _this8.showErrorDialog(_error5); self.eventManager.sendBulkActionsFailedEvent({ library_type: source, bulk_action: 'delete', bulk_count: templateIds.length }); resolve(); } }; elementorCommon.ajax.addRequest('bulk_delete_templates', ajaxOptions); }; dialog.onCancel = function () { resolve(); }; dialog.show(); }); }; this.onUndoDelete = function () { var _this9 = this; var isBulk = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; return new Promise(function (resolve) { isLoading = true; if (!lastDeletedItems.size) { return resolve(); } var source = _this9.getFilter('source'); var templateIds = Array.from(lastDeletedItems); var ajaxOptions = { data: { source: source, template_ids: templateIds }, success: function success() { isLoading = false; $e.routes.refreshContainer('library'); _this9.clearLastRemovedItems(); _this9.triggerQuotaUpdate(); bulkSelectedItemsTypes = []; resolve(); }, error: function error(_error6) { isLoading = false; _this9.clearLastRemovedItems(); _this9.showErrorDialog(_error6); resolve(); } }; elementorCommon.ajax.addRequest('bulk_undo_delete_items', ajaxOptions); self.eventManager.sendDeletionUndoEvent({ is_bulk: isBulk, item_type: _this9.getUniqueBulkSelectionItemsTypesEventLabel() }); }); }; this.triggerQuotaUpdate = function () { var force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; elementor.channels.templates.trigger('quota:update', { force: force }); }; }; module.exports = new TemplateLibraryManager(); /***/ }), /***/ "../assets/dev/js/editor/components/template-library/models/template.js": /*!******************************************************************************!*\ !*** ../assets/dev/js/editor/components/template-library/models/template.js ***! \******************************************************************************/ /***/ ((module) => { "use strict"; module.exports = Backbone.Model.extend({ defaults: { template_id: 0, title: '', source: '', type: '', subtype: '', author: '', thumbnail: '', url: '', export_link: '', status: null, preview_url: null, generate_preview_url: null, tags: [] }, isLocked: function isLocked() { return 'locked' === this.get('status'); } }); /***/ }), /***/ "../assets/dev/js/editor/components/template-library/views/library-layout.js": /*!***********************************************************************************!*\ !*** ../assets/dev/js/editor/components/template-library/views/library-layout.js ***! \***********************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"]; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js")); var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js")); var _constants = __webpack_require__(/*! ./../constants */ "../assets/dev/js/editor/components/template-library/constants.js"); var TemplateLibraryHeaderActionsView = __webpack_require__(/*! elementor-templates/views/parts/header-parts/actions */ "../assets/dev/js/editor/components/template-library/views/parts/header-parts/actions.js"), TemplateLibraryHeaderMenuView = __webpack_require__(/*! elementor-templates/views/parts/header-parts/menu */ "../assets/dev/js/editor/components/template-library/views/parts/header-parts/menu.js"), TemplateLibraryHeaderPreviewView = __webpack_require__(/*! elementor-templates/views/parts/header-parts/preview */ "../assets/dev/js/editor/components/template-library/views/parts/header-parts/preview.js"), TemplateLibraryHeaderBackView = __webpack_require__(/*! elementor-templates/views/parts/header-parts/back */ "../assets/dev/js/editor/components/template-library/views/parts/header-parts/back.js"), TemplateLibraryCollectionView = __webpack_require__(/*! elementor-templates/views/parts/templates */ "../assets/dev/js/editor/components/template-library/views/parts/templates.js"), TemplateLibrarySaveTemplateView = __webpack_require__(/*! elementor-templates/views/parts/save-template */ "../assets/dev/js/editor/components/template-library/views/parts/save-template.js"), TemplateLibrarySaveTemplateVariantBView = __webpack_require__(/*! elementor-templates/views/parts/save-template-variant-b */ "../assets/dev/js/editor/components/template-library/views/parts/save-template-variant-b.js"), TemplateLibraryImportView = __webpack_require__(/*! elementor-templates/views/parts/import */ "../assets/dev/js/editor/components/template-library/views/parts/import.js"), TemplateLibraryConnectView = __webpack_require__(/*! elementor-templates/views/parts/connect */ "../assets/dev/js/editor/components/template-library/views/parts/connect.js"), TemplateLibraryCloudStateView = __webpack_require__(/*! elementor-templates/views/parts/cloud-states */ "../assets/dev/js/editor/components/template-library/views/parts/cloud-states.js"), TemplateLibraryPreviewView = __webpack_require__(/*! elementor-templates/views/parts/preview */ "../assets/dev/js/editor/components/template-library/views/parts/preview.js"), TemplateLibraryNavigationContainerView = __webpack_require__(/*! elementor-templates/views/parts/navigation-container */ "../assets/dev/js/editor/components/template-library/views/parts/navigation-container.js"); function resolveSaveTemplateByVariant(variant) { switch (variant) { case 'B': return TemplateLibrarySaveTemplateVariantBView; case 'control': case 'A': default: return TemplateLibrarySaveTemplateView; } } module.exports = elementorModules.common.views.modal.Layout.extend({ getModalOptions: function getModalOptions() { var _window$elementor$con, _window; var allowClosingModal = (_window$elementor$con = (_window = window) === null || _window === void 0 || (_window = _window.elementor) === null || _window === void 0 || (_window = _window.config) === null || _window === void 0 || (_window = _window.document) === null || _window === void 0 || (_window = _window.panel) === null || _window === void 0 ? void 0 : _window.allow_closing_remote_library) !== null && _window$elementor$con !== void 0 ? _window$elementor$con : true; return { id: 'elementor-template-library-modal', hide: { onOutsideClick: allowClosingModal, onBackgroundClick: allowClosingModal, onEscKeyPress: allowClosingModal, ignore: '.dialog-widget-content, .dialog-buttons-undo_bulk_delete, .dialog-buttons-template_after_save, #elementor-library--infotip__dialog, #elementor-template-library-rename-dialog, #elementor-template-library-delete-dialog' } }; }, initModal: function initModal() { var _this = this; elementorModules.common.views.modal.Layout.prototype.initModal.call(this); var $widget = this.modal.getElements('widget'); if ($widget.length && 'true' === $widget.attr('aria-modal')) { $widget.attr('role', 'dialog'); } // Move focus inside the modal when it opens (WAI-ARIA dialog pattern) this.modal.on('show', function () { var $modalWidget = _this.modal.getElements('widget'); if ($modalWidget.length) { $modalWidget.trigger('focus'); } }); // Focus trap: keep Tab/Shift+Tab cycling within the modal (WAI-ARIA dialog pattern) if ($widget.length) { $widget.on('keydown', function (event) { if ('Tab' !== event.key) { return; } var $focusable = $widget.find('a[href], button, input, select, textarea, [tabindex]').filter(':visible').not('[tabindex="-1"], [disabled]'); if (!$focusable.length) { return; } var $first = $focusable.first(); var $last = $focusable.last(); if (event.shiftKey) { if ($first[0] === event.target || $widget[0] === event.target) { event.preventDefault(); $last.trigger('focus'); } } else if ($last[0] === event.target) { event.preventDefault(); $first.trigger('focus'); } }); } }, getLogoOptions: function getLogoOptions() { return { title: __('Library', 'elementor'), click: function click() { $e.run('library/open', { toDefault: true }); } }; }, getTemplateActionButton: function getTemplateActionButton(templateData) { var subscriptionPlans = elementor.config.library_connect.subscription_plans, baseAccessTier = elementor.config.library_connect.base_access_tier, templateAccessTier = templateData.accessTier, shouldUpgrade = baseAccessTier !== templateAccessTier; var viewId = '#tmpl-elementor-template-library-' + (shouldUpgrade ? 'upgrade-plan-button' : 'insert-button'); viewId = elementor.hooks.applyFilters('elementor/editor/template-library/template/action-button', viewId, templateData); var template = Marionette.TemplateCache.get(viewId); var subscriptionPlan = subscriptionPlans[templateAccessTier]; var promotionText = elementorAppConfig.hasPro ? 'Upgrade' : "Go ".concat(subscriptionPlan.label); try { var promotionUrlPieces = new URL(subscriptionPlan.promotion_url); var queryString = promotionUrlPieces.searchParams.toString(); var promotionLinkQueryString = elementor.hooks.applyFilters('elementor/editor/template-library/template/promotion-link-search-params', queryString, templateData); return Marionette.Renderer.render(template, { promotionText: promotionText, promotionLink: "".concat(promotionUrlPieces.origin).concat(promotionUrlPieces.pathname, "?").concat(promotionLinkQueryString) }); } catch (e) { return Marionette.Renderer.render(template, { promotionText: promotionText, promotionLink: subscriptionPlan.promotion_url }); } }, setHeaderDefaultParts: function setHeaderDefaultParts() { var headerView = this.getHeaderView(); headerView.tools.show(new TemplateLibraryHeaderActionsView()); headerView.menuArea.show(new TemplateLibraryHeaderMenuView()); this.showLogo(); }, showTemplatesView: function showTemplatesView(templatesCollection) { var prevView = this.modalContent.currentView; var shouldRestoreFocus = prevView && prevView._restoreFocusToSourceFilter; var isInitialOpen = !prevView; this.modalContent.show(new TemplateLibraryCollectionView({ collection: templatesCollection })); this.syncTabpanelAriaLabelledby(); if (shouldRestoreFocus) { var newView = this.modalContent.currentView; if (newView && newView.ui.selectSourceFilter) { var $selected = newView.ui.selectSourceFilter.filter('[aria-checked="true"]'); if ($selected.length) { $selected.trigger('focus'); } } } else if (isInitialOpen) { this.focusFirstElement(); } }, syncTabpanelAriaLabelledby: function syncTabpanelAriaLabelledby() { var _$e$components$get, _this$modalContent$cu; var activeTab = (_$e$components$get = $e.components.get('library')) === null || _$e$components$get === void 0 ? void 0 : _$e$components$get.currentTab; var $container = (_this$modalContent$cu = this.modalContent.currentView) === null || _this$modalContent$cu === void 0 ? void 0 : _this$modalContent$cu.$childViewContainer; if (activeTab && $container !== null && $container !== void 0 && $container.length) { $container.attr('aria-labelledby', "tab-".concat(activeTab)); } }, focusFirstElement: function focusFirstElement() { var $widget = this.modal.getElements('widget'); if (!$widget.length) { return; } var $firstFocusable = $widget.find('button, a, input, select, [tabindex="0"]').filter(':visible').first(); if ($firstFocusable.length) { $firstFocusable.trigger('focus'); } else { $widget.attr('tabindex', '-1').trigger('focus'); } }, updateViewCollection: function updateViewCollection(models) { var _TemplateLibraryNavig; this.modalContent.currentView.collection.reset(models); this.modalContent.currentView.ui.navigationContainer.html((_TemplateLibraryNavig = new TemplateLibraryNavigationContainerView().render()) === null || _TemplateLibraryNavig === void 0 ? void 0 : _TemplateLibraryNavig.el); // Restore focus within the modal after re-render to prevent focus escaping to BODY var $widget = this.modal.getElements('widget'); if ($widget.length && !$widget[0].contains($widget[0].ownerDocument.activeElement)) { this.focusFirstElement(); } }, addTemplates: function addTemplates(models) { this.modalContent.currentView.collection.add(models, { merge: true }); }, showImportView: function showImportView() { var headerView = this.getHeaderView(); headerView.menuArea.reset(); this.modalContent.show(new TemplateLibraryImportView()); headerView.logoArea.show(new TemplateLibraryHeaderBackView()); }, showConnectView: function showConnectView(args) { this.getHeaderView().menuArea.reset(); this.modalContent.show(new TemplateLibraryConnectView(args)); }, showCloudStateView: function showCloudStateView() { elementor.templates.layout.hideLoadingView(); this.modalContent.show(new TemplateLibraryCloudStateView()); }, showSaveTemplateView: function showSaveTemplateView(elementModel) { var _arguments = arguments, _this2 = this; return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() { var context, headerView, experimentVariant, SaveTemplateView; return _regenerator.default.wrap(function (_context) { while (1) switch (_context.prev = _context.next) { case 0: context = _arguments.length > 1 && _arguments[1] !== undefined ? _arguments[1] : _constants.SAVE_CONTEXTS.SAVE; headerView = _this2.getHeaderView(); headerView.menuArea.reset(); if (_constants.SAVE_CONTEXTS.SAVE !== context) { headerView.logoArea.show(new TemplateLibraryHeaderBackView()); } _context.next = 1; return elementor.templates.eventManager.getSaveTemplateExperimentVariant(); case 1: experimentVariant = _context.sent; SaveTemplateView = resolveSaveTemplateByVariant(experimentVariant); elementor.templates.eventManager.startSaveTemplateExperiment(experimentVariant); _this2.modalContent.show(new SaveTemplateView({ model: elementModel, context: context })); case 2: case "end": return _context.stop(); } }, _callee); }))(); }, showPreviewView: function showPreviewView(templateModel) { this.modalContent.show(new TemplateLibraryPreviewView({ url: templateModel.get('url') })); var headerView = this.getHeaderView(); headerView.menuArea.reset(); headerView.tools.show(new TemplateLibraryHeaderPreviewView({ model: templateModel })); headerView.logoArea.show(new TemplateLibraryHeaderBackView()); }, showFolderView: function showFolderView(elementModel) { return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2() { return _regenerator.default.wrap(function (_context2) { while (1) switch (_context2.prev = _context2.next) { case 0: _context2.prev = 0; elementor.templates.layout.showLoadingView(); _context2.next = 1; return elementor.templates.getFolderTemplates(elementModel); case 1: _context2.prev = 1; elementor.templates.layout.hideLoadingView(); return _context2.finish(1); case 2: case "end": return _context2.stop(); } }, _callee2, null, [[0,, 1, 2]]); }))(); }, createScreenshotIframe: function createScreenshotIframe(previewUrl) { var iframe = document.createElement('iframe'); iframe.src = previewUrl; iframe.width = '1200'; iframe.height = '500'; iframe.style = 'visibility: hidden;'; document.body.appendChild(iframe); return iframe; }, handleBulkActionBarUi: function handleBulkActionBarUi() { if (0 === this.modalContent.currentView.$('.bulk-selection-item-checkbox:checked').length) { this.modalContent.currentView.$el.addClass('no-bulk-selections'); this.modalContent.currentView.$el.removeClass('has-bulk-selections'); } else { this.modalContent.currentView.$el.addClass('has-bulk-selections'); this.modalContent.currentView.$el.removeClass('no-bulk-selections'); } this.handleBulkActionBar(); }, handleBulkActionBar: function handleBulkActionBar() { var _elementor$templates$; var selectedCount = (_elementor$templates$ = elementor.templates.getBulkSelectionItems().size) !== null && _elementor$templates$ !== void 0 ? _elementor$templates$ : 0; var display = 0 === selectedCount ? 'none' : 'flex'; var countText = "".concat(selectedCount, " Selected"); var announcementText = 0 === selectedCount ? '' : "".concat(selectedCount, " ").concat(1 === selectedCount ? __('template', 'elementor') : __('templates', 'elementor'), " ").concat(__('selected. Bulk actions available.', 'elementor')); this.modalContent.currentView.ui.bulkSelectedCount.html(countText); if (announcementText && this.modalContent.currentView.ui.bulkSelectedCount.length) { this.modalContent.currentView.ui.bulkSelectedCount.attr('aria-label', announcementText); } this.modalContent.currentView.ui.bulkSelectionActionBar.css('display', display); // TODO: Temporary fix until the bulk action bar will be as separate view. var displayNavigationContainer = 0 === selectedCount ? 'flex' : 'none'; this.modalContent.currentView.ui.navigationContainer.css('display', displayNavigationContainer); }, selectAllCheckboxMinus: function selectAllCheckboxMinus() { if (this.isListView()) { this.modalContent.currentView.ui.bulkSelectAllCheckbox.addClass('checkbox-minus'); } }, selectAllCheckboxNormal: function selectAllCheckboxNormal() { if (this.isListView()) { this.modalContent.currentView.ui.bulkSelectAllCheckbox.removeClass('checkbox-minus'); } }, isListView: function isListView() { return 'list' === elementor.templates.getViewSelection(); }, resetSortingUI: function resetSortingUI() { var _this$modalContent$cu2; Array.from(((_this$modalContent$cu2 = this.modalContent.currentView.ui) === null || _this$modalContent$cu2 === void 0 ? void 0 : _this$modalContent$cu2.orderInputs) || []).forEach(function (input) { input.checked = false; }); } }); /***/ }), /***/ "../assets/dev/js/editor/components/template-library/views/parts/cloud-states.js": /*!***************************************************************************************!*\ !*** ../assets/dev/js/editor/components/template-library/views/parts/cloud-states.js ***! \***************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"]; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js")); var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js")); module.exports = Marionette.ItemView.extend({ tagName: 'main', template: '#tmpl-elementor-template-library-connect-states', id: 'elementor-template-library-connect-states', ui: { selectSourceFilter: '.elementor-template-library-filter-select-source .source-option', title: '.elementor-template-library-blank-title', message: '.elementor-template-library-blank-message', icon: '.elementor-template-library-blank-icon', button: '.elementor-template-library-cloud-empty__button', cloudBadge: '.elementor-template-library-connect-states-badge .source-option-badge.cloud-badge' }, events: { 'click @ui.selectSourceFilter': 'onSelectSourceFilterChange', 'click @ui.button': 'onButtonClick' }, modesStrings: function modesStrings() { var _elementorAppConfig$c, _elementorAppConfig, _elementorAppConfig$c2, _elementorAppConfig2, _elementorAppConfig3, _elementorAppConfig$c3, _elementorAppConfig4; var defaultIcon = this.getDefaultIcon(); return { notConnected: { title: (_elementorAppConfig$c = (_elementorAppConfig = elementorAppConfig) === null || _elementorAppConfig === void 0 || (_elementorAppConfig = _elementorAppConfig['cloud-library']) === null || _elementorAppConfig === void 0 ? void 0 : _elementorAppConfig.library_connect_title_copy) !== null && _elementorAppConfig$c !== void 0 ? _elementorAppConfig$c : __('Connect to your Elementor account', 'elementor'), message: (_elementorAppConfig$c2 = (_elementorAppConfig2 = elementorAppConfig) === null || _elementorAppConfig2 === void 0 || (_elementorAppConfig2 = _elementorAppConfig2['cloud-library']) === null || _elementorAppConfig2 === void 0 ? void 0 : _elementorAppConfig2.library_connect_sub_title_copy) !== null && _elementorAppConfig$c2 !== void 0 ? _elementorAppConfig$c2 : __('Then you can find all your templates in one convenient library.', 'elementor'), icon: defaultIcon, button: "").concat((_elementorAppConfig$c3 = (_elementorAppConfig4 = elementorAppConfig) === null || _elementorAppConfig4 === void 0 || (_elementorAppConfig4 = _elementorAppConfig4['cloud-library']) === null || _elementorAppConfig4 === void 0 ? void 0 : _elementorAppConfig4.library_connect_button_copy) !== null && _elementorAppConfig$c3 !== void 0 ? _elementorAppConfig$c3 : __('Connect', 'elementor'), "") }, connectedNoQuota: { title: __('It’s time to level up', 'elementor'), message: __('Elementor Pro plans come with Cloud Templates.', 'elementor') + '
' + __('Upgrade now to re-use your templates on all the websites you’re working on.', 'elementor'), icon: ""), button: "".concat(__('Upgrade now', 'elementor'), "") }, deactivated: { title: __('Your library has been deactivated', 'elementor'), message: __('This is because you don’t have an active subscription.', 'elementor') + '
' + __('Your templates are saved for 90 days from the day your subscription expires,', 'elementor') + '
' + __('then they’ll be gone forever.', 'elementor'), icon: ""), button: "".concat(__('Renew my subscription', 'elementor'), "") } }; }, getDefaultIcon: function getDefaultIcon() { return ""); }, getCurrentMode: function getCurrentMode() { if (!elementor.config.library_connect.is_connected) { return 'notConnected'; } if (elementor.templates.cloudLibraryIsDeactivated()) { return 'deactivated'; } return 'connectedNoQuota'; }, onRender: function onRender() { var _elementor$templates$; this.updateTemplateMarkup(); this.handleElementorConnect(); this.handleCloudBadge(); (_elementor$templates$ = elementor.templates.layout.getHeaderView()) === null || _elementor$templates$ === void 0 || (_elementor$templates$ = _elementor$templates$.tools) === null || _elementor$templates$ === void 0 || (_elementor$templates$ = _elementor$templates$.$el[0]) === null || _elementor$templates$ === void 0 || (_elementor$templates$ = _elementor$templates$.classList) === null || _elementor$templates$ === void 0 || _elementor$templates$.add('e-hidden-disabled'); elementor.templates.eventManager.sendPageViewEvent({ location: elementorCommon.eventsManager.config.secondaryLocations.templateLibrary.cloudTabUpgrade }); }, handleCloudBadge: function handleCloudBadge() { var _this = this; return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() { var _this$ui$cloudBadge; var experimentVariant; return _regenerator.default.wrap(function (_context) { while (1) switch (_context.prev = _context.next) { case 0: if ((_this$ui$cloudBadge = _this.ui.cloudBadge) !== null && _this$ui$cloudBadge !== void 0 && _this$ui$cloudBadge.length) { _context.next = 1; break; } return _context.abrupt("return"); case 1: _context.next = 2; return elementor.templates.eventManager.getSaveTemplateExperimentVariant(); case 2: experimentVariant = _context.sent; _this.ui.cloudBadge.toggle('B' === experimentVariant); case 3: case "end": return _context.stop(); } }, _callee); }))(); }, updateTemplateMarkup: function updateTemplateMarkup() { var modeStrings = this.modesStrings()[this.getCurrentMode()]; this.ui.title.html(modeStrings.title); this.ui.message.html(modeStrings.message); this.ui.button.html(modeStrings.button); this.ui.icon.html(modeStrings.icon); }, handleElementorConnect: function handleElementorConnect() { var $connectButton = this.$el.find('.connect-button'); if (!$connectButton.length) { return; } $connectButton.elementorConnect({ popup: { width: 726, height: 534 }, success: function success() { elementor.config.library_connect.is_connected = true; elementor.notifications.showToast({ message: __('Connected successfully.', 'elementor') }); $e.routes.refreshContainer('library'); }, error: function error() { elementor.config.library_connect.is_connected = false; } }); }, onSelectSourceFilterChange: function onSelectSourceFilterChange(event) { elementor.templates.onSelectSourceFilterChange(event); }, onButtonClick: function onButtonClick() { elementor.templates.eventManager.sendUpgradeClickedEvent({ secondaryLocation: elementorCommon.eventsManager.config.secondaryLocations.templateLibrary.cloudTab, upgradePosition: elementorCommon.eventsManager.config.secondaryLocations.templateLibrary.cloudTab }); }, onDestroy: function onDestroy() { var _elementor$templates$2; (_elementor$templates$2 = elementor.templates.layout.getHeaderView()) === null || _elementor$templates$2 === void 0 || (_elementor$templates$2 = _elementor$templates$2.tools) === null || _elementor$templates$2 === void 0 || (_elementor$templates$2 = _elementor$templates$2.$el[0]) === null || _elementor$templates$2 === void 0 || (_elementor$templates$2 = _elementor$templates$2.classList) === null || _elementor$templates$2 === void 0 || _elementor$templates$2.remove('e-hidden-disabled'); } }); /***/ }), /***/ "../assets/dev/js/editor/components/template-library/views/parts/connect.js": /*!**********************************************************************************!*\ !*** ../assets/dev/js/editor/components/template-library/views/parts/connect.js ***! \**********************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"]; module.exports = Marionette.ItemView.extend({ tagName: 'main', template: '#tmpl-elementor-template-library-connect', id: 'elementor-template-library-connect', ui: { connect: '#elementor-template-library-connect__button', thumbnails: '#elementor-template-library-connect-thumbnails' }, templateHelpers: function templateHelpers() { return this.getOption('texts'); }, onRender: function onRender() { var _this = this; elementor.templates.eventManager.sendPageViewEvent({ location: elementorCommon.eventsManager.config.secondaryLocations.templateLibrary.cloudTabConnect }); this.ui.connect.elementorConnect({ parseUrl: function parseUrl(url) { return url.replace('%%template_type%%', _this.model.get('type')); }, success: function success() { elementor.config.library_connect.is_connected = true; // If is connecting during insert template. if (_this.getOption('model')) { $e.run('library/insert-template', { model: _this.getOption('model') }); } else { $e.run('library/close'); elementor.notifications.showToast({ message: __('Connected successfully.', 'elementor') }); } }, error: function error() { elementor.config.library_connect.is_connected = false; } }); } }); /***/ }), /***/ "../assets/dev/js/editor/components/template-library/views/parts/folders/folder-empty.js": /*!***********************************************************************************************!*\ !*** ../assets/dev/js/editor/components/template-library/views/parts/folders/folder-empty.js ***! \***********************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; /* provided dependency */ var sprintf = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["sprintf"]; /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"]; module.exports = Marionette.ItemView.extend({ tagName: 'li', className: 'no-results', template: _.template(sprintf(/* Translators: 1: Empty message, 2: CTA. */ '

%1$s
%2$s

', __('Folders you create will appear here.', 'elementor'), __('To create a new one, go to Cloud Templates.', 'elementor'))) }); /***/ }), /***/ "../assets/dev/js/editor/components/template-library/views/parts/folders/folder-item.js": /*!**********************************************************************************************!*\ !*** ../assets/dev/js/editor/components/template-library/views/parts/folders/folder-item.js ***! \**********************************************************************************************/ /***/ ((module) => { "use strict"; module.exports = Marionette.ItemView.extend({ tagName: 'li', template: _.template('<%= title %>'), className: 'folder-item', attributes: function attributes() { var data = this.model.toJSON(); return { 'data-id': data.template_id, 'data-value': data.title, role: 'option', tabindex: '-1' }; }, render: function render() { this.$el.html(this.template(this.model.toJSON())); return this; } }); /***/ }), /***/ "../assets/dev/js/editor/components/template-library/views/parts/folders/folders-list.js": /*!***********************************************************************************************!*\ !*** ../assets/dev/js/editor/components/template-library/views/parts/folders/folders-list.js ***! \***********************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var EmptyView = __webpack_require__(/*! ./folder-empty */ "../assets/dev/js/editor/components/template-library/views/parts/folders/folder-empty.js"); var FolderItemView = __webpack_require__(/*! ./folder-item */ "../assets/dev/js/editor/components/template-library/views/parts/folders/folder-item.js"); module.exports = Marionette.CollectionView.extend({ tagName: 'ul', className: 'folder-list', childView: FolderItemView, emptyView: EmptyView, attributes: { role: 'listbox', 'aria-label': 'Folders' } }); /***/ }), /***/ "../assets/dev/js/editor/components/template-library/views/parts/global-styles-dialog.js": /*!***********************************************************************************************!*\ !*** ../assets/dev/js/editor/components/template-library/views/parts/global-styles-dialog.js ***! \***********************************************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; exports.showGlobalStylesDialog = showGlobalStylesDialog; function showGlobalStylesDialog() { return new Promise(function (resolve, reject) { var settled = false; var dialog = elementorCommon.dialogsManager.createWidget('lightbox', { id: 'elementor-global-styles-dialog', headerMessage: '', message: wp.template('elementor-global-styles-dialog')(), position: { my: 'center', at: 'center' }, hide: { onBackgroundClick: false }, onShow: function onShow() { setupDialogEventListeners(dialog, function (payload) { if (settled) { return; } settled = true; resolve(payload); dialog.hide(); }, function (error) { if (settled) { return; } settled = true; reject(error); dialog.hide(); }); }, onHide: function onHide() { if (settled) { return; } settled = true; reject(new Error('Dialog closed')); } }); dialog.show(); }); } function setupDialogEventListeners(dialog, resolve, reject) { var $content = dialog.getElements('message'); var $matchRadio = $content.find('#elementor-global-styles-match'); var $keepRadio = $content.find('#elementor-global-styles-keep'); var $createCheckbox = $content.find('#elementor-global-styles-create'); var $checkboxContainer = $content.find('.elementor-global-styles-dialog__checkbox-container'); var $insertBtn = $content.find('#elementor-global-styles-insert'); var $cancelBtn = $content.find('#elementor-global-styles-cancel'); $matchRadio.off('.elementorGlobalStyles').on('change.elementorGlobalStyles', function () { $checkboxContainer.hide(); }); $keepRadio.off('.elementorGlobalStyles').on('change.elementorGlobalStyles', function () { $checkboxContainer.show(); }); $insertBtn.off('.elementorGlobalStyles').on('click.elementorGlobalStyles', function () { var mode; if ($matchRadio.is(':checked')) { mode = 'match_site'; } else if ($createCheckbox.is(':checked')) { mode = 'keep_create'; } else { mode = 'keep_flatten'; } resolve({ mode: mode }); }); $cancelBtn.off('.elementorGlobalStyles').on('click.elementorGlobalStyles', function () { reject(new Error('User cancelled')); }); } var _default = exports["default"] = showGlobalStylesDialog; /***/ }), /***/ "../assets/dev/js/editor/components/template-library/views/parts/header-parts/actions.js": /*!***********************************************************************************************!*\ !*** ../assets/dev/js/editor/components/template-library/views/parts/header-parts/actions.js ***! \***********************************************************************************************/ /***/ ((module) => { "use strict"; module.exports = Marionette.ItemView.extend({ template: '#tmpl-elementor-template-library-header-actions', id: 'elementor-template-library-header-actions', ui: { import: '#elementor-template-library-header-import', importIcon: '#elementor-template-library-header-import i', sync: '#elementor-template-library-header-sync', syncIcon: '#elementor-template-library-header-sync i', save: '#elementor-template-library-header-save', saveIcon: '#elementor-template-library-header-save i' }, events: { 'click @ui.import': 'onImportClick', 'click @ui.sync': 'onSyncClick', 'click @ui.save': 'onSaveClick' }, onImportClick: function onImportClick() { $e.route('library/import'); }, onRender: function onRender() { var _$e$components$get$cu; var currentTab = (_$e$components$get$cu = $e.components.get('library').currentTab) !== null && _$e$components$get$cu !== void 0 ? _$e$components$get$cu : ''; this.ui.import.toggleClass('elementor-hidden', 'templates/my-templates' !== currentTab); }, onSyncClick: function onSyncClick() { var self = this; self.ui.syncIcon.addClass('eicon-animation-spin'); elementor.templates.requestLibraryData({ onUpdate: function onUpdate() { self.ui.syncIcon.removeClass('eicon-animation-spin'); $e.routes.refreshContainer('library'); }, forceUpdate: true, forceSync: true }); }, onSaveClick: function onSaveClick() { $e.route('library/save-template'); } }); /***/ }), /***/ "../assets/dev/js/editor/components/template-library/views/parts/header-parts/back.js": /*!********************************************************************************************!*\ !*** ../assets/dev/js/editor/components/template-library/views/parts/header-parts/back.js ***! \********************************************************************************************/ /***/ ((module) => { "use strict"; module.exports = Marionette.ItemView.extend({ template: '#tmpl-elementor-template-library-header-back', id: 'elementor-template-library-header-preview-back', events: { 'click .elementor-template-library-header-back-button': 'onClick' }, onClick: function onClick() { $e.routes.restoreState('library'); } }); /***/ }), /***/ "../assets/dev/js/editor/components/template-library/views/parts/header-parts/menu.js": /*!********************************************************************************************!*\ !*** ../assets/dev/js/editor/components/template-library/views/parts/header-parts/menu.js ***! \********************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"]; var _keyboardNav = __webpack_require__(/*! elementor-editor-utils/keyboard-nav */ "../assets/dev/js/editor/utils/keyboard-nav.js"); module.exports = Marionette.ItemView.extend({ template: '#tmpl-elementor-template-library-header-menu', id: 'elementor-template-library-header-menu', ui: { tabs: '[role="tab"]' }, events: { 'keydown @ui.tabs': 'onTabKeyDown' }, templateHelpers: function templateHelpers() { return { tabs: $e.components.get('library').getTabs() }; }, attributes: function attributes() { return { role: 'tablist', 'aria-label': __('Library sections', 'elementor') }; }, onTabKeyDown: function onTabKeyDown(event) { (0, _keyboardNav.rovingTabindex)({ event: event, $items: this.ui.tabs, orientation: 'horizontal', onActivate: function onActivate() { // Tabs activate on arrow navigation, not Enter/Space. } }); // After rovingTabindex moves focus to the new tab, activate it. // activateTab triggers a re-render, so we must re-query the DOM afterwards. var $focused = jQuery(event.currentTarget.ownerDocument.activeElement); var targetTabName = $focused.data('tab'); if (!targetTabName) { return; } var libraryComponent = $e.components.get('library'); if (!libraryComponent) { return; } try { libraryComponent.activateTab(targetTabName); var $tabAfterRerender = jQuery("#elementor-template-library-header-menu [data-tab=\"".concat(targetTabName, "\"]")); if ($tabAfterRerender.length) { $tabAfterRerender.trigger('focus'); } } catch (error) { // eslint-disable-next-line no-console console.error('Tab activation failed:', error); } } }); /***/ }), /***/ "../assets/dev/js/editor/components/template-library/views/parts/header-parts/preview.js": /*!***********************************************************************************************!*\ !*** ../assets/dev/js/editor/components/template-library/views/parts/header-parts/preview.js ***! \***********************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var TemplateLibraryInsertTemplateBehavior = __webpack_require__(/*! elementor-templates/behaviors/insert-template */ "../assets/dev/js/editor/components/template-library/behaviors/insert-template.js"); module.exports = Marionette.ItemView.extend({ template: '#tmpl-elementor-template-library-header-preview', id: 'elementor-template-library-header-preview', behaviors: { insertTemplate: { behaviorClass: TemplateLibraryInsertTemplateBehavior } } }); /***/ }), /***/ "../assets/dev/js/editor/components/template-library/views/parts/import.js": /*!*********************************************************************************!*\ !*** ../assets/dev/js/editor/components/template-library/views/parts/import.js ***! \*********************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; /* provided dependency */ var sprintf = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["sprintf"]; /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"]; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js")); var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js")); var _filesUploadHandler = _interopRequireDefault(__webpack_require__(/*! ../../../../utils/files-upload-handler */ "../assets/dev/js/editor/utils/files-upload-handler.js")); var _jsonUploadWarningMessage = __webpack_require__(/*! elementor-utils/json-upload-warning-message */ "../assets/dev/js/utils/json-upload-warning-message.js"); var _globalStylesDialog = __webpack_require__(/*! ./global-styles-dialog */ "../assets/dev/js/editor/components/template-library/views/parts/global-styles-dialog.js"); var TemplateLibraryImportView; TemplateLibraryImportView = Marionette.ItemView.extend({ tagName: 'main', template: '#tmpl-elementor-template-library-import', id: 'elementor-template-library-import', ui: { uploadForm: '#elementor-template-library-import-form', fileInput: '#elementor-template-library-import-form-input', icon: '.elementor-template-library-blank-icon i' }, events: { 'change @ui.fileInput': 'onFileInputChange' }, droppedFiles: null, submitForm: function submitForm() { var _this = this; var file; if (this.droppedFiles) { file = this.droppedFiles[0]; this.droppedFiles = null; } else { file = this.ui.fileInput[0].files[0]; this.ui.uploadForm[0].reset(); } var fileReader = new FileReader(); fileReader.onload = function (event) { return _this.importTemplate(file.name, event.target.result.replace(/^[^,]+,/, '')); }; fileReader.readAsDataURL(file); }, importTemplate: function importTemplate(fileName, fileData) { var _this2 = this; return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() { var layout, activeSource, jsonContent, _yield$showGlobalStyl, mode, enableUnfilteredFilesModal, _t, _t2; return _regenerator.default.wrap(function (_context) { while (1) switch (_context.prev = _context.next) { case 0: layout = elementor.templates.layout; activeSource = elementor.templates.getFilter('source'); _this2.options = { data: { fileName: fileName, fileData: fileData, source: activeSource }, success: function success(successData) { elementor.templates.clearLastRemovedItems(); elementor.templates.getTemplatesCollection().add(successData); elementor.templates.setToastConfig({ show: true, options: { /* Translators: 1: Number of templates */ message: sprintf(__('You successfully imported %1$d template(s).', 'elementor'), successData.length), position: { my: 'right bottom', at: 'right-10 bottom-10', of: '#elementor-template-library-modal .dialog-lightbox-widget-content' } } }); $e.route('library/templates/my-templates'); elementor.templates.triggerQuotaUpdate(); elementor.templates.eventManager.sendTemplateImportEvent({ library_type: activeSource, file_type: fileName.split('.').pop(), template_count: successData.length }); }, error: function error(errorData) { elementor.templates.showErrorDialog(errorData); layout.showImportView(); }, complete: function complete() { layout.hideLoadingView(); } }; _context.next = 1; return (0, _jsonUploadWarningMessage.showJsonUploadWarningMessageIfNeeded)({ introductionMap: window.elementor.config.user.introduction, IntroductionClass: window.elementorModules.editor.utils.Introduction }); case 1: if (!fileName.endsWith('.json')) { _context.next = 8; break; } _context.prev = 2; jsonContent = JSON.parse(atob(fileData)); if (!elementor.templates.hasGlobalStyles(jsonContent)) { _context.next = 6; break; } _context.prev = 3; _context.next = 4; return (0, _globalStylesDialog.showGlobalStylesDialog)(); case 4: _yield$showGlobalStyl = _context.sent; mode = _yield$showGlobalStyl.mode; _this2.options.data.import_mode = mode; _context.next = 6; break; case 5: _context.prev = 5; _t = _context["catch"](3); return _context.abrupt("return"); case 6: _context.next = 8; break; case 7: _context.prev = 7; _t2 = _context["catch"](2); console.warn('Failed to parse template JSON for global styles check:', _t2); // eslint-disable-line no-console case 8: if (!elementorCommon.config.filesUpload.unfilteredFiles) { enableUnfilteredFilesModal = _filesUploadHandler.default.getUnfilteredFilesNotEnabledImportTemplateDialog(function () { return _this2.sendImportRequest(); }); enableUnfilteredFilesModal.show(); } else { _this2.sendImportRequest(); } case 9: case "end": return _context.stop(); } }, _callee, null, [[2, 7], [3, 5]]); }))(); }, sendImportRequest: function sendImportRequest() { elementorCommon.ajax.addRequest('import_template', this.options); elementor.templates.layout.showLoadingView(); }, onRender: function onRender() { this.ui.uploadForm.on({ 'drag dragstart dragend dragover dragenter dragleave drop': this.onFormActions.bind(this), dragenter: this.onFormDragEnter.bind(this), 'dragleave drop': this.onFormDragLeave.bind(this), drop: this.onFormDrop.bind(this) }); this.resolveIcon(); elementor.templates.eventManager.sendPageViewEvent({ location: elementorCommon.eventsManager.config.secondaryLocations.templateLibrary.importModal }); }, resolveIcon: function resolveIcon() { var activeSource = elementor.templates.getFilter('source') || 'local'; var className = 'local' === activeSource ? 'eicon-library-upload' : 'eicon-library-import'; this.ui.icon.removeClass().addClass(className); }, onFormActions: function onFormActions(event) { event.preventDefault(); event.stopPropagation(); }, onFormDragEnter: function onFormDragEnter() { this.ui.uploadForm.addClass('elementor-drag-over'); }, onFormDragLeave: function onFormDragLeave(event) { if (jQuery(event.relatedTarget).closest(this.ui.uploadForm).length) { return; } this.ui.uploadForm.removeClass('elementor-drag-over'); }, onFormDrop: function onFormDrop(event) { this.droppedFiles = event.originalEvent.dataTransfer.files; this.submitForm(); }, onFileInputChange: function onFileInputChange() { this.submitForm(); } }); module.exports = TemplateLibraryImportView; /***/ }), /***/ "../assets/dev/js/editor/components/template-library/views/parts/navigation-container.js": /*!***********************************************************************************************!*\ !*** ../assets/dev/js/editor/components/template-library/views/parts/navigation-container.js ***! \***********************************************************************************************/ /***/ ((module) => { "use strict"; module.exports = Marionette.ItemView.extend({ template: '#tmpl-elementor-template-library-navigation-container', className: 'elementor-template-library-navigation-container', ui: { title: '.elementor-template-library-current-folder-title', backButton: '.elementor-template-library-navigation-back-button' }, events: { 'click @ui.backButton': 'onBackButtonClick' }, render: function render() { if (null === elementor.templates.getFilter('parent')) { return this; } return Marionette.ItemView.prototype.render.call(this); }, onRender: function onRender() { var _elementor$templates$; this.ui.title.text((_elementor$templates$ = elementor.templates.getFilter('parent')) === null || _elementor$templates$ === void 0 ? void 0 : _elementor$templates$.title); }, onBackButtonClick: function onBackButtonClick() { elementor.templates.setFilter('parent', null); $e.route('library/templates/my-templates'); } }); /***/ }), /***/ "../assets/dev/js/editor/components/template-library/views/parts/preview.js": /*!**********************************************************************************!*\ !*** ../assets/dev/js/editor/components/template-library/views/parts/preview.js ***! \**********************************************************************************/ /***/ ((module) => { "use strict"; var TemplateLibraryPreviewView; TemplateLibraryPreviewView = Marionette.ItemView.extend({ tagName: 'main', template: '#tmpl-elementor-template-library-preview', id: 'elementor-template-library-preview', ui: { iframe: '> iframe' }, onRender: function onRender() { this.ui.iframe.attr('src', this.getOption('url')); } }); module.exports = TemplateLibraryPreviewView; /***/ }), /***/ "../assets/dev/js/editor/components/template-library/views/parts/save-template-variant-b.js": /*!**************************************************************************************************!*\ !*** ../assets/dev/js/editor/components/template-library/views/parts/save-template-variant-b.js ***! \**************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"]; /* provided dependency */ var sprintf = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["sprintf"]; var TemplateLibrarySaveTemplateView = __webpack_require__(/*! ./save-template */ "../assets/dev/js/editor/components/template-library/views/parts/save-template.js"); var TemplateLibrarySaveTemplateVariantBView = TemplateLibrarySaveTemplateView.extend({ id: 'elementor-template-library-save-template-variant-b', template: '#tmpl-elementor-template-library-save-template-variant-b', ui: function ui() { return _.extend(TemplateLibrarySaveTemplateView.prototype.ui.apply(this, arguments), { selectFolderLink: '.select-folder-link', cloudAccountBadge: '.cloud-account-badge', siteAccountBadge: '.site-account-badge', connect: '#elementor-template-library-connect__badge-variant-b' }); }, events: function events() { return _.extend(TemplateLibrarySaveTemplateView.prototype.events.apply(this, arguments), { 'click @ui.selectFolderLink': 'onEllipsisIconClick', 'mouseenter @ui.upgradeBadge': 'showInfoTip', 'mouseenter @ui.cloudAccountBadge': 'showCloudAccountBadgeTooltip', 'mouseenter @ui.siteAccountBadge': 'showSiteAccountBadgeTooltip', 'mouseleave @ui.cloudAccountBadge': 'hideCloudAccountBadgeTooltip', 'mouseleave @ui.siteAccountBadge': 'hideSiteAccountBadgeTooltip', 'mouseleave @ui.upgradeBadge': 'hideInfoTip' }); }, getConnectInfoTipPosition: function getConnectInfoTipPosition() { return 'top-50'; }, addVariantClass: function addVariantClass($widget) { return $widget.addClass('variant-b'); }, showInfoTip: function showInfoTip() { if (this.infoTipDialog) { this.infoTipDialog.hide(); } var message = elementor.templates.hasCloudLibraryQuota() ? __('Upgrade your subscription to get more space and reuse saved assets across all your sites.', 'elementor') : __('Upgrade your subscription to access Cloud Templates and reuse saved assets across all your sites.', 'elementor'); this.infoTipDialog = elementor.dialogsManager.createWidget('buttons', { id: 'elementor-library--infotip__dialog', effects: { show: 'show', hide: 'hide' }, position: { of: this.ui.upgradeBadge, at: 'top-50' } }).setMessage(message); this.infoTipDialog.getElements('header').remove(); this.infoTipDialog.getElements('buttonsWrapper').remove(); this.infoTipDialog.getElements('widget').addClass('variant-b'); this.infoTipDialog.show(); this.sendCTBadgeEvent('cloud'); }, showCloudAccountBadgeTooltip: function showCloudAccountBadgeTooltip() { if (this.cloudAccountBadgeDialog) { this.cloudAccountBadgeDialog.hide(); } var emailReplacement = elementor.config.library_connect.is_connected ? elementor.config.library_connect.user_email : __('connected', 'elementor'); /* Translators: %s: User's email. */ var message = sprintf(__('Only %s Elementor account can access Cloud Templates from any connected site.', 'elementor'), emailReplacement); this.cloudAccountBadgeDialog = elementor.dialogsManager.createWidget('buttons', { id: 'elementor-library--cloud-upgrade__dialog', effects: { show: 'show', hide: 'hide' }, position: { of: this.ui.cloudAccountBadge, at: 'top-55' } }).setMessage(message); this.cloudAccountBadgeDialog.getElements('widget').addClass('variant-b'); this.cloudAccountBadgeDialog.getElements('header').remove(); this.cloudAccountBadgeDialog.getElements('buttonsWrapper').remove(); this.cloudAccountBadgeDialog.show(); }, hideCloudAccountBadgeTooltip: function hideCloudAccountBadgeTooltip() { if (this.cloudAccountBadgeDialog) { this.cloudAccountBadgeDialog.hide(); } }, showSiteAccountBadgeTooltip: function showSiteAccountBadgeTooltip() { if (this.siteAccountBadgeDialog) { this.siteAccountBadgeDialog.hide(); } var message = __('Authorized users on this site can access Site Templates.', 'elementor'); this.siteAccountBadgeDialog = elementor.dialogsManager.createWidget('buttons', { id: 'elementor-library--site-info__dialog', effects: { show: 'show', hide: 'hide' }, position: { of: this.ui.siteAccountBadge, at: 'top-35' } }).setMessage(message); this.siteAccountBadgeDialog.getElements('widget').addClass('variant-b'); this.siteAccountBadgeDialog.getElements('header').remove(); this.siteAccountBadgeDialog.getElements('buttonsWrapper').remove(); this.siteAccountBadgeDialog.show(); this.sendCTBadgeEvent('site'); }, hideSiteAccountBadgeTooltip: function hideSiteAccountBadgeTooltip() { if (this.siteAccountBadgeDialog) { this.siteAccountBadgeDialog.hide(); } }, sendCTBadgeEvent: function sendCTBadgeEvent(badgeType) { elementor.templates.eventManager.sendCTBadgeEvent({ ct_badge_hover_position: this.getOption('context'), ct_badge_type: badgeType, ct_position_state: this.getPositionState() }); }, getPositionState: function getPositionState() { if (!elementor.config.library_connect.is_connected) { return 'connect'; } if (!elementor.templates.hasCloudLibraryQuota() || this.cloudMaxCapacityReached()) { return 'upgrade'; } return 'eligible'; } }); module.exports = TemplateLibrarySaveTemplateVariantBView; /***/ }), /***/ "../assets/dev/js/editor/components/template-library/views/parts/save-template.js": /*!****************************************************************************************!*\ !*** ../assets/dev/js/editor/components/template-library/views/parts/save-template.js ***! \****************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"]; /* provided dependency */ var sprintf = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["sprintf"]; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js")); var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js")); var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js")); var _constants = __webpack_require__(/*! ./../../constants */ "../assets/dev/js/editor/components/template-library/constants.js"); var _keyboardNav = __webpack_require__(/*! elementor-editor-utils/keyboard-nav */ "../assets/dev/js/editor/utils/keyboard-nav.js"); var TemplateLibraryTemplateModel = __webpack_require__(/*! elementor-templates/models/template */ "../assets/dev/js/editor/components/template-library/models/template.js"); var TemplateLibraryCollection = __webpack_require__(/*! elementor-templates/collections/templates */ "../assets/dev/js/editor/components/template-library/collections/templates.js"); var FolderCollectionView = __webpack_require__(/*! ./folders/folders-list */ "../assets/dev/js/editor/components/template-library/views/parts/folders/folders-list.js"); var LOAD_MORE_ID = 0; var TemplateLibrarySaveTemplateView = Marionette.ItemView.extend({ tagName: 'main', id: 'elementor-template-library-save-template', template: '#tmpl-elementor-template-library-save-template', ui: function ui() { return { form: '#elementor-template-library-save-template-form', submitButton: '#elementor-template-library-save-template-submit', ellipsisIcon: '.cloud-library-form-inputs .ellipsis-container', foldersList: '.cloud-folder-selection-dropdown ul', foldersDropdown: '.cloud-folder-selection-dropdown', foldersListContainer: '.cloud-folder-selection-dropdown-list', removeFolderSelection: '.source-selections .selected-folder i', selectedFolder: '.selected-folder', selectedFolderText: '.selected-folder-text', hiddenInputSelectedFolder: '#parentId', templateNameInput: '#elementor-template-library-save-template-name', localInput: '.source-selections-input.local', cloudInput: '.source-selections-input.cloud', sourceSelectionCheckboxes: '.source-selections-input input[type="checkbox"]', infoIcon: '.source-selections-input.cloud .eicon-info', connect: '#elementor-template-library-connect__badge', connectBadge: '.source-selections-input.cloud .connect-badge', cloudFormInputs: '.cloud-library-form-inputs', upgradeBadge: '.source-selections-input.cloud .upgrade-badge' }; }, events: function events() { return { 'submit @ui.form': 'onFormSubmit', 'click @ui.ellipsisIcon': 'onEllipsisIconClick', 'keydown @ui.ellipsisIcon': 'onEllipsisIconKeyDown', 'click @ui.foldersList': 'onFoldersListClick', 'keydown @ui.foldersListContainer': 'onFoldersListKeyDown', 'click @ui.removeFolderSelection': 'onRemoveFolderSelectionClick', 'click @ui.selectedFolderText': 'onSelectedFolderTextClick', 'click @ui.upgradeBadge': 'onUpgradeBadgeClicked', 'change @ui.sourceSelectionCheckboxes': 'handleSourceSelectionChange', 'mouseenter @ui.infoIcon': 'showInfoTip', 'mouseleave @ui.infoIcon': 'hideInfoTip', 'mouseenter @ui.connectBadge': 'showConnectInfoTip', 'mouseleave @ui.connectBadge': 'hideConnectInfoTip', 'input @ui.templateNameInput': 'onTemplateNameInputChange' }; }, onRender: function onRender() { var _elementorAppConfig$c, _this$templateHelpers, _this = this; if ('undefined' === typeof ((_elementorAppConfig$c = elementorAppConfig['cloud-library']) === null || _elementorAppConfig$c === void 0 ? void 0 : _elementorAppConfig$c.quota) && (_this$templateHelpers = this.templateHelpers()) !== null && _this$templateHelpers !== void 0 && _this$templateHelpers.canSaveToCloud) { elementor.templates.layout.showLoadingView(); $e.components.get('cloud-library').utils.setQuotaConfig().then(function (data) { elementorAppConfig['cloud-library'].quota = data; }).catch(function () { delete elementorAppConfig['cloud-library'].quota; }).finally(function () { _this.handleOnRender(); elementor.templates.layout.hideLoadingView(); }); } else { this.handleOnRender(); } }, onDestroy: function onDestroy() { this.unbindDocumentClickHandler(); }, handleOnRender: function handleOnRender() { var _this2 = this; setTimeout(function () { return _this2.ui.templateNameInput.trigger('focus'); }); var context = this.getOption('context'); elementor.templates.eventManager.sendPageViewEvent({ location: elementorCommon.eventsManager.config.secondaryLocations.templateLibrary["".concat(context, "Modal")] }); if (_constants.SAVE_CONTEXTS.SAVE === context) { this.handleSaveAction(); } if (_constants.SAVE_CONTEXTS.MOVE === context || _constants.SAVE_CONTEXTS.COPY === context) { this.handleSingleActionContextUiState(); } if (_constants.SAVE_CONTEXTS.BULK_MOVE === context || _constants.SAVE_CONTEXTS.BULK_COPY === context) { this.handleBulkActionContextUiState(); } if (!elementor.templates.hasCloudLibraryQuota()) { this.handleCloudLibraryPromo(); } if (this.cloudMaxCapacityReached()) { this.handleCloudLibraryPromo('max-capacity'); } if (!elementor.config.library_connect.is_connected) { this.handleElementorConnect(); } this.bindDocumentClickHandler(); }, cloudMaxCapacityReached: function cloudMaxCapacityReached() { var _elementorAppConfig$c2, _elementorAppConfig$c3, _elementorAppConfig$c4, _elementorAppConfig$c5; return 'undefined' !== typeof ((_elementorAppConfig$c2 = elementorAppConfig['cloud-library']) === null || _elementorAppConfig$c2 === void 0 ? void 0 : _elementorAppConfig$c2.quota) && 0 < ((_elementorAppConfig$c3 = elementorAppConfig['cloud-library'].quota) === null || _elementorAppConfig$c3 === void 0 ? void 0 : _elementorAppConfig$c3.threshold) && ((_elementorAppConfig$c4 = elementorAppConfig['cloud-library'].quota) === null || _elementorAppConfig$c4 === void 0 ? void 0 : _elementorAppConfig$c4.currentUsage) >= ((_elementorAppConfig$c5 = elementorAppConfig['cloud-library'].quota) === null || _elementorAppConfig$c5 === void 0 ? void 0 : _elementorAppConfig$c5.threshold); }, handleSaveAction: function handleSaveAction() { this.maybeEnableSaveButton(); }, handleSingleActionContextUiState: function handleSingleActionContextUiState() { var title = this.model.get('title'); this.ui.templateNameInput.val(title); this.handleContextUiStateCheckboxes(); this.maybeEnableSaveButton(); }, maybeEnableSaveButton: function maybeEnableSaveButton() { var _this$templateHelpers2; if (!((_this$templateHelpers2 = this.templateHelpers()) !== null && _this$templateHelpers2 !== void 0 && _this$templateHelpers2.canSaveToCloud)) { return; } var isAnyChecked = this.ui.sourceSelectionCheckboxes.is(':checked'); var title = this.ui.templateNameInput.val().trim(); var isTitleFilled = this.ui.templateNameInput.is(':visible') ? elementor.templates.isTemplateTitleValid(title) : true; this.updateSubmitButtonState(!isAnyChecked || !isTitleFilled); }, handleBulkActionContextUiState: function handleBulkActionContextUiState() { this.ui.templateNameInput.remove(); this.handleContextUiStateCheckboxes(); this.maybeEnableSaveButton(); }, handleContextUiStateCheckboxes: function handleContextUiStateCheckboxes() { var fromSource = elementor.templates.getFilter('source'); if ('local' === fromSource) { this.$('.source-selections-input #cloud').prop('checked', true); this.ui.localInput.addClass('disabled'); } }, handleCloudLibraryPromo: function handleCloudLibraryPromo() { var stateClass = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'promotion'; if (_constants.SAVE_CONTEXTS.SAVE === this.getOption('context')) { this.$('.source-selections-input #local').prop('checked', true); } else { this.$('.source-selections-input #local, .source-selections-input.local label').css('pointer-events', 'none'); } this.$('.source-selections-input #cloud').prop('checked', false); this.$('.source-selections-input #cloud').prop('disabled', true); this.ui.cloudFormInputs.addClass(stateClass); elementor.templates.eventManager.sendPageViewEvent({ location: elementorCommon.eventsManager.config.secondaryLocations.templateLibrary.saveModalSelectUpgrade }); }, getSaveType: function getSaveType() { var type; if (_constants.SAVE_CONTEXTS.MOVE === this.getOption('context') || _constants.SAVE_CONTEXTS.COPY === this.getOption('context')) { type = this.model.get('type'); } else if (this.model) { type = this.model.get('elType'); } else if (elementor.config.document.library && elementor.config.document.library.save_as_same_type) { type = elementor.config.document.type; } else { type = 'page'; } return type; }, templateHelpers: function templateHelpers() { var saveType = this.getSaveType(), templateType = elementor.templates.getTemplateTypes(saveType), saveContext = this.getOption('context'); return templateType["".concat(saveContext, "Dialog")]; }, onEllipsisIconKeyDown: function onEllipsisIconKeyDown(event) { if ('Escape' === event.key) { event.preventDefault(); if (this.ui.foldersDropdown.is(':visible')) { this.hideFoldersDropdown(); (0, _keyboardNav.suppressEscapeKeyUp)(event); } return; } if ('Tab' === event.key && !event.shiftKey || 'ArrowDown' === event.key) { if (this.ui.foldersDropdown.is(':visible')) { event.preventDefault(); event.stopPropagation(); this.focusFirstFolderItem(); } } }, onFoldersListKeyDown: function onFoldersListKeyDown(event) { if ('Escape' === event.key) { event.preventDefault(); this.hideFoldersDropdown(); this.ui.ellipsisIcon.trigger('focus'); (0, _keyboardNav.suppressEscapeKeyUp)(event); return; } if ('Tab' === event.key) { this.handleFolderTab(event); return; } var $items = this.getFolderItems(); (0, _keyboardNav.rovingTabindex)({ event: event, $items: $items, orientation: 'vertical', homeEnd: false, onActivate: function onActivate(e, $item) { e.stopPropagation(); $item.trigger('click'); } }); event.stopPropagation(); }, handleFolderTab: function handleFolderTab(event) { var $items = this.getFolderItems(); var currentIndex = $items.index(event.target); if (event.shiftKey) { if (currentIndex <= 0) { // Close dropdown and let the browser naturally move focus backwards. this.hideFoldersDropdown(); this.ui.ellipsisIcon.trigger('focus'); } else { event.preventDefault(); event.stopPropagation(); $items.eq(currentIndex - 1).trigger('focus'); } return; } if (currentIndex < $items.length - 1) { event.preventDefault(); event.stopPropagation(); $items.eq(currentIndex + 1).trigger('focus'); } else { // Close dropdown and let the browser naturally advance focus forward. this.hideFoldersDropdown(); this.ui.ellipsisIcon.trigger('focus'); } }, updateEllipsisAriaExpanded: function updateEllipsisAriaExpanded(expanded) { this.ui.ellipsisIcon.attr('aria-expanded', expanded ? 'true' : 'false'); }, onFormSubmit: function onFormSubmit(event) { var _this3 = this; return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() { var _this3$templateHelper; var formData, JSONParams, _t; return _regenerator.default.wrap(function (_context) { while (1) switch (_context.prev = _context.next) { case 0: event.preventDefault(); formData = _this3.ui.form.elementorSerializeObject(), JSONParams = { remove: ['default'] }; formData.parentTitle = formData.parentId ? _this3.ui.selectedFolderText.html() : ''; formData.content = _this3.model ? [_this3.model.toJSON(JSONParams)] : elementor.elements.toJSON(JSONParams); _this3.updateSourceSelections(formData); if (!(!(formData !== null && formData !== void 0 && formData.source) && (_this3$templateHelper = _this3.templateHelpers()) !== null && _this3$templateHelper !== void 0 && _this3$templateHelper.canSaveToCloud)) { _context.next = 1; break; } _this3.showEmptySourceErrorDialog(); return _context.abrupt("return"); case 1: _this3.ui.submitButton.addClass('elementor-button-state'); _this3.updateSaveContext(formData); _this3.updateToastConfig(formData); _this3.updateSourceState(formData); _context.prev = 2; _context.next = 3; return $e.run('document/save/auto', { force: true }); case 3: _context.next = 5; break; case 4: _context.prev = 4; _t = _context["catch"](2); case 5: _context.next = 6; return elementor.templates.syncGlobalStylesBeforeSave(); case 6: elementor.templates.saveTemplate(_this3.getSaveType(), formData); case 7: case "end": return _context.stop(); } }, _callee, null, [[2, 4]]); }))(); }, updateSourceSelections: function updateSourceSelections(formData) { var selectedSources = ['cloud', 'local'].filter(function (type) { return formData[type]; }); if (!selectedSources.length) { return; } formData.source = selectedSources; ['cloud', 'local'].forEach(function (type) { return delete formData[type]; }); }, showEmptySourceErrorDialog: function showEmptySourceErrorDialog() { elementorCommon.dialogsManager.createWidget('alert', { id: 'elementor-template-library-error-dialog', headerMessage: __('An error occurred.', 'elementor'), message: __('Please select at least one location.', 'elementor') }).show(); }, updateSaveContext: function updateSaveContext(formData) { var _this$getOption; var saveContext = (_this$getOption = this.getOption('context')) !== null && _this$getOption !== void 0 ? _this$getOption : _constants.SAVE_CONTEXTS.SAVE; formData.save_context = saveContext; if ([_constants.SAVE_CONTEXTS.MOVE, _constants.SAVE_CONTEXTS.BULK_MOVE, _constants.SAVE_CONTEXTS.COPY, _constants.SAVE_CONTEXTS.BULK_COPY].includes(saveContext)) { formData.from_source = elementor.templates.getFilter('source'); formData.from_template_id = [_constants.SAVE_CONTEXTS.MOVE, _constants.SAVE_CONTEXTS.COPY].includes(saveContext) ? this.model.get('template_id') : Array.from(elementor.templates.getBulkSelectionItems()); } }, updateToastConfig: function updateToastConfig(formData) { var _formData$source, _this$getOption2, _formData$source2, _formData$parentId, _formData$parentTitle; if (!((_formData$source = formData.source) !== null && _formData$source !== void 0 && _formData$source.length)) { return; } var lastSource = formData.source.at(-1), saveContext = (_this$getOption2 = this.getOption('context')) !== null && _this$getOption2 !== void 0 ? _this$getOption2 : _constants.SAVE_CONTEXTS.SAVE, toastMessage = this.getToastMessage(lastSource, saveContext, formData); if (!toastMessage) { return; } var toastButtons = ((_formData$source2 = formData.source) === null || _formData$source2 === void 0 ? void 0 : _formData$source2.length) > 1 ? null : this.getToastButtons(lastSource, formData === null || formData === void 0 || (_formData$parentId = formData.parentId) === null || _formData$parentId === void 0 ? void 0 : _formData$parentId.trim(), formData === null || formData === void 0 || (_formData$parentTitle = formData.parentTitle) === null || _formData$parentTitle === void 0 ? void 0 : _formData$parentTitle.trim()); elementor.templates.setToastConfig({ show: true, options: { message: toastMessage, buttons: toastButtons, position: { my: 'right bottom', at: 'right-10 bottom-10', of: '#elementor-template-library-modal .dialog-lightbox-widget-content' } } }); }, updateSourceState: function updateSourceState(formData) { var _formData$source3, _this$getOption3; if (!((_formData$source3 = formData.source) !== null && _formData$source3 !== void 0 && _formData$source3.length)) { return; } var saveContext = (_this$getOption3 = this.getOption('context')) !== null && _this$getOption3 !== void 0 ? _this$getOption3 : _constants.SAVE_CONTEXTS.SAVE; if (_constants.SAVE_CONTEXTS.SAVE !== saveContext) { return; } var lastSource = formData.source.at(-1); elementor.templates.setSourceSelection(lastSource); elementor.templates.setFilter('source', lastSource, true); }, getToastMessage: function getToastMessage(lastSource, saveContext, formData) { var _formData$source4, _formData$from_templa, _formData$from_templa2, _formData$from_templa3, _formData$from_templa4, _actions$key; var key = "".concat(lastSource, "_").concat(saveContext); if (((_formData$source4 = formData.source) === null || _formData$source4 === void 0 ? void 0 : _formData$source4.length) > 1) { return __('Template saved to your Site and Cloud Templates.', 'elementor'); } var actions = (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, "local_".concat(_constants.SAVE_CONTEXTS.MOVE), this.getFormattedToastMessage('moved to your Site Templates', formData.title)), "cloud_".concat(_constants.SAVE_CONTEXTS.MOVE), this.getFormattedToastMessage('moved to your Cloud Templates', formData.title)), "local_".concat(_constants.SAVE_CONTEXTS.COPY), this.getFormattedToastMessage('copied to your Site Templates', formData.title)), "cloud_".concat(_constants.SAVE_CONTEXTS.COPY), this.getFormattedToastMessage('copied to your Cloud Templates', formData.title)), "local_".concat(_constants.SAVE_CONTEXTS.BULK_MOVE), this.getFormattedToastMessage('moved to your Site Templates', null, (_formData$from_templa = formData.from_template_id) === null || _formData$from_templa === void 0 ? void 0 : _formData$from_templa.length)), "cloud_".concat(_constants.SAVE_CONTEXTS.BULK_MOVE), this.getFormattedToastMessage('moved to your Cloud Templates', null, (_formData$from_templa2 = formData.from_template_id) === null || _formData$from_templa2 === void 0 ? void 0 : _formData$from_templa2.length)), "local_".concat(_constants.SAVE_CONTEXTS.BULK_COPY), this.getFormattedToastMessage('copied to your Site Templates', null, (_formData$from_templa3 = formData.from_template_id) === null || _formData$from_templa3 === void 0 ? void 0 : _formData$from_templa3.length)), "cloud_".concat(_constants.SAVE_CONTEXTS.BULK_COPY), this.getFormattedToastMessage('copied to your Cloud Templates', null, (_formData$from_templa4 = formData.from_template_id) === null || _formData$from_templa4 === void 0 ? void 0 : _formData$from_templa4.length)); return (_actions$key = actions[key]) !== null && _actions$key !== void 0 ? _actions$key : false; }, getFormattedToastMessage: function getFormattedToastMessage(action, title, count) { if (count !== undefined) { /* Translators: 1: Number of templates, 2: Action performed (e.g., "moved", "copied"). */ return sprintf(__('%1$d Template(s) %2$s.', 'elementor'), count, action); } /* Translators: 1: Template title or "Template" fallback, 2: Action performed. */ return sprintf(__('%1$s %2$s.', 'elementor'), title ? "\"".concat(title, "\"") : __('Template', 'elementor'), action); }, getToastButtons: function getToastButtons(lastSource, parentId, parentTitle) { var _this4 = this; var parsedParentId = parseInt(parentId, 10) || null; return [{ name: 'template_after_save', text: __('View', 'elementor'), callback: function callback() { return _this4.navigateToSavedSource(lastSource, parsedParentId, parentTitle); } }]; }, navigateToSavedSource: function navigateToSavedSource(lastSource, parentId, parentTitle) { elementor.templates.setSourceSelection(lastSource); elementor.templates.setFilter('source', lastSource, true); if (parentId) { var model = new TemplateLibraryTemplateModel({ template_id: parentId, title: parentTitle }); $e.route('library/view-folder', { model: model }); elementor.templates.layout.showTemplatesView(new TemplateLibraryCollection(elementor.templates.filterTemplates())); return; } $e.routes.refreshContainer('library'); }, onSelectedFolderTextClick: function onSelectedFolderTextClick() { if (!this.folderCollectionView) { this.onEllipsisIconClick(); return; } if (!this.ui.foldersDropdown.is(':visible')) { this.ui.foldersDropdown.show(); } else { this.hideFoldersDropdown(); } }, onEllipsisIconClick: function onEllipsisIconClick() { var _this5 = this; return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2() { return _regenerator.default.wrap(function (_context2) { while (1) switch (_context2.prev = _context2.next) { case 0: if (!_this5.ui.foldersDropdown.is(':visible')) { _context2.next = 1; break; } _this5.hideFoldersDropdown(); _this5.updateEllipsisAriaExpanded(false); return _context2.abrupt("return"); case 1: _this5.ui.foldersDropdown.show(); _this5.updateEllipsisAriaExpanded(true); if (_this5.folderCollectionView) { _context2.next = 5; break; } _this5.folderCollectionView = new FolderCollectionView({ collection: new TemplateLibraryCollection() }); _this5.addSpinner(); _this5.renderFolderDropdown(); _context2.prev = 2; _context2.next = 3; return _this5.fetchFolders(); case 3: _context2.prev = 3; _this5.removeSpinner(); _this5.disableSelectedFolder(); _this5.focusFirstFolderItem(); return _context2.finish(3); case 4: _context2.next = 6; break; case 5: _this5.focusFirstFolderItem(); case 6: elementor.templates.eventManager.sendPageViewEvent({ location: elementorCommon.eventsManager.config.secondaryLocations.templateLibrary.saveModalSelectFolder }); case 7: case "end": return _context2.stop(); } }, _callee2, null, [[2,, 3, 4]]); }))(); }, getFolderItems: function getFolderItems() { // Must query the DOM fresh because the folder list is rendered dynamically // after the view's initial render, so this.ui.foldersList may be stale. return this.$('.cloud-folder-selection-dropdown ul li:visible'); }, focusFirstFolderItem: function focusFirstFolderItem() { var $firstItem = this.getFolderItems().first(); if ($firstItem.length) { $firstItem.trigger('focus'); } }, renderFolderDropdown: function renderFolderDropdown() { var _this$folderCollectio; this.ui.foldersListContainer.html((_this$folderCollectio = this.folderCollectionView.render()) === null || _this$folderCollectio === void 0 ? void 0 : _this$folderCollectio.el); }, addSpinner: function addSpinner() { var spinner = new TemplateLibraryTemplateModel({ template_id: LOAD_MORE_ID, title: '' }); this.folderCollectionView.collection.add(spinner); }, removeSpinner: function removeSpinner() { var spinner = this.folderCollectionView.collection.findWhere({ template_id: LOAD_MORE_ID }); if (spinner) { this.folderCollectionView.collection.remove(spinner); } }, fetchFolders: function fetchFolders() { var _this6 = this; return new Promise(function (resolve) { var offset = _this6.folderCollectionView.collection.length - 1; var ajaxOptions = { data: { source: 'cloud', offset: offset }, success: function success(response) { _this6.folderCollectionView.collection.add(response === null || response === void 0 ? void 0 : response.templates); if (_this6.shouldAddLoadMoreItem(response)) { _this6.addLoadMoreItem(); } resolve(response); }, error: function error(_error) { elementor.templates.showErrorDialog(_error); resolve(); } }; elementorCommon.ajax.addRequest('get_folders', ajaxOptions); }); }, disableSelectedFolder: function disableSelectedFolder() { if (!_constants.SAVE_CONTEXTS.MOVE === this.getOption('context')) { return; } if (!this.model || !Number.isInteger(this.model.get('parentId'))) { return; } this.$(".folder-list li[data-id=\"".concat(this.model.get('parentId'), "\"]")).addClass('disabled'); }, onFoldersListClick: function onFoldersListClick(event) { var _event$target$dataset = event.target.dataset, id = _event$target$dataset.id, value = _event$target$dataset.value; if (!id || !value) { return; } if (this.clickedOnLoadMore(id)) { this.loadMoreFolders(); return; } this.handleFolderSelected(id, value); }, clickedOnLoadMore: function clickedOnLoadMore(templateId) { return LOAD_MORE_ID === +templateId; }, handleFolderSelected: function handleFolderSelected(id, value) { this.highlightSelectedFolder(id); this.hideFoldersDropdown(); this.ui.ellipsisIcon.hide(); this.ui.selectedFolderText.html(value); this.ui.selectedFolder.show(); this.ui.hiddenInputSelectedFolder.val(id); this.$('.source-selections-input #cloud').prop('checked', true); this.maybeEnableSaveButton(); }, highlightSelectedFolder: function highlightSelectedFolder(id) { this.clearSelectedFolder(); this.$(".folder-list li[data-id=\"".concat(id, "\"]")).addClass('selected'); }, clearSelectedFolder: function clearSelectedFolder() { this.$('.folder-list li.selected').removeClass('selected'); }, onRemoveFolderSelectionClick: function onRemoveFolderSelectionClick() { this.clearSelectedFolder(); this.ui.selectedFolderText.html(''); this.ui.selectedFolder.hide(); this.ui.ellipsisIcon.show(); this.ui.hiddenInputSelectedFolder.val(''); this.hideFoldersDropdown(); }, loadMoreFolders: function loadMoreFolders() { var _this7 = this; return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee3() { return _regenerator.default.wrap(function (_context3) { while (1) switch (_context3.prev = _context3.next) { case 0: _this7.removeLoadMoreItem(); _this7.addSpinner(); _context3.prev = 1; _context3.next = 2; return _this7.fetchFolders(); case 2: _context3.prev = 2; _this7.removeSpinner(); _this7.disableSelectedFolder(); return _context3.finish(2); case 3: case "end": return _context3.stop(); } }, _callee3, null, [[1,, 2, 3]]); }))(); }, shouldAddLoadMoreItem: function shouldAddLoadMoreItem(response) { return this.folderCollectionView.collection.length < (response === null || response === void 0 ? void 0 : response.total); }, addLoadMoreItem: function addLoadMoreItem() { this.folderCollectionView.collection.add({ template_id: LOAD_MORE_ID, title: __('Load More', 'elementor') }); }, removeLoadMoreItem: function removeLoadMoreItem() { var loadMore = this.folderCollectionView.collection.findWhere({ template_id: LOAD_MORE_ID }); if (loadMore) { this.folderCollectionView.collection.remove(loadMore); } }, handleSourceSelectionChange: function handleSourceSelectionChange(event) { this.maybeAllowOnlyOneCheckboxToBeChecked(event); this.maybeEnableSaveButton(); }, maybeAllowOnlyOneCheckboxToBeChecked: function maybeAllowOnlyOneCheckboxToBeChecked(event) { var _this8 = this; if (this.moreThanOneCheckboxCanBeChecked()) { return; } var selectedCheckbox = event.currentTarget; this.ui.sourceSelectionCheckboxes.each(function (_, checkbox) { var wrapper = _this8.$(checkbox).closest('.source-selections-input'); if (checkbox !== selectedCheckbox) { if (selectedCheckbox.checked) { wrapper.addClass('disabled'); checkbox.checked = false; } else { wrapper.removeClass('disabled'); } } }); }, moreThanOneCheckboxCanBeChecked: function moreThanOneCheckboxCanBeChecked() { return _constants.SAVE_CONTEXTS.SAVE === this.getOption('context') || 'cloud' !== elementor.templates.getFilter('source'); }, showInfoTip: function showInfoTip() { var _this9 = this; if (this.infoTipDialog) { this.infoTipDialog.hide(); } var message = elementor.templates.hasCloudLibraryQuota() ? __('Upgrade your subscription to get more space and reuse saved assets across all your sites.', 'elementor') : __('Upgrade your subscription to access Cloud Templates and reuse saved assets across all your sites.', 'elementor'); var goLink = elementor.templates.hasCloudLibraryQuota() ? 'https://go.elementor.com/go-pro-cloud-templates-save-to-100-usage-notice' : 'https://go.elementor.com/go-pro-cloud-templates-save-to-free-tooltip/'; this.infoTipDialog = elementor.dialogsManager.createWidget('buttons', { id: 'elementor-library--infotip__dialog', effects: { show: 'show', hide: 'hide' }, position: { of: this.ui.infoIcon, at: 'top-75' } }).setMessage(message).addButton({ name: 'learn_more', text: __('Upgrade Now', 'elementor'), classes: '', callback: function callback() { open(goLink, '_blank'); _this9.onUpgradeBadgeClicked(); } }); this.infoTipDialog.getElements('header').remove(); this.infoTipDialog.show(); }, hideInfoTip: function hideInfoTip() { if (this.infoTipDialog) { this.infoTipDialog.hide(); } }, getConnectInfoTipPosition: function getConnectInfoTipPosition() { return 'top+80'; }, showConnectInfoTip: function showConnectInfoTip() { if (this.connectInfoTipDialog) { this.connectInfoTipDialog.hide(); } this.connectInfoTipDialog = elementor.dialogsManager.createWidget('buttons', { id: 'elementor-library--connect_infotip__dialog', effects: { show: 'show', hide: 'hide' }, position: { of: this.ui.connectBadge, at: this.getConnectInfoTipPosition() } }).setMessage(__('To access the Cloud Templates Library you must have an active Elementor Pro subscription', 'elementor') + ' ' + __('and', 'elementor') + ' ' + __('connect your site.', 'elementor')); this.connectInfoTipDialog.getElements('header').remove(); this.connectInfoTipDialog.getElements('buttonsWrapper').remove(); this.addVariantClass(this.connectInfoTipDialog.getElements('widget')); this.connectInfoTipDialog.show(); }, addVariantClass: function addVariantClass() { return ''; }, hideConnectInfoTip: function hideConnectInfoTip() { if (this.connectInfoTipDialog) { this.connectInfoTipDialog.hide(); } }, handleElementorConnect: function handleElementorConnect() { elementor.templates.eventManager.sendPageViewEvent({ location: elementorCommon.eventsManager.config.secondaryLocations.templateLibrary.saveModalSelectConnect }); this.ui.connect.elementorConnect({ success: function success() { elementor.config.library_connect.is_connected = true; $e.run('library/close'); elementor.notifications.showToast({ message: __('Connected successfully.', 'elementor') }); }, error: function error() { elementor.config.library_connect.is_connected = false; } }); }, onTemplateNameInputChange: function onTemplateNameInputChange() { this.maybeEnableSaveButton(); }, updateSubmitButtonState: function updateSubmitButtonState(shouldDisableSubmitButton) { this.ui.submitButton.toggleClass('e-primary', !shouldDisableSubmitButton); this.ui.submitButton.prop('disabled', shouldDisableSubmitButton); }, hideFoldersDropdown: function hideFoldersDropdown() { this.ui.foldersDropdown.hide(); this.updateEllipsisAriaExpanded(false); }, bindDocumentClickHandler: function bindDocumentClickHandler() { this.documentClickHandler = this.hideDropdownIfClickOutside.bind(this); elementor.templates.layout.modalContent.$el.on('click', this.documentClickHandler); }, unbindDocumentClickHandler: function unbindDocumentClickHandler() { if (!this.documentClickHandler) { return; } elementor.templates.layout.modalContent.$el.off('click', this.documentClickHandler); this.documentClickHandler = null; }, hideDropdownIfClickOutside: function hideDropdownIfClickOutside(event) { if (!this.ui.foldersDropdown.is(':visible')) { return; } var target = jQuery(event.target); var isClickInsideDropdown = target.closest(this.ui.foldersDropdown).length > 0; var isClickOnEllipsisIcon = target.closest(this.ui.ellipsisIcon).length > 0; var isClickOnSelectedFolderText = target.closest(this.ui.selectedFolderText).length > 0; if (!isClickInsideDropdown && !isClickOnEllipsisIcon && !isClickOnSelectedFolderText) { this.hideFoldersDropdown(); } }, onUpgradeBadgeClicked: function onUpgradeBadgeClicked() { var upgradePosition = elementor.templates.hasCloudLibraryQuota() ? 'save to-max' : 'save to-free'; elementor.templates.eventManager.sendUpgradeClickedEvent({ secondaryLocation: elementorCommon.eventsManager.config.secondaryLocations.templateLibrary.saveModal, upgrade_position: upgradePosition }); } }); module.exports = TemplateLibrarySaveTemplateView; /***/ }), /***/ "../assets/dev/js/editor/components/template-library/views/parts/templates-empty.js": /*!******************************************************************************************!*\ !*** ../assets/dev/js/editor/components/template-library/views/parts/templates-empty.js ***! \******************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"]; var TemplateLibraryTemplatesEmptyView = Marionette.ItemView.extend({ tagName: 'main', id: 'elementor-template-library-templates-empty', template: '#tmpl-elementor-template-library-templates-empty', ui: { title: '.elementor-template-library-blank-title', message: '.elementor-template-library-blank-message', icon: '.elementor-template-library-blank-icon', button: '.elementor-template-library-cloud-empty__button', backToEditor: '.e-back-to-editor' }, events: { 'click @ui.backToEditor': 'closeLibrary' }, closeLibrary: function closeLibrary(event) { event.preventDefault(); $e.run('library/close'); }, modesStrings: function modesStrings() { var defaultIcon = this.getDefaultIcon(); return { empty: { title: __('Haven’t Saved Templates Yet?', 'elementor'), message: __('This is where your templates should be. Design it. Save it. Reuse it.', 'elementor'), icon: defaultIcon, button: '' }, noResults: { title: __('No Results Found', 'elementor'), message: __('Please make sure your search is spelled correctly or try a different words.', 'elementor'), icon: defaultIcon, button: '' }, noFavorites: { title: __('No Favorite Templates', 'elementor'), message: __('You can mark any pre-designed template as a favorite.', 'elementor'), icon: defaultIcon, button: '' }, cloudEmpty: { title: __('No templates saved just yet', 'elementor'), message: __('Once you save a template, it’ll show up here, ready for reuse across all of your Elementor sites—no extra work needed.', 'elementor'), icon: this.getCloudIcon(), button: "".concat(__('Back to editor', 'elementor'), "") }, cloudFolderEmpty: { title: __('No templates to show here, yet', 'elementor'), message: __('Once you save some templates to this folder, you can use them on any website you’re working on.', 'elementor'), icon: this.getEmptyFolderIcon(), button: "".concat(__('Back to editor', 'elementor'), "") } }; }, getDefaultIcon: function getDefaultIcon() { return ""); }, getCloudIcon: function getCloudIcon() { return ""; }, getEmptyFolderIcon: function getEmptyFolderIcon() { return ""; }, getCurrentMode: function getCurrentMode() { if (elementor.templates.getFilter('text')) { return 'noResults'; } if (elementor.templates.getFilter('favorite')) { return 'noFavorites'; } if ('cloud' === elementor.templates.getFilter('source')) { return null !== elementor.templates.getFilter('parent') ? 'cloudFolderEmpty' : 'cloudEmpty'; } return 'empty'; }, onRender: function onRender() { var modeStrings = this.modesStrings()[this.getCurrentMode()]; this.ui.title.html(modeStrings.title); this.ui.message.html(modeStrings.message); this.ui.button.html(modeStrings.button); this.ui.icon.html(modeStrings.icon); } }); module.exports = TemplateLibraryTemplatesEmptyView; /***/ }), /***/ "../assets/dev/js/editor/components/template-library/views/parts/templates.js": /*!************************************************************************************!*\ !*** ../assets/dev/js/editor/components/template-library/views/parts/templates.js ***! \************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; /* provided dependency */ var sprintf = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["sprintf"]; /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"]; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js")); var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js")); var _select = _interopRequireDefault(__webpack_require__(/*! elementor-editor-utils/select2.js */ "../assets/dev/js/editor/utils/select2.js")); var _keyboardNav = __webpack_require__(/*! elementor-editor-utils/keyboard-nav */ "../assets/dev/js/editor/utils/keyboard-nav.js"); var _constants = __webpack_require__(/*! ./../../constants */ "../assets/dev/js/editor/components/template-library/constants.js"); var TemplateLibraryTemplateLocalView = __webpack_require__(/*! elementor-templates/views/template/local */ "../assets/dev/js/editor/components/template-library/views/template/local.js"); var TemplateLibraryTemplateRemoteView = __webpack_require__(/*! elementor-templates/views/template/remote */ "../assets/dev/js/editor/components/template-library/views/template/remote.js"); var TemplateLibraryTemplateCloudView = __webpack_require__(/*! elementor-templates/views/template/cloud */ "../assets/dev/js/editor/components/template-library/views/template/cloud.js"); var TemplateLibraryCollectionView = Marionette.CompositeView.extend({ tagName: 'main', template: '#tmpl-elementor-template-library-templates', id: 'elementor-template-library-templates', childViewContainer: '#elementor-template-library-templates-container', reorderOnSort: true, emptyView: function emptyView() { var EmptyView = __webpack_require__(/*! elementor-templates/views/parts/templates-empty */ "../assets/dev/js/editor/components/template-library/views/parts/templates-empty.js"); return new EmptyView(); }, ui: { textFilter: '#elementor-template-library-filter-text', selectFilter: '.elementor-template-library-filter-select', myFavoritesFilter: '#elementor-template-library-filter-my-favorites', orderInputs: '.elementor-template-library-order-input', orderLabels: 'label.elementor-template-library-order-label', searchInputIcon: '#elementor-template-library-filter-text-wrapper i', loadMoreAnchor: '#elementor-template-library-load-more-anchor', sourceFilterRadiogroup: '.elementor-template-library-filter-select-source', selectSourceFilter: '.elementor-template-library-filter-select-source .source-option', addNewFolder: '#elementor-template-library-add-new-folder', addNewFolderDivider: '.elementor-template-library-filter-toolbar-side-actions .divider', selectGridView: '#elementor-template-library-view-grid', selectListView: '#elementor-template-library-view-list', bulkSelectionActionBar: '.bulk-selection-action-bar', bulkActionBarDelete: '.bulk-selection-action-bar .bulk-delete', bulkSelectedCount: '.bulk-selection-action-bar .selected-count', bulkSelectAllCheckbox: '#bulk-select-all', clearBulkSelections: '.bulk-selection-action-bar .clear-bulk-selections', bulkMove: '.bulk-selection-action-bar .bulk-move', bulkCopy: '.bulk-selection-action-bar .bulk-copy', quota: '.quota-progress-container .quota-progress-bar', quotaFill: '.quota-progress-container .quota-progress-bar .quota-progress-bar-fill', quotaValue: '.quota-progress-container .quota-progress-bar-value', quotaWarning: '.quota-progress-container .progress-bar-container .quota-warning', quotaUpgrade: '.quota-progress-container .progress-bar-container .quota-warning a', quotaStatus: '#elementor-template-library-quota-status', navigationContainer: '#elementor-template-library-navigation-container', sourceOptionBadges: '.source-option-badge.variant-b-only', cloudBadge: '.source-option-badge.cloud-badge', siteBadge: '.source-option-badge.site-badge', sortStatus: '#elementor-template-library-sort-status', loadStatus: '#elementor-template-library-load-status' }, events: { 'input @ui.textFilter': 'onTextFilterInput', 'change @ui.selectFilter': 'onSelectFilterChange', 'change @ui.myFavoritesFilter': 'onMyFavoritesFilterChange', 'mousedown @ui.orderLabels': 'onOrderLabelsClick', 'click @ui.selectSourceFilter': 'onSelectSourceFilterChange', 'keydown @ui.selectSourceFilter': 'onSelectSourceFilterKeyDown', 'click @ui.addNewFolder': 'onCreateNewFolderClick', 'click @ui.selectGridView': 'onSelectGridViewClick', 'click @ui.selectListView': 'onSelectListViewClick', 'change @ui.bulkSelectAllCheckbox': 'onBulkSelectAllCheckbox', 'click @ui.clearBulkSelections': 'onClearBulkSelections', 'mouseenter @ui.bulkMove': 'onHoverBulkAction', 'mouseenter @ui.bulkCopy': 'onHoverBulkAction', 'click @ui.bulkMove': 'onClickBulkMove', 'click @ui.bulkActionBarDelete': 'onBulkDeleteClick', 'click @ui.bulkCopy': 'onClickBulkCopy', 'click @ui.quotaUpgrade': 'onQuotaUpgradeClicked', 'mouseenter @ui.cloudBadge': 'showCloudBadgeTooltip', 'mouseenter @ui.siteBadge': 'showSiteBadgeTooltip', 'mouseleave @ui.cloudBadge': 'hideCloudBadgeTooltip', 'mouseleave @ui.siteBadge': 'hideSiteBadgeTooltip' }, className: 'no-bulk-selections', resetQuotaBarStyles: function resetQuotaBarStyles() { this.ui.quota.removeClass(['quota-progress-bar-normal', 'quota-progress-bar-warning', 'quota-progress-bar-alert']); this.ui.quotaFill.removeClass(['quota-progress-bar-fill-normal', 'quota-progress-bar-fill-warning', 'quota-progress-bar-fill-alert']); }, setQuotaBarStyles: function setQuotaBarStyles(variant) { this.ui.quota.addClass("quota-progress-bar-".concat(variant)); this.ui.quotaFill.addClass("quota-progress-bar-fill-".concat(variant)); }, handleQuotaWarning: function handleQuotaWarning(variant, quotaUsage) { var message = _constants.QUOTA_WARNINGS[variant]; if (!message) { return; } this.ui.quotaWarning.html(sprintf(message, quotaUsage)); this.ui.quotaWarning.show(); }, handleQuotaBar: function handleQuotaBar() { var _elementorAppConfig, _quota$currentUsage, _quota$threshold; var quota = (_elementorAppConfig = elementorAppConfig) === null || _elementorAppConfig === void 0 || (_elementorAppConfig = _elementorAppConfig['cloud-library']) === null || _elementorAppConfig === void 0 ? void 0 : _elementorAppConfig.quota; var value = quota ? Math.round(quota.currentUsage / quota.threshold * 100) : 0; this.ui.quotaFill.css('width', "".concat(value, "%")); this.ui.quotaValue.text("".concat(quota === null || quota === void 0 || (_quota$currentUsage = quota.currentUsage) === null || _quota$currentUsage === void 0 ? void 0 : _quota$currentUsage.toLocaleString(), "/").concat(quota === null || quota === void 0 || (_quota$threshold = quota.threshold) === null || _quota$threshold === void 0 ? void 0 : _quota$threshold.toLocaleString())); this.ui.quotaWarning.hide(); this.resetQuotaBarStyles(); var quotaState = this.resolveQuotaState(value); this.handleQuotaWarning(quotaState, value); this.setQuotaBarStyles(quotaState); if (this.ui.quota.length) { this.ui.quota.attr({ 'aria-valuenow': value }); } if (quota && this.ui.quotaStatus.length) { // Translators: %1$s: current usage number, %2$s: threshold number var statusText = sprintf( // Translators: %1$s: current usage number, %2$s: threshold number __('%1$s of %2$s templates used', 'elementor'), quota.currentUsage.toLocaleString(), quota.threshold.toLocaleString()); this.ui.quotaStatus.text(statusText); } }, resolveQuotaState: function resolveQuotaState(value) { if (value < 80) { return _constants.QUOTA_BAR_STATES.NORMAL; } else if (value < 100) { return _constants.QUOTA_BAR_STATES.WARNING; } return _constants.QUOTA_BAR_STATES.ALERT; }, onClearBulkSelections: function onClearBulkSelections() { elementor.templates.clearBulkSelectionItems(); elementor.templates.layout.handleBulkActionBar(); elementor.templates.layout.selectAllCheckboxNormal(); this.deselectAllBulkItems(); }, deselectAllBulkItems: function deselectAllBulkItems() { if ('list' === elementor.templates.getViewSelection() || 'local' === elementor.templates.getFilter('source')) { this.ui.bulkSelectAllCheckbox.prop('checked', false).trigger('change'); } else { document.querySelectorAll('.bulk-selected-item').forEach(function (item) { item.classList.remove('bulk-selected-item'); item.setAttribute('aria-selected', 'false'); item.setAttribute('tabindex', '-1'); var checkbox = item.querySelector('.bulk-selection-item-checkbox'); if (checkbox) { checkbox.checked = false; checkbox.setAttribute('aria-checked', 'false'); } }); } }, onBulkSelectAllCheckbox: function onBulkSelectAllCheckbox() { var isChecked = this.$('#bulk-select-all:checked').length > 0; if (isChecked) { elementor.templates.layout.selectAllCheckboxNormal(); } this.updateBulkSelectedItems(isChecked); elementor.templates.layout.handleBulkActionBarUi(); }, updateBulkSelectedItems: function updateBulkSelectedItems(isChecked) { document.querySelectorAll('.bulk-selection-item-checkbox').forEach(function (checkbox) { checkbox.checked = isChecked; checkbox.setAttribute('aria-checked', String(isChecked)); var templateId = checkbox.dataset.template_id; var type = checkbox.dataset.type; var parentDiv = checkbox.closest('.elementor-template-library-template'); if (isChecked) { elementor.templates.addBulkSelectionItem(templateId, type); parentDiv === null || parentDiv === void 0 || parentDiv.classList.add('bulk-selected-item'); } else { elementor.templates.removeBulkSelectionItem(templateId, type); parentDiv === null || parentDiv === void 0 || parentDiv.classList.remove('bulk-selected-item'); } if (parentDiv) { parentDiv.setAttribute('aria-selected', String(isChecked)); parentDiv.setAttribute('tabindex', isChecked ? '0' : '-1'); } }); }, onBulkDeleteClick: function onBulkDeleteClick() { var _this = this; this.ui.bulkActionBarDelete.toggleClass('disabled'); elementor.templates.onBulkDeleteClick().finally(function () { _this.ui.bulkActionBarDelete.toggleClass('disabled'); elementor.templates.layout.handleBulkActionBar(); }); }, comparators: { title: function title(model) { return model.get('title').toLowerCase(); }, popularityIndex: function popularityIndex(model) { var popularityIndex = model.get('popularityIndex'); if (!popularityIndex) { popularityIndex = model.get('date'); } return -popularityIndex; }, trendIndex: function trendIndex(model) { var trendIndex = model.get('trendIndex'); if (!trendIndex) { trendIndex = model.get('date'); } return -trendIndex; } }, getChildView: function getChildView(childModel) { var sourceMappings = { local: TemplateLibraryTemplateLocalView, remote: TemplateLibraryTemplateRemoteView, cloud: TemplateLibraryTemplateCloudView }; var activeSource = childModel.get('source') ? childModel.get('source') : 'local'; /** * Filter template source. * * @param bool isRemote - If `true` the source is a remote source. * @param string activeSource - The current template source. */ var isRemote = elementor.hooks.applyFilters('templates/source/is-remote', 'remote' === activeSource, activeSource); return isRemote ? TemplateLibraryTemplateRemoteView : sourceMappings[activeSource] || TemplateLibraryTemplateLocalView; }, initialize: function initialize() { this.handleQuotaBar = this.handleQuotaBar.bind(this); this.handleQuotaUpdate = this.handleQuotaUpdate.bind(this); this.handleSourceFilterChange = this.handleSourceFilterChange.bind(this); this.listenTo(elementor.channels.templates, 'filter:change', this._renderChildren); this.listenTo(elementor.channels.templates, 'filter:change', this.handleSourceOptionBadges); this.listenTo(elementor.channels.templates, 'filter:change', this.handleSourceFilterChange); this.listenTo(elementor.channels.templates, 'quota:updated', this.handleQuotaUpdate); this.debouncedSearchTemplates = _.debounce(this.searchTemplates, 300); }, handleQuotaUpdate: function handleQuotaUpdate() { var _elementor$templates$, _this2 = this; var activeSource = (_elementor$templates$ = elementor.templates.getFilter('source')) !== null && _elementor$templates$ !== void 0 ? _elementor$templates$ : 'local'; if ('cloud' === activeSource) { $e.components.get('cloud-library').utils.getQuotaConfig().then(function () { _this2.handleQuotaBar(); }); } }, handleSourceFilterChange: function handleSourceFilterChange(filterName) { if ('source' === filterName) { var _elementor$templates$2; var activeSource = (_elementor$templates$2 = elementor.templates.getFilter('source')) !== null && _elementor$templates$2 !== void 0 ? _elementor$templates$2 : 'local'; this.updateSourceFilterAriaAttributes(activeSource); } }, updateSourceFilterAriaAttributes: function updateSourceFilterAriaAttributes(selectedSource) { if (!this.ui.selectSourceFilter.length) { return; } this.ui.selectSourceFilter.each(function () { var $option = jQuery(this), source = $option.data('source'), isSelected = source === selectedSource; $option.attr({ 'aria-checked': isSelected ? 'true' : 'false', tabindex: isSelected ? '0' : '-1' }); }); }, filter: function filter(childModel) { var activeSource = elementor.templates.getFilter('source'); if ('cloud' === activeSource) { return true; // Filtering happens on the backend. } var filterTerms = elementor.templates.getFilterTerms(), passingFilter = true; jQuery.each(filterTerms, function (filterTermName) { var filterValue = elementor.templates.getFilter(filterTermName); if (!filterValue) { return; } if (this.callback) { var callbackResult = this.callback.call(childModel, filterValue); if (!callbackResult) { passingFilter = false; } return callbackResult; } var filterResult = filterValue === childModel.get(filterTermName); if (!filterResult) { passingFilter = false; } return filterResult; }); return passingFilter; }, order: function order(by, reverseOrder) { var comparator = this.comparators[by] || by; if ('cloud' === elementor.templates.getFilter('source')) { this.handleCloudOrder(by, reverseOrder); return; } if (reverseOrder) { comparator = this.reverseOrder(comparator); } this.collection.comparator = comparator; this.collection.sort(); this.announceSortStatus(by, reverseOrder); }, announceSortStatus: function announceSortStatus(by, reverseOrder) { var orderLabels = { title: __('Name', 'elementor'), type: __('Type', 'elementor'), author: __('Created By', 'elementor'), date: __('Creation Date', 'elementor') }; var orderDirection = reverseOrder ? __('descending', 'elementor') : __('ascending', 'elementor'); var sortLabel = orderLabels[by] || by; var message = __('Sorted by', 'elementor') + ' ' + sortLabel + ', ' + orderDirection; if (this.ui.sortStatus.length) { this.ui.sortStatus.text(message); } }, announceLoadStatus: function announceLoadStatus(count) { var message = count + ' ' + __('more templates loaded', 'elementor'); if (this.ui.loadStatus.length) { this.ui.loadStatus.text(message); } }, handleCloudOrder: function handleCloudOrder(by, reverseOrder) { var _this3 = this; elementor.templates.setFilter('orderby', by); elementor.templates.setFilter('order', reverseOrder ? 'desc' : 'asc'); this.onClearBulkSelections(); this.collection.reset(); elementor.templates.layout.showLoadingView(); elementor.templates.loadMore({ onUpdate: function onUpdate() { elementor.templates.layout.hideLoadingView(); _this3.announceSortStatus(by, reverseOrder); }, search: this.ui.textFilter.val(), refresh: true }); }, reverseOrder: function reverseOrder(comparator) { if ('function' !== typeof comparator) { var comparatorValue = comparator; comparator = function comparator(model) { return model.get(comparatorValue); }; } return function (left, right) { var l = comparator(left); if (undefined === l) { return -1; } var r = comparator(right); if (undefined === r) { return 1; } if (l < r) { return 1; } if (l > r) { return -1; } return 0; }; }, addSourceData: function addSourceData() { var isEmpty = this.children.isEmpty(); this.$el.attr('data-template-source', isEmpty ? 'empty' : elementor.templates.getFilter('source')); }, addViewData: function addViewData() { var view = elementor.templates.getViewSelection(); this.$el.attr('data-template-view', view); }, setFiltersUI: function setFiltersUI() { if (!this.select2Instance && this.$(this.ui.selectFilter).length) { var $filters = this.$(this.ui.selectFilter), select2Options = { placeholder: __('Category', 'elementor'), allowClear: true, width: 150, dropdownParent: this.$el }; this.select2Instance = new _select.default({ $element: $filters, options: select2Options }); } }, setMasonrySkin: function setMasonrySkin() { var masonry = new elementorModules.utils.Masonry({ container: this.$childViewContainer, items: this.$childViewContainer.children() }); this.$childViewContainer.imagesLoaded(masonry.run.bind(masonry)); }, toggleFilterClass: function toggleFilterClass() { this.$el.toggleClass('elementor-templates-filter-active', !!(elementor.templates.getFilter('text') || elementor.templates.getFilter('favorite'))); }, isPageOrLandingPageTemplates: function isPageOrLandingPageTemplates() { var templatesType = elementor.templates.getFilter('type'); return 'page' === templatesType || 'lp' === templatesType; }, onDestroy: function onDestroy() { if (this.removeScrollListener) { this.removeScrollListener(); } }, shouldShowVariantB: function shouldShowVariantB() { return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() { var experimentVariant; return _regenerator.default.wrap(function (_context) { while (1) switch (_context.prev = _context.next) { case 0: _context.next = 1; return elementor.templates.eventManager.getSaveTemplateExperimentVariant(); case 1: experimentVariant = _context.sent; return _context.abrupt("return", 'B' === experimentVariant); case 2: case "end": return _context.stop(); } }, _callee); }))(); }, handleSourceOptionBadges: function handleSourceOptionBadges() { var _this4 = this; return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2() { var shouldShow, activeSource; return _regenerator.default.wrap(function (_context2) { while (1) switch (_context2.prev = _context2.next) { case 0: _context2.next = 1; return _this4.shouldShowVariantB(); case 1: shouldShow = _context2.sent; if (shouldShow) { _context2.next = 2; break; } _this4.ui.sourceOptionBadges.hide(); return _context2.abrupt("return"); case 2: activeSource = elementor.templates.getFilter('source'); _this4.$('.source-option-badge.site-badge').toggle('local' === activeSource); _this4.$('.source-option-badge.cloud-badge').toggle('cloud' === activeSource); case 3: case "end": return _context2.stop(); } }, _callee2); }))(); }, onRender: function onRender() { elementor.templates.clearBulkSelectionItems(); var activeSource = elementor.templates.getFilter('source'); var templateType = elementor.templates.getFilter('type'); if ('remote' === activeSource && 'page' !== templateType && 'lb' !== templateType) { this.setFiltersUI(); } if ('cloud' === activeSource) { var isFolderView = elementor.templates.getFilter('parentId'); var location = isFolderView ? elementorCommon.eventsManager.config.secondaryLocations.templateLibrary.cloudTabFolder : elementorCommon.eventsManager.config.secondaryLocations.templateLibrary.cloudTab; elementor.templates.eventManager.sendPageViewEvent({ location: location }); this.handleQuotaBar(); } if ('local' === activeSource) { elementor.templates.eventManager.sendPageViewEvent({ location: elementorCommon.eventsManager.config.secondaryLocations.templateLibrary.siteTab }); } this.handleSourceOptionBadges(); }, onRenderCollection: function onRenderCollection() { this.addSourceData(); this.toggleFilterClass(); var activeSource = elementor.templates.getFilter('source'); if ('remote' === activeSource && !this.isPageOrLandingPageTemplates()) { this.setMasonrySkin(); } if ('cloud' === activeSource) { this.handleLoadMore(); this.addViewData(); this.handleQuotaUpdate(); } this.handleSourceOptionBadges(); }, onBeforeRenderEmpty: function onBeforeRenderEmpty() { this.addSourceData(); }, onTextFilterInput: function onTextFilterInput() { var activeSource = elementor.templates.getFilter('source'); if (['cloud', 'local'].includes(activeSource)) { elementor.templates.clearBulkSelectionItems(); elementor.templates.layout.handleBulkActionBar(); } if ('cloud' === activeSource) { this.debouncedSearchTemplates(activeSource); return; } elementor.templates.setFilter('text', this.ui.textFilter.val()); }, searchTemplates: function searchTemplates(source) { var _this5 = this; return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee3() { return _regenerator.default.wrap(function (_context3) { while (1) switch (_context3.prev = _context3.next) { case 0: _this5.showLoadingSpinner(); _context3.prev = 1; _context3.next = 2; return elementor.templates.searchTemplates({ source: source, search: _this5.ui.textFilter.val() }); case 2: _context3.prev = 2; _this5.showSearchIcon(); return _context3.finish(2); case 3: case "end": return _context3.stop(); } }, _callee3, null, [[1,, 2, 3]]); }))(); }, showLoadingSpinner: function showLoadingSpinner() { this.ui.searchInputIcon.removeClass('eicon-search').addClass('eicon-loading eicon-animation-spin'); }, showSearchIcon: function showSearchIcon() { this.ui.searchInputIcon.removeClass('eicon-loading eicon-animation-spin').addClass('eicon-search'); }, onSelectFilterChange: function onSelectFilterChange(event) { var $select = jQuery(event.currentTarget), filterName = $select.data('elementor-filter'); elementor.templates.setFilter(filterName, $select.val()); }, onSelectSourceFilterChange: function onSelectSourceFilterChange(event) { elementor.templates.onSelectSourceFilterChange(event); }, onSelectSourceFilterKeyDown: function onSelectSourceFilterKeyDown(event) { var _this6 = this; var handled = (0, _keyboardNav.rovingTabindex)({ event: event, $items: this.ui.selectSourceFilter, orientation: 'both', activateOnFocus: true, homeEnd: false, onActivate: function onActivate(e, $item) { _this6._restoreFocusToSourceFilter = true; $item.trigger('click'); } }); if (handled) { this._restoreFocusToSourceFilter = true; } }, onSelectGridViewClick: function onSelectGridViewClick() { elementor.templates.onSelectViewChange('grid'); }, onSelectListViewClick: function onSelectListViewClick() { elementor.templates.onSelectViewChange('list'); }, onMyFavoritesFilterChange: function onMyFavoritesFilterChange() { elementor.templates.setFilter('favorite', this.ui.myFavoritesFilter[0].checked); }, onOrderLabelsClick: function onOrderLabelsClick(event) { var $clickedInput = jQuery(event.currentTarget.control); var toggle; if (!$clickedInput[0].checked) { toggle = 'asc' !== $clickedInput.data('default-ordering-direction'); } else { toggle = !$clickedInput.hasClass('elementor-template-library-order-reverse'); } $clickedInput.prop('checked', true); $clickedInput.toggleClass('elementor-template-library-order-reverse', toggle); this.order($clickedInput.val(), toggle); }, handleLoadMore: function handleLoadMore() { var _elementor, _this7 = this; if (this.removeScrollListener) { this.removeScrollListener(); } var scrollableContainer = (_elementor = elementor) === null || _elementor === void 0 || (_elementor = _elementor.templates) === null || _elementor === void 0 || (_elementor = _elementor.layout) === null || _elementor === void 0 ? void 0 : _elementor.modal.getElements('message'); var listener = function listener() { var scrollTop = scrollableContainer.scrollTop(); var scrollHeight = scrollableContainer[0].scrollHeight; var clientHeight = scrollableContainer.outerHeight(); var scrollPercentage = scrollTop / (scrollHeight - clientHeight) * 100; var canLoadMore = elementor.templates.canLoadMore() && !elementor.templates.isLoading(); if (scrollPercentage < 90 || !canLoadMore) { return; } _this7.ui.loadMoreAnchor.toggleClass('elementor-visibility-hidden'); elementor.templates.layout.selectAllCheckboxMinus(); var previousCount = _this7.collection.length; elementor.templates.loadMore({ onUpdate: function onUpdate() { _this7.ui.loadMoreAnchor.toggleClass('elementor-visibility-hidden'); var newCount = _this7.collection.length; var loadedCount = newCount - previousCount; if (loadedCount > 0) { _this7.announceLoadStatus(loadedCount); } }, search: _this7.ui.textFilter.val() }); }; scrollableContainer.on('scroll', listener); // QA #13: Also trigger load-more when keyboard focus reaches the last few items var focusListener = function focusListener(event) { var canLoadMore = elementor.templates.canLoadMore() && !elementor.templates.isLoading(); if (!canLoadMore) { return; } if (!_this7.$childViewContainer || !_this7.$childViewContainer.length) { return; } var $children = _this7.$childViewContainer.children(); var totalChildren = $children.length; if (totalChildren < 2) { return; } // Check if focus target is within one of the last 2 template items var $target = jQuery(event.target); var focusedIndex = $children.index($target.closest($children)); if (focusedIndex >= totalChildren - 2) { _this7.ui.loadMoreAnchor.toggleClass('elementor-visibility-hidden'); elementor.templates.layout.selectAllCheckboxMinus(); var previousCount = _this7.collection.length; elementor.templates.loadMore({ onUpdate: function onUpdate() { _this7.ui.loadMoreAnchor.toggleClass('elementor-visibility-hidden'); var newCount = _this7.collection.length; var loadedCount = newCount - previousCount; if (loadedCount > 0) { _this7.announceLoadStatus(loadedCount); } }, search: _this7.ui.textFilter.val() }); } }; scrollableContainer.on('focusin', focusListener); this.removeScrollListener = function () { scrollableContainer.off('scroll', listener); scrollableContainer.off('focusin', focusListener); }; }, onCreateNewFolderClick: function onCreateNewFolderClick() { var activeSource = elementor.templates.getFilter('source'); if ('cloud' !== activeSource) { return; } elementor.templates.createFolder({ source: activeSource }, { onSuccess: function onSuccess() { $e.routes.refreshContainer('library'); } }); }, onHoverBulkAction: function onHoverBulkAction() { if (this.hasFolderInBulkSelection() || this.hasLockedTemplatesInBulkSelection()) { this.ui.bulkMove.find('i').css('cursor', 'not-allowed'); this.ui.bulkCopy.find('i').css('cursor', 'not-allowed'); } else { this.ui.bulkMove.find('i').css('cursor', 'pointer'); this.ui.bulkCopy.find('i').css('cursor', 'pointer'); } }, onClickBulkMove: function onClickBulkMove() { if (this.hasFolderInBulkSelection() || this.hasLockedTemplatesInBulkSelection()) { return; } $e.route('library/save-template', { model: this.model, context: _constants.SAVE_CONTEXTS.BULK_MOVE }); }, hasFolderInBulkSelection: function hasFolderInBulkSelection() { var bulkSelectedItems = elementor.templates.getBulkSelectionItems(); return this.collection.some(function (model) { var templateId = model.get('template_id'); var type = model.get('type'); return bulkSelectedItems.has(templateId) && 'folder' === type; }); }, hasLockedTemplatesInBulkSelection: function hasLockedTemplatesInBulkSelection() { var bulkSelectedItems = elementor.templates.getBulkSelectionItems(); return this.collection.some(function (model) { var templateId = model.get('template_id'); return bulkSelectedItems.has(templateId) && model.isLocked(); }); }, onClickBulkCopy: function onClickBulkCopy() { if (this.hasFolderInBulkSelection() || this.hasLockedTemplatesInBulkSelection()) { return; } $e.route('library/save-template', { model: this.model, context: _constants.SAVE_CONTEXTS.BULK_COPY }); }, onQuotaUpgradeClicked: function onQuotaUpgradeClicked() { var _elementorAppConfig2; var quota = (_elementorAppConfig2 = elementorAppConfig) === null || _elementorAppConfig2 === void 0 || (_elementorAppConfig2 = _elementorAppConfig2['cloud-library']) === null || _elementorAppConfig2 === void 0 ? void 0 : _elementorAppConfig2.quota; var value = quota ? Math.round(quota.currentUsage / quota.threshold * 100) : 0; elementor.templates.eventManager.sendUpgradeClickedEvent({ secondaryLocation: elementorCommon.eventsManager.config.secondaryLocations.templateLibrary.quotaBar, upgrade_position: "quota bar ".concat(value ? value + '%' : '') }); }, showCloudBadgeTooltip: function showCloudBadgeTooltip() { if (this.cloudBadgeDialog) { this.cloudBadgeDialog.hide(); } var emailReplacement = elementor.config.library_connect.is_connected ? elementor.config.library_connect.user_email : __('connected', 'elementor'); /* Translators: %s: User's email. */ var message = sprintf(__('Only %s Elementor account can access Cloud Templates from any connected site.', 'elementor'), emailReplacement); this.cloudBadgeDialog = elementor.dialogsManager.createWidget('buttons', { id: 'elementor-library--cloud-upgrade__dialog', effects: { show: 'show', hide: 'hide' }, position: { of: this.ui.cloudBadge, at: 'top-50' } }).setMessage(message); this.cloudBadgeDialog.getElements('widget').addClass('variant-b'); this.cloudBadgeDialog.getElements('header').remove(); this.cloudBadgeDialog.getElements('buttonsWrapper').remove(); this.cloudBadgeDialog.show(); }, hideCloudBadgeTooltip: function hideCloudBadgeTooltip() { if (this.cloudBadgeDialog) { this.cloudBadgeDialog.hide(); } }, showSiteBadgeTooltip: function showSiteBadgeTooltip() { if (this.siteBadgeDialog) { this.siteBadgeDialog.hide(); } var message = __('Authorized users on this site can access Site Templates.', 'elementor'); this.siteBadgeDialog = elementor.dialogsManager.createWidget('buttons', { id: 'elementor-library--site-info__dialog', effects: { show: 'show', hide: 'hide' }, position: { of: this.ui.siteBadge, at: 'top-35' } }).setMessage(message); this.siteBadgeDialog.getElements('widget').addClass('variant-b'); this.siteBadgeDialog.getElements('header').remove(); this.siteBadgeDialog.getElements('buttonsWrapper').remove(); this.siteBadgeDialog.show(); }, hideSiteBadgeTooltip: function hideSiteBadgeTooltip() { if (this.siteBadgeDialog) { this.siteBadgeDialog.hide(); } } }); module.exports = TemplateLibraryCollectionView; /***/ }), /***/ "../assets/dev/js/editor/components/template-library/views/template/base.js": /*!**********************************************************************************!*\ !*** ../assets/dev/js/editor/components/template-library/views/template/base.js ***! \**********************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var TemplateLibraryInsertTemplateBehavior = __webpack_require__(/*! elementor-templates/behaviors/insert-template */ "../assets/dev/js/editor/components/template-library/behaviors/insert-template.js"); var _require = __webpack_require__(/*! elementor-utils/tiers */ "../assets/dev/js/utils/tiers.js"), isTierAtLeast = _require.isTierAtLeast, TIERS = _require.TIERS; var TemplateLibraryTemplateView = Marionette.ItemView.extend({ className: function className() { var classes = 'elementor-template-library-template'; var source = this.model.get('source'); classes += ' elementor-template-library-template-' + source; if ('remote' === source) { classes += ' elementor-template-library-template-' + this.model.get('type'); } if (elementor.config.library_connect.base_access_tier !== this.model.get('accessTier')) { classes += ' elementor-template-library-pro-template'; } return elementor.hooks.applyFilters('elementor/editor/template-library/template/classes', classes, this); }, attributes: function attributes() { var userAccessTier = elementor.config.library_connect.current_access_tier; var templateAccessTier = this.model.get('accessTier'); var canDownloadTemplate = isTierAtLeast(userAccessTier, templateAccessTier); // User with access to the template shouldn't see the badge. if (canDownloadTemplate) { return {}; } var subscriptionPlans = elementor.config.library_connect.subscription_plans; var subscriptionPlan = subscriptionPlans[templateAccessTier]; // Free user should see a generic "Pro" badge. if (userAccessTier === TIERS.free) { subscriptionPlan = subscriptionPlans.essential; } if (!subscriptionPlan) { return {}; } return { style: "--elementor-template-library-subscription-plan-label: \"".concat(subscriptionPlan.label, "\";--elementor-template-library-subscription-plan-color: ").concat(subscriptionPlan.color, ";") }; }, ui: function ui() { return { previewButton: '.elementor-template-library-template-preview' }; }, events: function events() { return { 'click @ui.previewButton': 'onPreviewButtonClick' }; }, behaviors: function behaviors() { var behaviors = { insertTemplate: { behaviorClass: TemplateLibraryInsertTemplateBehavior } }; return elementor.hooks.applyFilters('elementor/editor/template-library/template/behaviors', behaviors, this); } }); module.exports = TemplateLibraryTemplateView; /***/ }), /***/ "../assets/dev/js/editor/components/template-library/views/template/cloud.js": /*!***********************************************************************************!*\ !*** ../assets/dev/js/editor/components/template-library/views/template/cloud.js ***! \***********************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var TemplateLibraryTemplateLocalView = __webpack_require__(/*! elementor-templates/views/template/local */ "../assets/dev/js/editor/components/template-library/views/template/local.js"), TemplateLibraryTemplateCloudView; TemplateLibraryTemplateCloudView = TemplateLibraryTemplateLocalView.extend({ className: function className() { var view = elementor.templates.getViewSelection(), subType = 'FOLDER' === this.model.get('subType') ? 'folder' : 'template'; var classes = TemplateLibraryTemplateLocalView.prototype.className.apply(this, arguments); classes += ' elementor-template-library-template-view-' + view; classes += ' elementor-template-library-template-type-' + subType; return classes; }, attributes: function attributes() { if ('grid' === elementor.templates.getViewSelection()) { var data = this.model.toJSON(); return { 'data-template_id': data.template_id, 'data-type': data.type, 'data-status': data.status, tabindex: '0', 'aria-label': data.title || '' }; } }, ui: function ui() { return _.extend(TemplateLibraryTemplateLocalView.prototype.ui.apply(this, arguments), { previewImg: '.elementor-template-library-template-thumbnail img', insertButton: '.elementor-template-library-template-insert' }); }, events: function events() { return _.extend(TemplateLibraryTemplateLocalView.prototype.events.apply(this, arguments), { keydown: 'onGridCardKeyDown' }); }, modelEvents: _.extend({}, TemplateLibraryTemplateLocalView.prototype.modelEvents, { 'change:preview_url': 'onPreviewUrlChange' }), onGridCardKeyDown: function onGridCardKeyDown(event) { if ('grid' !== elementor.templates.getViewSelection()) { return; } // Only handle keydown events directly on the card element itself, not on children if (event.target !== this.el) { return; } if ('Enter' === event.key || ' ' === event.key) { event.preventDefault(); if ('FOLDER' === this.model.get('subType')) { $e.route('library/view-folder', { model: this.model, onAfter: function onAfter() { elementor.templates.resetBulkActionBar(); } }); } else { this.handleGridViewItemSingleClick(); } } }, onRender: function onRender() { var previewUrl = this.model.get('preview_url'); if (this.shouldGeneratePreview()) { this.iframe = elementor.templates.layout.createScreenshotIframe(this.model.get('generate_preview_url')); this.isGeneratingPreview = true; } if (previewUrl) { this.updatePreviewImgStyle(); } }, onPreviewUrlChange: function onPreviewUrlChange() { var previewUrl = this.model.get('preview_url'); this.isGeneratingPreview = false; if (previewUrl) { this.ui.previewImg.attr('src', previewUrl); this.updatePreviewImgStyle(); this.model.set('generate_preview_url', null); this.iframe.remove(); } }, updatePreviewImgStyle: function updatePreviewImgStyle() { var _this = this; var img = this.ui.previewImg[0]; if (!img) { return; } var applyObjectFit = function applyObjectFit() { var objectFit = img.naturalHeight > 2000 ? 'cover' : 'contain'; if ('cover' === objectFit) { _this.ui.previewImg.css('object-fit', 'cover'); _this.ui.previewImg.css('object-position', 'top'); } }; if (img.complete && img.naturalHeight > 0) { applyObjectFit(); } else { img.onload = applyObjectFit; } }, shouldGeneratePreview: function shouldGeneratePreview() { var view = elementor.templates.getViewSelection(); return 'FOLDER' !== this.model.get('subType') && this.model.get('generate_preview_url') && !this.model.get('preview_url') && 'grid' === view && !this.isGeneratingPreview; }, onPreviewButtonClick: function onPreviewButtonClick(event) { event.stopPropagation(); if ('FOLDER' === this.model.get('subType')) { $e.route('library/view-folder', { model: this.model, onAfter: function onAfter() { elementor.templates.resetBulkActionBar(); } }); } if ('TEMPLATE' === this.model.get('subType')) { this.handleGridViewItemSingleClick(); } }, onDeleteButtonClick: function onDeleteButtonClick(event) { event.stopPropagation(); if ('FOLDER' === this.model.get('subType')) { this.handleDeleteFolderClick(); return; } TemplateLibraryTemplateLocalView.prototype.onDeleteButtonClick.apply(this, arguments); }, handleDeleteFolderClick: function handleDeleteFolderClick() { var toggleMoreIcon = this.ui.toggleMoreIcon; elementor.templates.deleteFolder(this.model, { onConfirm: function onConfirm() { toggleMoreIcon.removeClass('eicon-ellipsis-h').addClass('eicon-loading eicon-animation-spin'); }, onSuccess: function onSuccess() { $e.routes.refreshContainer('library'); } }); }, handleItemSingleClick: function handleItemSingleClick() { if ('grid' === elementor.templates.getViewSelection()) { this.handleGridViewItemSingleClick(); } else { this.handleListViewItemSingleClick(); } }, handleItemDoubleClick: function handleItemDoubleClick() { if ('FOLDER' === this.model.get('subType')) { $e.route('library/view-folder', { model: this.model, onAfter: function onAfter() { elementor.templates.resetBulkActionBar(); } }); } }, handleGridViewItemSingleClick: function handleGridViewItemSingleClick() { var itemIsSelected = this.$el.hasClass('bulk-selected-item'); if (itemIsSelected) { elementor.templates.removeBulkSelectionItem(this.model.get('template_id'), this.model.get('type')); } else { elementor.templates.addBulkSelectionItem(this.model.get('template_id'), this.model.get('type')); } this.$el.toggleClass('bulk-selected-item'); elementor.templates.layout.handleBulkActionBar(); } }); module.exports = TemplateLibraryTemplateCloudView; /***/ }), /***/ "../assets/dev/js/editor/components/template-library/views/template/local.js": /*!***********************************************************************************!*\ !*** ../assets/dev/js/editor/components/template-library/views/template/local.js ***! \***********************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"]; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js")); var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js")); var _constants = __webpack_require__(/*! ./../../constants */ "../assets/dev/js/editor/components/template-library/constants.js"); var _keyboardNav = __webpack_require__(/*! elementor-editor-utils/keyboard-nav */ "../assets/dev/js/editor/utils/keyboard-nav.js"); var TemplateLibraryTemplateView = __webpack_require__(/*! elementor-templates/views/template/base */ "../assets/dev/js/editor/components/template-library/views/template/base.js"); var TemplateLibraryTemplateLocalView = TemplateLibraryTemplateView.extend({ template: '#tmpl-elementor-template-library-template-local', ui: function ui() { return _.extend(TemplateLibraryTemplateView.prototype.ui.apply(this, arguments), { bulkSelectionItemCheckbox: '.bulk-selection-item-checkbox', deleteButton: '.elementor-template-library-template-delete', renameButton: '.elementor-template-library-template-rename', moveButton: '.elementor-template-library-template-move', copyButton: '.elementor-template-library-template-copy', exportButton: '.elementor-template-library-template-export', morePopup: '.elementor-template-library-template-more', toggleMore: '.elementor-template-library-template-more-toggle', toggleMoreIcon: '.elementor-template-library-template-more-toggle i', titleCell: '.elementor-template-library-template-name span', resourceIcon: '.elementor-template-library-template-name i' }); }, events: function events() { return _.extend(TemplateLibraryTemplateView.prototype.events.apply(this, arguments), { click: 'handleItemClicked', 'change @ui.bulkSelectionItemCheckbox': 'onSelectBulkSelectionItemCheckbox', 'click @ui.deleteButton': 'onDeleteButtonClick', 'click @ui.toggleMore': 'onToggleMoreClick', 'keydown @ui.toggleMore': 'onToggleMoreKeyDown', 'keydown @ui.morePopup': 'onMenuKeyDown', 'click @ui.renameButton': 'onRenameClick', 'click @ui.moveButton': 'onMoveClick', 'click @ui.copyButton': 'onCopyClick', 'click @ui.exportButton': 'onExportClick' }); }, modelEvents: { 'change:title': 'onTitleChange' }, onRender: function onRender() { var _this = this; if (this.ui.toggleMore.length) { this.ui.toggleMore.attr({ 'aria-haspopup': 'menu', 'aria-expanded': 'false' }); } if (this.ui.bulkSelectionItemCheckbox.length) { this.updateRowSelectionAttributes(); } // Set up click-outside handler to close context menu if (this.ui.morePopup && this.ui.morePopup.length) { this._onDocumentClick = function (e) { if ('true' !== _this.ui.toggleMore.attr('aria-expanded')) { return; } if (!_this.ui.toggleMore[0].contains(e.target) && !_this.ui.morePopup[0].contains(e.target)) { _this.closeContextMenu(); } }; jQuery(document).on('click', this._onDocumentClick); // Set tabindex on menu items for keyboard focus this.ui.morePopup.find('button, a').attr('tabindex', '-1'); } }, onBeforeDestroy: function onBeforeDestroy() { if (this._onDocumentClick) { jQuery(document).off('click', this._onDocumentClick); } }, openContextMenu: function openContextMenu() { this.handleLockedTemplate(); this.ui.toggleMore.attr('aria-expanded', 'true'); this.ui.morePopup.show(); elementor.templates.eventManager.sendPageViewEvent({ location: elementorCommon.eventsManager.config.secondaryLocations.templateLibrary.morePopup }); }, closeContextMenu: function closeContextMenu() { this.ui.toggleMore.attr('aria-expanded', 'false'); this.ui.morePopup.hide(); }, getMenuItems: function getMenuItems() { return this.ui.morePopup.find('button:visible, a:visible'); }, onToggleMoreKeyDown: function onToggleMoreKeyDown(event) { if ('Escape' === event.key) { event.preventDefault(); if ('true' === this.ui.toggleMore.attr('aria-expanded')) { this.closeContextMenu(); (0, _keyboardNav.suppressEscapeKeyUp)(event); } return; } if ('ArrowDown' === event.key || 'Enter' === event.key || ' ' === event.key) { event.preventDefault(); event.stopPropagation(); if ('true' !== this.ui.toggleMore.attr('aria-expanded')) { this.openContextMenu(); } var $items = this.getMenuItems(); if ($items.length) { $items.first().trigger('focus'); } } }, onMenuKeyDown: function onMenuKeyDown(event) { if ('Escape' === event.key) { event.preventDefault(); this.closeContextMenu(); this.ui.toggleMore.trigger('focus'); (0, _keyboardNav.suppressEscapeKeyUp)(event); return; } if ('Tab' === event.key) { this.handleMenuTab(event); return; } var $items = this.getMenuItems(); (0, _keyboardNav.rovingTabindex)({ event: event, $items: $items, orientation: 'vertical', homeEnd: true }); event.stopPropagation(); }, handleMenuTab: function handleMenuTab(event) { var $items = this.getMenuItems(); var currentIndex = $items.index(event.target); if (event.shiftKey) { if (currentIndex <= 0) { // Close menu and let the browser naturally move focus backwards. this.closeContextMenu(); this.ui.toggleMore.trigger('focus'); } else { event.preventDefault(); event.stopPropagation(); $items.eq(currentIndex - 1).trigger('focus'); } return; } if (currentIndex < $items.length - 1) { event.preventDefault(); event.stopPropagation(); $items.eq(currentIndex + 1).trigger('focus'); } else { // Close menu and let the browser naturally advance focus forward. this.closeContextMenu(); this.ui.toggleMore.trigger('focus'); } }, updateRowSelectionAttributes: function updateRowSelectionAttributes() { var isChecked = this.ui.bulkSelectionItemCheckbox.prop('checked'); var isSelected = this.$el.hasClass('bulk-selected-item'); this.ui.bulkSelectionItemCheckbox.attr('aria-checked', isChecked); if (isSelected) { this.$el.attr({ 'aria-selected': 'true', tabindex: '0' }); } else { this.$el.attr({ 'aria-selected': 'false', tabindex: '-1' }); } }, handleLockedTemplate: function handleLockedTemplate() { var isLocked = this.model.isLocked(); this.ui.renameButton.toggleClass('disabled', isLocked); this.ui.moveButton.toggleClass('disabled', isLocked); this.ui.copyButton.toggleClass('disabled', isLocked); this.ui.exportButton.toggleClass('disabled', isLocked); }, onTitleChange: function onTitleChange() { var title = _.escape(this.model.get('title')); this.ui.titleCell.text(title); if (this.ui.bulkSelectionItemCheckbox.length) { var ariaLabel = __('Select template', 'elementor') + ' ' + title; this.ui.bulkSelectionItemCheckbox.attr('aria-label', ariaLabel); } }, handleItemClicked: function handleItemClicked(event) { var _this2 = this; if (event.target.closest('.bulk-selection-item-checkbox')) { return; // Ignore clicks from checkbox } if (!this._clickState) { this._clickState = { timeoutId: null, delay: 250 }; } var state = this._clickState; if (state.timeoutId) { clearTimeout(state.timeoutId); state.timeoutId = null; this.handleItemDoubleClick(); } else { state.timeoutId = setTimeout(function () { state.timeoutId = null; _this2.handleItemSingleClick(); }, state.delay); } }, handleItemSingleClick: function handleItemSingleClick() { this.handleListViewItemSingleClick(); }, handleItemDoubleClick: function handleItemDoubleClick() {}, handleListViewItemSingleClick: function handleListViewItemSingleClick() { var checkbox = this.ui.bulkSelectionItemCheckbox; var isChecked = checkbox.prop('checked'); checkbox.prop('checked', !isChecked).trigger('change'); }, onDeleteButtonClick: function onDeleteButtonClick(event) { event.stopPropagation(); // Close the context menu before opening the delete confirmation dialog this.closeContextMenu(); var toggleMoreIcon = this.ui.toggleMoreIcon; elementor.templates.deleteTemplate(this.model, { onConfirm: function onConfirm() { toggleMoreIcon.removeClass('eicon-ellipsis-h').addClass('eicon-loading eicon-animation-spin'); } }); }, onToggleMoreClick: function onToggleMoreClick(event) { event.stopPropagation(); this.handleLockedTemplate(); var isExpanded = 'true' === this.ui.toggleMore.attr('aria-expanded'); this.ui.toggleMore.attr('aria-expanded', !isExpanded); if (isExpanded) { this.ui.morePopup.hide(); } else { this.ui.morePopup.show(); // Focus the first visible menu item when opening via click var $items = this.getMenuItems(); if ($items.length) { $items.first().trigger('focus'); } } elementor.templates.eventManager.sendPageViewEvent({ location: elementorCommon.eventsManager.config.secondaryLocations.templateLibrary.morePopup }); }, onPreviewButtonClick: function onPreviewButtonClick(event) { event.stopPropagation(); open(this.model.get('url'), '_blank'); }, onRenameClick: function onRenameClick(event) { var _this3 = this; return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() { return _regenerator.default.wrap(function (_context) { while (1) switch (_context.prev = _context.next) { case 0: event.stopPropagation(); if (!_this3.model.isLocked()) { _context.next = 1; break; } return _context.abrupt("return"); case 1: // Close the context menu before opening rename dialog _this3.closeContextMenu(); _context.prev = 2; _context.next = 3; return elementor.templates.renameTemplate(_this3.model, { onConfirm: function onConfirm() { return _this3.showToggleMoreLoader(); } }); case 3: _context.prev = 3; _this3.hideToggleMoreLoader(); // Restore focus to the toggle button after rename completes if (_this3.ui.toggleMore && _this3.ui.toggleMore.length) { _this3.ui.toggleMore.trigger('focus'); } return _context.finish(3); case 4: case "end": return _context.stop(); } }, _callee, null, [[2,, 3, 4]]); }))(); }, onMoveClick: function onMoveClick() { if (this.model.isLocked()) { return; } $e.route('library/save-template', { model: this.model, context: _constants.SAVE_CONTEXTS.MOVE }); }, onCopyClick: function onCopyClick() { if (this.model.isLocked()) { return; } $e.route('library/save-template', { model: this.model, context: _constants.SAVE_CONTEXTS.COPY }); }, onExportClick: function onExportClick(e) { e.stopPropagation(); if (this.model.isLocked()) { e.preventDefault(); } }, showToggleMoreLoader: function showToggleMoreLoader() { this.ui.toggleMoreIcon.removeClass('eicon-ellipsis-h').addClass('eicon-loading eicon-animation-spin'); }, hideToggleMoreLoader: function hideToggleMoreLoader() { this.ui.toggleMoreIcon.addClass('eicon-ellipsis-h').removeClass('eicon-loading eicon-animation-spin'); }, onSelectBulkSelectionItemCheckbox: function onSelectBulkSelectionItemCheckbox(event) { var _event$target; event.stopPropagation(); if (event !== null && event !== void 0 && (_event$target = event.target) !== null && _event$target !== void 0 && _event$target.checked) { elementor.templates.addBulkSelectionItem(event.target.dataset.template_id, event.target.dataset.type); this.$el.addClass('bulk-selected-item'); } else { elementor.templates.removeBulkSelectionItem(event.target.dataset.template_id, event.target.dataset.type); this.$el.removeClass('bulk-selected-item'); } this.updateRowSelectionAttributes(); elementor.templates.layout.handleBulkActionBarUi(); } }); module.exports = TemplateLibraryTemplateLocalView; /***/ }), /***/ "../assets/dev/js/editor/components/template-library/views/template/remote.js": /*!************************************************************************************!*\ !*** ../assets/dev/js/editor/components/template-library/views/template/remote.js ***! \************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var _editorOneEvents = __webpack_require__(/*! elementor-editor-utils/editor-one-events */ "../assets/dev/js/editor/utils/editor-one-events.js"); var TemplateLibraryTemplateView = __webpack_require__(/*! elementor-templates/views/template/base */ "../assets/dev/js/editor/components/template-library/views/template/base.js"), TemplateLibraryTemplateRemoteView; TemplateLibraryTemplateRemoteView = TemplateLibraryTemplateView.extend({ template: '#tmpl-elementor-template-library-template-remote', attributes: function attributes() { return jQuery.extend(TemplateLibraryTemplateView.prototype.attributes.apply(this, arguments), { tabindex: '0', 'aria-label': this.model.get('title') || '' }); }, ui: function ui() { return jQuery.extend(TemplateLibraryTemplateView.prototype.ui.apply(this, arguments), { favoriteCheckbox: '.elementor-template-library-template-favorite-input' }); }, events: function events() { return jQuery.extend(TemplateLibraryTemplateView.prototype.events.apply(this, arguments), { 'change @ui.favoriteCheckbox': 'onFavoriteCheckboxChange' }); }, onPreviewButtonClick: function onPreviewButtonClick(event) { event.stopPropagation(); $e.route('library/preview', { model: this.model }); }, onFavoriteCheckboxChange: function onFavoriteCheckboxChange() { var _elementor$config$lib; var isFavorite = this.ui.favoriteCheckbox[0].checked; this.model.set('favorite', isFavorite); elementor.templates.markAsFavorite(this.model, isFavorite); var baseTier = (_elementor$config$lib = elementor.config.library_connect) === null || _elementor$config$lib === void 0 ? void 0 : _elementor$config$lib.base_access_tier; var templateTier = this.model.get('accessTier'); _editorOneEvents.EditorOneEventManager.sendELibraryFavorite({ assetId: this.model.get('template_id'), assetName: this.model.get('title'), libraryType: this.model.get('type') || this.model.get('source'), isFavorite: isFavorite, proRequired: baseTier !== templateTier }); if (!isFavorite && elementor.templates.getFilter('favorite')) { elementor.channels.templates.trigger('filter:change'); } } }); module.exports = TemplateLibraryTemplateRemoteView; /***/ }), /***/ "../assets/dev/js/editor/components/validator/base.js": /*!************************************************************!*\ !*** ../assets/dev/js/editor/components/validator/base.js ***! \************************************************************/ /***/ ((module) => { "use strict"; module.exports = elementorModules.Module.extend({ errors: [], __construct: function __construct(settings) { var customValidationMethod = settings.customValidationMethod; if (customValidationMethod) { this.validationMethod = customValidationMethod; } }, getDefaultSettings: function getDefaultSettings() { return { validationTerms: {} }; }, isValid: function isValid() { var validationErrors = this.validationMethod.apply(this, arguments); if (validationErrors.length) { this.errors = validationErrors; return false; } return true; }, validationMethod: function validationMethod(newValue) { var validationTerms = this.getSettings('validationTerms'), errors = []; if (validationTerms.required) { if (!('' + newValue).length) { errors.push('Required value is empty'); } } return errors; } }); /***/ }), /***/ "../assets/dev/js/editor/components/validator/breakpoint.js": /*!******************************************************************!*\ !*** ../assets/dev/js/editor/components/validator/breakpoint.js ***! \******************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js")); function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } var NumberValidator = __webpack_require__(/*! elementor-validator/number */ "../assets/dev/js/editor/components/validator/number.js"); var BreakpointValidator = exports["default"] = /*#__PURE__*/function (_NumberValidator) { function BreakpointValidator() { (0, _classCallCheck2.default)(this, BreakpointValidator); return _callSuper(this, BreakpointValidator, arguments); } (0, _inherits2.default)(BreakpointValidator, _NumberValidator); return (0, _createClass2.default)(BreakpointValidator, [{ key: "getDefaultSettings", value: function getDefaultSettings() { return { validationTerms: { // Max width we allow in general max: 5120 } }; } /** * Get Panel Active Breakpoints * * Since the active kit used in the Site Settings panel could be a draft, we need to use the panel's active * breakpoints settings and not the elementorFrontend.config values (which come from the DB). * * @return {*} Object */ }, { key: "getPanelActiveBreakpoints", value: function getPanelActiveBreakpoints() { var panelBreakpoints = elementor.documents.currentDocument.config.settings.settings.active_breakpoints.map(function (breakpointName) { return breakpointName.replace('viewport_', ''); }), panelActiveBreakpoints = {}; panelBreakpoints.forEach(function (breakpointName) { panelActiveBreakpoints[breakpointName] = elementorFrontend.config.responsive.breakpoints[breakpointName]; }); return panelActiveBreakpoints; } }, { key: "initBreakpointProperties", value: function initBreakpointProperties() { var _activeBreakpoints$br, _activeBreakpoints$br2; var validationTerms = this.getSettings('validationTerms'), activeBreakpoints = this.getPanelActiveBreakpoints(), breakpointKeys = Object.keys(activeBreakpoints); this.breakpointIndex = breakpointKeys.indexOf(validationTerms.breakpointName); this.topBreakpoint = (_activeBreakpoints$br = activeBreakpoints[breakpointKeys[this.breakpointIndex + 1]]) === null || _activeBreakpoints$br === void 0 ? void 0 : _activeBreakpoints$br.value; this.bottomBreakpoint = (_activeBreakpoints$br2 = activeBreakpoints[breakpointKeys[this.breakpointIndex - 1]]) === null || _activeBreakpoints$br2 === void 0 ? void 0 : _activeBreakpoints$br2.value; } }, { key: "validationMethod", value: function validationMethod(newValue) { var validationTerms = this.getSettings('validationTerms'), errors = NumberValidator.prototype.validationMethod.call(this, newValue); // Validate both numeric and empty values, since breakpoints utilize default values when empty. if (_.isFinite(newValue) || '' === newValue) { if (!this.validateMinMaxForBreakpoint(newValue, validationTerms)) { errors.push('Value is not between the breakpoints above or under the edited breakpoint'); } } return errors; } }, { key: "validateMinMaxForBreakpoint", value: function validateMinMaxForBreakpoint(newValue, validationTerms) { var breakpointDefaultValue = elementorFrontend.config.responsive.breakpoints[validationTerms.breakpointName].default_value; var isValid = true; this.initBreakpointProperties(); // Since the following comparison is <=, allow usage of the 320px value for the mobile breakpoint. if ('mobile' === validationTerms.breakpointName && 320 === this.bottomBreakpoint) { this.bottomBreakpoint -= 1; } // If there is a breakpoint below the currently edited breakpoint if (this.bottomBreakpoint) { // Check that the new value is not under the bottom breakpoint's value. if ('' !== newValue && newValue <= this.bottomBreakpoint) { isValid = false; } // If the new value is empty, check that the default breakpoint value is not below the bottom breakpoint. if ('' === newValue && breakpointDefaultValue <= this.bottomBreakpoint) { isValid = false; } } // If there is a breakpoint above the currently edited breakpoint. if (this.topBreakpoint) { // Check that the value is not above the top breakpoint's value. if ('' !== newValue && newValue >= this.topBreakpoint) { isValid = false; } // If the new value is empty, check that the default breakpoint value is not above the top breakpoint. if ('' === newValue && breakpointDefaultValue >= this.topBreakpoint) { isValid = false; } } return isValid; } }]); }(NumberValidator); /***/ }), /***/ "../assets/dev/js/editor/components/validator/number.js": /*!**************************************************************!*\ !*** ../assets/dev/js/editor/components/validator/number.js ***! \**************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var Validator = __webpack_require__(/*! elementor-validator/base */ "../assets/dev/js/editor/components/validator/base.js"); module.exports = Validator.extend({ validationMethod: function validationMethod(newValue) { var validationTerms = this.getSettings('validationTerms'), errors = []; if (_.isFinite(newValue)) { if (undefined !== validationTerms.min && newValue < validationTerms.min) { errors.push('Value is less than minimum'); } if (undefined !== validationTerms.max && newValue > validationTerms.max) { errors.push('Value is greater than maximum'); } } return errors; } }); /***/ }), /***/ "../assets/dev/js/editor/container/model/children-array.js": /*!*****************************************************************!*\ !*** ../assets/dev/js/editor/container/model/children-array.js ***! \*****************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js")); var _wrapNativeSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/wrapNativeSuper */ "../node_modules/@babel/runtime/helpers/wrapNativeSuper.js")); function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; } function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } /** * @typedef {import('../container')} Container */ var ChildrenArray = exports["default"] = /*#__PURE__*/function (_Array) { function ChildrenArray() { (0, _classCallCheck2.default)(this, ChildrenArray); return _callSuper(this, ChildrenArray, arguments); } (0, _inherits2.default)(ChildrenArray, _Array); return (0, _createClass2.default)(ChildrenArray, [{ key: "clear", value: function clear() { this.length = 0; } /** * Function findRecursive(). * * Will run over children recursively and pass the children to the callback till the callback returns positive value. * * @param {function(Container) : *} callback * * @return {Container|false} child */ }, { key: "findRecursive", value: function findRecursive(callback) { var _iterator = _createForOfIteratorHelper(this), _step; try { for (_iterator.s(); !(_step = _iterator.n()).done;) { var container = _step.value; if (callback(container)) { return container; } if (container.children.length) { var foundChildren = container.children.findRecursive(callback); if (foundChildren) { return foundChildren; } } } } catch (err) { _iterator.e(err); } finally { _iterator.f(); } return false; } /** * Function forEachRecursive(). * * Will run over children recursively. * * @param {function(Container) : *} callback * * @return {void} */ }, { key: "forEachRecursive", value: function forEachRecursive(callback) { var _iterator2 = _createForOfIteratorHelper(this), _step2; try { for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { var container = _step2.value; callback(container); if (container.children.length) { container.children.forEachRecursive(callback); } } } catch (err) { _iterator2.e(err); } finally { _iterator2.f(); } } /** * Function someRecursive(). * * Will run over children recursively, breaks if the callback return true. * * @param {function(Container) : *} callback */ }, { key: "someRecursive", value: function someRecursive(callback) { var _iterator3 = _createForOfIteratorHelper(this), _step3; try { for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) { var _container$children; var container = _step3.value; if (callback(container)) { return true; } if ((_container$children = container.children) !== null && _container$children !== void 0 && _container$children.length) { if (container.children.someRecursive(callback)) { return true; } } } } catch (err) { _iterator3.e(err); } finally { _iterator3.f(); } return false; } }]); }(/*#__PURE__*/(0, _wrapNativeSuper2.default)(Array)); /***/ }), /***/ "../assets/dev/js/editor/controls/base-data.js": /*!*****************************************************!*\ !*** ../assets/dev/js/editor/controls/base-data.js ***! \*****************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js")); var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js")); var _breakpoint = _interopRequireDefault(__webpack_require__(/*! elementor-validator/breakpoint */ "../assets/dev/js/editor/components/validator/breakpoint.js")); function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; } function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } var ControlBaseView = __webpack_require__(/*! elementor-controls/base */ "../assets/dev/js/editor/controls/base.js"), TagsBehavior = __webpack_require__(/*! elementor-dynamic-tags/control-behavior */ "../assets/dev/js/editor/components/dynamic-tags/control-behavior.js"), Validator = __webpack_require__(/*! elementor-validator/base */ "../assets/dev/js/editor/components/validator/base.js"), NumberValidator = __webpack_require__(/*! elementor-validator/number */ "../assets/dev/js/editor/components/validator/number.js"), ControlBaseDataView; ControlBaseDataView = ControlBaseView.extend({ validatorTypes: { Base: Validator, Number: NumberValidator, Breakpoint: _breakpoint.default }, ui: function ui() { var ui = ControlBaseView.prototype.ui.apply(this, arguments); _.extend(ui, { input: 'input[data-setting][type!="checkbox"][type!="radio"]', checkbox: 'input[data-setting][type="checkbox"]', radio: 'input[data-setting][type="radio"]', select: 'select[data-setting]', textarea: 'textarea[data-setting]', responsiveSwitchersSibling: "".concat(ui.controlTitle, "[data-e-responsive-switcher-sibling!=\"false\"]"), responsiveSwitchers: '.elementor-responsive-switcher', contentEditable: '[contenteditable="true"]' }); return ui; }, templateHelpers: function templateHelpers() { var controlData = ControlBaseView.prototype.templateHelpers.apply(this, arguments); controlData.data.controlValue = this.getControlValue(); return controlData; }, events: function events() { return { 'input @ui.input': 'onBaseInputTextChange', 'change @ui.checkbox': 'onBaseInputChange', 'change @ui.radio': 'onBaseInputChange', 'input @ui.textarea': 'onBaseInputTextChange', 'change @ui.select': 'onBaseInputChange', 'input @ui.contentEditable': 'onBaseInputTextChange', 'click @ui.responsiveSwitchers': 'onResponsiveSwitchersClick' }; }, behaviors: function behaviors() { var behaviors = ControlBaseView.prototype.behaviors.apply(this, arguments), dynamicSettings = this.options.model.get('dynamic'); if (dynamicSettings && dynamicSettings.active) { var tags = _.filter(elementor.dynamicTags.getConfig('tags'), function (tag) { return tag.editable && _.intersection(tag.categories, dynamicSettings.categories).length; }); if (tags.length || elementor.config.user.is_administrator) { behaviors.tags = { behaviorClass: TagsBehavior, tags: tags, dynamicSettings: dynamicSettings }; } } return behaviors; }, initialize: function initialize() { ControlBaseView.prototype.initialize.apply(this, arguments); this.registerValidators(); if (this.model.get('responsive')) { this.setPlaceholderFromParent(); } if (undefined === this.model.get('inherit_placeholders')) { this.model.set('inherit_placeholders', true); } // TODO: this.elementSettingsModel is deprecated since 2.8.0. var settings = this.container ? this.container.settings : this.elementSettingsModel; this.listenTo(settings, 'change:external:' + this.model.get('name'), this.onAfterExternalChange); }, getControlValue: function getControlValue() { return this.container.settings.get(this.model.get('name')); }, getGlobalKey: function getGlobalKey() { return this.container.globals.get(this.model.get('name')); }, getGlobalValue: function getGlobalValue() { return this.globalValue; }, getGlobalDefault: function getGlobalDefault() { var controlGlobalArgs = this.model.get('global'); if (controlGlobalArgs !== null && controlGlobalArgs !== void 0 && controlGlobalArgs.default) { // If the control is a color/typography control and default colors/typography are disabled, don't return the global value. if (!elementor.config.globals.defaults_enabled[this.getGlobalMeta().controlType]) { return ''; } var _$e$data$commandExtra = $e.data.commandExtractArgs(controlGlobalArgs.default), command = _$e$data$commandExtra.command, args = _$e$data$commandExtra.args, result = $e.data.getCache($e.components.get('globals'), command, args.query); return result === null || result === void 0 ? void 0 : result.value; } // No global default. return ''; }, getCurrentValue: function getCurrentValue() { if (this.getGlobalKey() && !this.globalValue) { return ''; } if (this.globalValue) { return this.globalValue; } var controlValue = this.getControlValue(); if (controlValue) { return controlValue; } return this.getGlobalDefault(); }, isGlobalActive: function isGlobalActive() { var _this$options$model$g; return (_this$options$model$g = this.options.model.get('global')) === null || _this$options$model$g === void 0 ? void 0 : _this$options$model$g.active; }, setValue: function setValue(value) { this.setSettingsModel(value); }, setSettingsModel: function setSettingsModel(value) { var key = this.model.get('name'); $e.run('document/elements/settings', { container: this.options.container, settings: (0, _defineProperty2.default)({}, key, value) }); this.triggerMethod('settings:change'); }, applySavedValue: function applySavedValue() { this.setInputValue('[data-setting="' + this.model.get('name') + '"]', this.getControlValue()); }, getEditSettings: function getEditSettings(setting) { var settings = this.getOption('elementEditSettings').toJSON(); if (setting) { return settings[setting]; } return settings; }, setEditSetting: function setEditSetting(settingKey, settingValue) { var settings = this.getOption('elementEditSettings') || this.getOption('container').settings; settings.set(settingKey, settingValue); }, /** * Get the placeholder for the current control. * * @return {*} placeholder */ getControlPlaceholder: function getControlPlaceholder() { var placeholder = this.model.get('placeholder'); if (this.model.get('responsive') && this.model.get('inherit_placeholders')) { placeholder = placeholder || this.container.placeholders[this.model.get('name')]; } return placeholder; }, /** * Get the responsive parent view if exists. * * @return {ControlBaseDataView|undefined} responsive parent view if exists */ getResponsiveParentView: function getResponsiveParentView() { var parent = this.model.get('parent'); try { return parent && this.container.panel.getControlView(parent); // eslint-disable-next-line no-empty } catch (e) {} }, /** * Get the responsive children views if exists. * * @return {ControlBaseDataView|null} responsive children views if exists */ getResponsiveChildrenViews: function getResponsiveChildrenViews() { var children = this.model.get('inheritors'), views = []; try { var _iterator = _createForOfIteratorHelper(children), _step; try { for (_iterator.s(); !(_step = _iterator.n()).done;) { var child = _step.value; views.push(this.container.panel.getControlView(child)); } // eslint-disable-next-line no-empty } catch (err) { _iterator.e(err); } finally { _iterator.f(); } } catch (e) {} return views; }, /** * Get prepared placeholder from the responsive parent, and put it into current * control model as placeholder. */ setPlaceholderFromParent: function setPlaceholderFromParent() { var parent = this.getResponsiveParentView(); if (parent) { this.container.placeholders[this.model.get('name')] = parent.preparePlaceholderForChildren(); } }, /** * Returns the value of the current control if exists, or the parent value if not, * so responsive children can set it as their placeholder. When there are multiple * inputs, the inputs which are empty on this control will inherit their values * from the responsive parent. * For example, if on desktop the padding of all edges is 10, and on tablet only * padding right and left is set to 15, the mobile control placeholder will * eventually be: { top: 10, right: 15, left: 15, bottom: 10 }, because of the * inheritance of multiple values. * * @return {*} value of the current control if exists, or the parent value if not */ preparePlaceholderForChildren: function preparePlaceholderForChildren() { var _this$getResponsivePa; var cleanValue = this.getCleanControlValue(), parentValue = (_this$getResponsivePa = this.getResponsiveParentView()) === null || _this$getResponsivePa === void 0 ? void 0 : _this$getResponsivePa.preparePlaceholderForChildren(); if (cleanValue instanceof Object) { return Object.assign({}, parentValue, cleanValue); } return cleanValue || parentValue; }, /** * Start the re-rendering recursive chain from the responsive child of this * control. It's useful when the current control value is changed and we want * to update all responsive children. In this case, the re-rendering is supposed * to be applied only from the responsive child of this control and on. */ propagatePlaceholder: function propagatePlaceholder() { var children = this.getResponsiveChildrenViews(); var _iterator2 = _createForOfIteratorHelper(children), _step2; try { for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { var child = _step2.value; child.renderWithChildren(); } } catch (err) { _iterator2.e(err); } finally { _iterator2.f(); } }, /** * Re-render current control and trigger this method on the responsive child. * The purpose of those actions is to recursively re-render all responsive * children. */ renderWithChildren: function renderWithChildren() { this.render(); this.propagatePlaceholder(); }, /** * Get control value without empty properties, and without default values. * * @return {{}} control value without empty properties, and without default values */ getCleanControlValue: function getCleanControlValue() { var value = this.getControlValue(); return value && value !== this.model.get('default') ? value : undefined; }, onAfterChange: function onAfterChange(control) { if (Object.keys(control.changed).includes(this.model.get('name'))) { this.propagatePlaceholder(); } ControlBaseView.prototype.onAfterChange.apply(this, arguments); }, getInputValue: function getInputValue(input) { var $input = this.$(input); if ($input.is('[contenteditable="true"]')) { return $input.html(); } var inputValue = $input.val(), inputType = $input.attr('type'); if (-1 !== ['radio', 'checkbox'].indexOf(inputType)) { return $input.prop('checked') ? inputValue : ''; } if ('number' === inputType && _.isFinite(inputValue)) { return +inputValue; } // Temp fix for jQuery (< 3.0) that return null instead of empty array if ('SELECT' === input.tagName && $input.prop('multiple') && null === inputValue) { inputValue = []; } return inputValue; }, setInputValue: function setInputValue(input, value) { var $input = this.$(input), inputType = $input.attr('type'); if ('checkbox' === inputType) { $input.prop('checked', !!value); } else if ('radio' === inputType) { $input.filter('[value="' + value + '"]').prop('checked', true); } else { $input.val(value); } }, addValidator: function addValidator(validator) { this.validators.push(validator); }, registerValidators: function registerValidators() { var _this = this; this.validators = []; var validationTerms = {}; if (this.model.get('required')) { validationTerms.required = true; } if (!jQuery.isEmptyObject(validationTerms)) { this.addValidator(new this.validatorTypes.Base({ validationTerms: validationTerms })); } var validators = this.model.get('validators'); if (validators) { Object.entries(validators).forEach(function (_ref) { var _ref2 = (0, _slicedToArray2.default)(_ref, 2), key = _ref2[0], args = _ref2[1]; _this.addValidator(new _this.validatorTypes[key]({ validationTerms: args })); }); } }, onBeforeRender: function onBeforeRender() { this.setPlaceholderFromParent(); }, onRender: function onRender() { ControlBaseView.prototype.onRender.apply(this, arguments); if (this.model.get('responsive')) { this.renderResponsiveSwitchers(); } this.applySavedValue(); this.triggerMethod('ready'); this.toggleControlVisibility(); this.addTooltip(); }, onBaseInputTextChange: function onBaseInputTextChange(event) { this.onBaseInputChange(event); }, onBaseInputChange: function onBaseInputChange(event) { clearTimeout(this.correctionTimeout); var input = event.currentTarget, value = this.getInputValue(input), validators = this.validators.slice(0), settingsValidators = this.container.settings.validators[this.model.get('name')]; if (settingsValidators) { validators = validators.concat(settingsValidators); } if (validators) { var oldValue = this.getControlValue(input.dataset.setting); var isValidValue = validators.every(function (validator) { return validator.isValid(value, oldValue); }); if (!isValidValue) { this.correctionTimeout = setTimeout(this.setInputValue.bind(this, input, oldValue), 1200); return; } } this.updateElementModel(value, input); this.triggerMethod('input:change', event); }, onResponsiveSwitchersClick: function onResponsiveSwitchersClick(event) { var $switcher = jQuery(event.currentTarget), device = $switcher.data('device'), $switchersWrapper = this.ui.responsiveSwitchersWrapper, selectedOption = $switcher.index(); $switchersWrapper.toggleClass('elementor-responsive-switchers-open'); $switchersWrapper[0].style.setProperty('--selected-option', selectedOption); this.triggerMethod('responsive:switcher:click', device); elementor.changeDeviceMode(device); }, renderResponsiveSwitchers: function renderResponsiveSwitchers() { var templateHtml = Marionette.Renderer.render('#tmpl-elementor-control-responsive-switchers', this.model.attributes); this.ui.responsiveSwitchersSibling.after(templateHtml); this.ui.responsiveSwitchersWrapper = this.$el.find('.elementor-control-responsive-switchers'); }, onAfterExternalChange: function onAfterExternalChange() { this.hideTooltip(); this.applySavedValue(); }, addTooltip: function addTooltip() { this.ui.tooltipTargets = this.$el.find('.tooltip-target'); if (!this.ui.tooltipTargets.length) { return; } // Create tooltip on controls this.ui.tooltipTargets.tipsy({ gravity: function gravity() { // `n` for down, `s` for up var gravity = jQuery(this).data('tooltip-pos'); if (undefined !== gravity) { return gravity; } return 's'; }, title: function title() { return this.getAttribute('data-tooltip'); } }); }, hideTooltip: function hideTooltip() { if (this.ui.tooltipTargets.length) { this.ui.tooltipTargets.tipsy('hide'); } }, updateElementModel: function updateElementModel(value) { this.setValue(value); } }, { // Static methods getStyleValue: function getStyleValue(placeholder, controlValue, controlData) { if ('DEFAULT' === placeholder) { return controlData.default; } return controlValue; }, onPasteStyle: function onPasteStyle() { return true; } }); module.exports = ControlBaseDataView; /***/ }), /***/ "../assets/dev/js/editor/controls/base-multiple.js": /*!*********************************************************!*\ !*** ../assets/dev/js/editor/controls/base-multiple.js ***! \*********************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); var _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js")); var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js")); var ControlBaseDataView = __webpack_require__(/*! elementor-controls/base-data */ "../assets/dev/js/editor/controls/base-data.js"), ControlBaseMultipleItemView; ControlBaseMultipleItemView = ControlBaseDataView.extend({ applySavedValue: function applySavedValue() { var values = this.getControlValue(), $inputs = this.$('[data-setting]'), self = this; _.each(values, function (value, key) { var $input = $inputs.filter(function () { return key === this.dataset.setting; }); self.setInputValue($input, value); }); }, getControlValue: function getControlValue(key) { var values = this.container.settings.get(this.model.get('name')); if (!jQuery.isPlainObject(values)) { return {}; } if (key) { var value = values[key]; if (undefined === value) { value = ''; } return value; } return elementorCommon.helpers.cloneObject(values); }, /** * @inheritDoc */ getCleanControlValue: function getCleanControlValue(key) { var _this = this; var values = Object.fromEntries(Object.entries(this.getControlValue()).filter(function (_ref) { var _ref2 = (0, _slicedToArray2.default)(_ref, 2), k = _ref2[0], v = _ref2[1]; return v && _this.model.get('default')[k] !== v; })); if (key) { return values === null || values === void 0 ? void 0 : values[key]; } return Object.keys(values).length ? values : undefined; }, setValue: function setValue(key, value) { var values = this.getControlValue(); if ('object' === (0, _typeof2.default)(key)) { _.each(key, function (internalValue, internalKey) { values[internalKey] = internalValue; }); } else { values[key] = value; } this.setSettingsModel(values); }, updateElementModel: function updateElementModel(value, input) { var key = input.dataset.setting; this.setValue(key, value); } }, { // Static methods getStyleValue: function getStyleValue(placeholder, controlValue) { if (!_.isObject(controlValue)) { return ''; // Invalid } return controlValue[placeholder.toLowerCase()]; } }); module.exports = ControlBaseMultipleItemView; /***/ }), /***/ "../assets/dev/js/editor/controls/base-units.js": /*!******************************************************!*\ !*** ../assets/dev/js/editor/controls/base-units.js ***! \******************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; } function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } var ControlBaseMultipleItemView = __webpack_require__(/*! elementor-controls/base-multiple */ "../assets/dev/js/editor/controls/base-multiple.js"), ControlBaseUnitsItemView; ControlBaseUnitsItemView = ControlBaseMultipleItemView.extend({ ui: function ui() { return Object.assign(ControlBaseMultipleItemView.prototype.ui.apply(this, arguments), { units: '.e-units-choices>input', unitSwitcher: '.e-units-switcher', unitChoices: '.e-units-choices' }); }, events: function events() { return Object.assign(ControlBaseMultipleItemView.prototype.events.apply(this, arguments), { 'change @ui.units': 'onUnitChange', 'click @ui.units': 'onUnitClick', 'click @ui.unitSwitcher': 'onUnitLabelClick' }); }, updatePlaceholder: function updatePlaceholder() { var _this$getControlPlace; var placeholder = (_this$getControlPlace = this.getControlPlaceholder()) === null || _this$getControlPlace === void 0 ? void 0 : _this$getControlPlace.unit; this.ui.units.removeClass('e-units-placeholder'); var currentUnitSelected = this.getControlValue('unit'); if (placeholder !== currentUnitSelected) { this.ui.units.filter("[value=\"".concat(placeholder, "\"]")).addClass('e-units-placeholder'); } }, recursiveUnitChange: function recursiveUnitChange() { var includingSelf = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; var parent = this.getResponsiveParentView(); if (parent && includingSelf) { var unit = parent.getControlValue('unit'), values = Object.keys(this.getCleanControlValue() || {}); // Remove `unit` from values, so only control values are indicated. values.splice(values.indexOf('unit'), 1); // Only set the unit when no control values are already specified. if (unit && !values.length) { this.setValue('unit', unit); this.render(); } } var _iterator = _createForOfIteratorHelper(this.getResponsiveChildrenViews()), _step; try { for (_iterator.s(); !(_step = _iterator.n()).done;) { var child = _step.value; child.recursiveUnitChange(); } } catch (err) { _iterator.e(err); } finally { _iterator.f(); } }, onRender: function onRender() { ControlBaseMultipleItemView.prototype.onRender.apply(this, arguments); this.updatePlaceholder(); this.updateUnitChoices(); }, onUnitChange: function onUnitChange() { this.toggleUnitChoices(false); this.recursiveUnitChange(false); this.updatePlaceholder(); this.updateUnitChoices(); }, toggleUnitChoices: function toggleUnitChoices(stateVal) { this.ui.unitChoices.toggleClass('e-units-choices-open', stateVal); }, updateUnitChoices: function updateUnitChoices() { var unit = this.getControlValue('unit'); this.ui.unitSwitcher.attr('data-selected', unit).find('span').html(unit); this.$el.toggleClass('e-units-custom', this.isCustomUnit()); }, onUnitClick: function onUnitClick() { this.toggleUnitChoices(false); }, onUnitLabelClick: function onUnitLabelClick(event) { event.preventDefault(); this.toggleUnitChoices(); }, getCurrentRange: function getCurrentRange() { return this.getUnitRange(this.getControlValue('unit')); }, getUnitRange: function getUnitRange(unit) { var ranges = this.model.get('range'); if (!ranges) { return false; } if (!ranges[unit]) { ranges[unit] = Object.values(ranges)[0]; } return ranges[unit]; }, isCustomUnit: function isCustomUnit() { return 'custom' === this.getControlValue('unit'); } }, { // Static methods getStyleValue: function getStyleValue(placeholder, controlValue) { var returnValue = ControlBaseMultipleItemView.getStyleValue(placeholder, controlValue); if ('UNIT' === placeholder && 'custom' === returnValue) { returnValue = '__EMPTY__'; } return returnValue; } }); module.exports = ControlBaseUnitsItemView; /***/ }), /***/ "../assets/dev/js/editor/controls/base.js": /*!************************************************!*\ !*** ../assets/dev/js/editor/controls/base.js ***! \************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js")); function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } var ControlBaseView; ControlBaseView = Marionette.CompositeView.extend({ ui: function ui() { return { controlTitle: '.elementor-control-title' }; }, behaviors: function behaviors() { var behaviors = {}; return elementor.hooks.applyFilters('controls/base/behaviors', behaviors, this); }, getBehavior: function getBehavior(name) { return this._behaviors[Object.keys(this.behaviors()).indexOf(name)]; }, className: function className() { // TODO: Any better classes for that? var classes = 'elementor-control elementor-control-' + this.model.get('name') + ' elementor-control-type-' + this.model.get('type'), modelClasses = this.model.get('classes'), responsive = this.model.get('responsive'); if (!_.isEmpty(modelClasses)) { classes += ' ' + modelClasses; } if (!_.isEmpty(responsive)) { var responsiveControlName = responsive.max || responsive.min; classes += ' elementor-control-responsive-' + responsiveControlName; } return classes; }, templateHelpers: function templateHelpers() { var controlData = { _cid: this.model.cid }; return { view: this, data: _.extend({}, this.model.toJSON(), controlData) }; }, getTemplate: function getTemplate() { return Marionette.TemplateCache.get('#tmpl-elementor-control-' + this.model.get('type') + '-content'); }, initialize: function initialize(options) { var label = this.model.get('label'); // TODO: Temp backwards compatibility. since 2.8.0. Object.defineProperty(this, 'container', { get: function get() { if (!options.container) { var settingsModel = options.elementSettingsModel, view = $e.components.get('document').utils.findViewById(settingsModel.id); // Element control. if (view && view.getContainer) { options.container = view.getContainer(); } else { if (!settingsModel.id) { settingsModel.id = 'bc-' + elementorCommon.helpers.getUniqueId(); } // Document/General/Other control. options.container = new elementorModules.editor.Container({ type: 'bc-container', id: settingsModel.id, model: settingsModel, settings: settingsModel, label: label, view: false, parent: false, renderer: false, controls: settingsModel.options.controls }); } } return options.container; } }); // Use `defineProperty` because `get elementSettingsModel()` fails during the `Marionette.CompositeView.extend`. Object.defineProperty(this, 'elementSettingsModel', { get: function get() { elementorDevTools.deprecation.deprecated('elementSettingsModel', '2.8.0', 'container.settings'); return options.container ? options.container.settings : options.elementSettingsModel; } }); var controlType = this.model.get('type'), controlSettings = jQuery.extend(true, {}, elementor.config.controls[controlType], this.model.attributes); this.model.set(controlSettings); // TODO: this.elementSettingsModel is deprecated since 2.8.0. var settings = this.container ? this.container.settings : this.elementSettingsModel; this.listenTo(settings, 'change', this.onAfterChange); if (this.model.attributes.responsive) { this.onDeviceModeChange = this.onDeviceModeChange.bind(this); elementor.listenTo(elementor.channels.deviceMode, 'change', this.onDeviceModeChange); } }, onDestroy: function onDestroy() { elementor.stopListening(elementor.channels.deviceMode, 'change', this.onDeviceModeChange); }, onDeviceModeChange: function onDeviceModeChange() { this.toggleControlVisibility(); }, onAfterChange: function onAfterChange() { this.toggleControlVisibility(); }, toggleControlVisibility: function toggleControlVisibility() { // TODO: this.elementSettingsModel is deprecated since 2.8.0. var settings = this.container ? this.container.settings : this.elementSettingsModel; var isVisible = elementor.helpers.isActiveControl(this.model, settings.attributes, settings.controls); this.$el.toggleClass('elementor-hidden-control', !isVisible); elementor.getPanelView().updateScrollbar(); }, onRender: function onRender() { var layoutType = this.model.get('label_block') ? 'block' : 'inline', showLabel = this.model.get('show_label'), elClasses = 'elementor-label-' + layoutType; elClasses += ' elementor-control-separator-' + this.model.get('separator'); if (!showLabel) { elClasses += ' elementor-control-hidden-label'; } this.$el.addClass(elClasses); this.toggleControlVisibility(); }, reRoute: function reRoute(controlActive) { $e.route($e.routes.getCurrent('panel'), this.getControlInRouteArgs(controlActive ? this.getControlPath() : ''), { history: false }); }, getControlInRouteArgs: function getControlInRouteArgs(path) { return _objectSpread(_objectSpread({}, $e.routes.getCurrentArgs('panel')), {}, { activeControl: path }); }, getControlPath: function getControlPath() { var controlPath = this.model.get('name'), parent = this._parent; while (!parent.$el.hasClass('elementor-controls-stack')) { var parentName = parent.model.get('name') || parent.model.get('_id'); controlPath = parentName + '/' + controlPath; parent = parent._parent; } return controlPath; } }); module.exports = ControlBaseView; /***/ }), /***/ "../assets/dev/js/editor/controls/behaviors/scrubbing.js": /*!***************************************************************!*\ !*** ../assets/dev/js/editor/controls/behaviors/scrubbing.js ***! \***************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js")); var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js")); var _uiStates = __webpack_require__(/*! elementor-document/ui-states */ "../assets/dev/js/editor/document/ui-states/index.js"); function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } var SCRUB_REGULAR = 'UPDATE-VALUE'; var SCRUB_ENHANCED = 'UPDATE-VALUE-ENHANCED'; var SKIP_SCRUB = 'SKIP-UPDATE-VALUE'; var Scrubbing = exports["default"] = /*#__PURE__*/function (_Marionette$Behavior) { function Scrubbing() { var _this; (0, _classCallCheck2.default)(this, Scrubbing); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _callSuper(this, Scrubbing, [].concat(args)); (0, _defineProperty2.default)(_this, "checkIntentTimeout", null); (0, _defineProperty2.default)(_this, "skipperCount", 0); var userOptions = _this.getOption('scrubSettings') || {}; _this.scrubSettings = _objectSpread({ intentTime: 600, skipperSteps: 10, valueModifier: 1, enhancedNumber: 10, scrubbingActiveClass: 'e-scrubbing--active', scrubbingOverClass: 'e-scrubbing-over' }, userOptions); return _this; } (0, _inherits2.default)(Scrubbing, _Marionette$Behavior); return (0, _createClass2.default)(Scrubbing, [{ key: "ui", value: function ui() { return { input: 'input[type=number]', label: 'label[for^="elementor-control-"]' }; } }, { key: "events", value: function events() { return { 'mousedown @ui.input': 'onMouseDownInput', 'mousedown @ui.label': 'onMouseDownLabel', 'mouseenter @ui.label': 'onMouseEnterLabel', 'mouseleave @ui.label': 'onMouseLeaveLabel' }; } }, { key: "scrub", value: function scrub(input, movementEvent) { var movementType = this.getMovementType(movementEvent); if (SKIP_SCRUB === movementType) { return; } switch (movementType) { case SCRUB_REGULAR: input.value = this.getModifiedValue({ value: input.value, change: movementEvent.movementX, modifier: this.scrubSettings.valueModifier }); break; case SCRUB_ENHANCED: input.value = this.getModifiedValue({ value: input.value, change: movementEvent.movementX, modifier: this.scrubSettings.enhancedNumber }); break; default: break; } // Fire an input event so other behaviors/validators can handle the new input input.dispatchEvent(new Event('input', { bubbles: true })); } }, { key: "getMovementType", value: function getMovementType(movementEvent) { if (movementEvent.altKey) { this.skipperCount++; // When ALT key is pressed, skipping x times before updating input value. // 'skipperSteps' defines the exact times to skip, can be changed to any number. if (this.skipperCount <= this.scrubSettings.skipperSteps) { return SKIP_SCRUB; } this.skipperCount = 0; return SCRUB_REGULAR; } return movementEvent.ctrlKey || movementEvent.metaKey ? SCRUB_ENHANCED : SCRUB_REGULAR; } }, { key: "getModifiedValue", value: function getModifiedValue(_ref) { var value = _ref.value, change = _ref.change, modifier = _ref.modifier; if ('function' === typeof modifier) { modifier = modifier(); } var newValue = +value + change * modifier; // Prevent cases where the value resolves to something like 1.0000000000000001. return parseFloat(newValue.toFixed(1)); } }, { key: "isInputValidForScrubbing", value: function isInputValidForScrubbing(input) { return input && !input.disabled && 'number' === input.type; } /** * @param {HTMLElement[]} elements */ }, { key: "setActive", value: function setActive(elements) { var _this2 = this; elements.forEach(function (element) { element.classList.add(_this2.scrubSettings.scrubbingActiveClass); }); } /** * @param {HTMLElement[]} elements */ }, { key: "setInactive", value: function setInactive(elements) { var _this3 = this; elements.forEach(function (element) { element.classList.remove(_this3.scrubSettings.scrubbingActiveClass); }); } }, { key: "onMouseDownInput", value: function onMouseDownInput(e) { var _this4 = this; var input = e.target; if (!this.isInputValidForScrubbing(input)) { return; } var trackMovement = function trackMovement(movementEvent) { _this4.scrub(input, movementEvent); }; // For input, scrubbing effect works only after X time the mouse is down. var checkIntentTimeout = setTimeout(function () { clearTimeout(checkIntentTimeout); document.addEventListener('mousemove', trackMovement); $e.uiStates.set('document/scrubbing-mode', _uiStates.ScrubbingMode.ON); _this4.setActive([input]); }, this.scrubSettings.intentTime); document.addEventListener('mouseup', function () { document.removeEventListener('mousemove', trackMovement); clearTimeout(checkIntentTimeout); $e.uiStates.remove('document/scrubbing-mode'); _this4.setInactive([input]); }, { once: true }); } }, { key: "onMouseDownLabel", value: function onMouseDownLabel(e) { var _this5 = this; var label = e.target; var input = e.target.control; if (!this.isInputValidForScrubbing(input)) { return; } $e.uiStates.set('document/scrubbing-mode', _uiStates.ScrubbingMode.ON); this.setActive([input, label]); var trackMovement = function trackMovement(movementEvent) { _this5.scrub(input, movementEvent); }; document.addEventListener('mousemove', trackMovement); document.addEventListener('mouseup', function () { document.removeEventListener('mousemove', trackMovement); $e.uiStates.remove('document/scrubbing-mode'); _this5.setInactive([input, label]); }, { once: true }); } }, { key: "onMouseEnterLabel", value: function onMouseEnterLabel(e) { var input = e.target.control; if (!this.isInputValidForScrubbing(input)) { return; } e.target.classList.add(this.scrubSettings.scrubbingOverClass); } }, { key: "onMouseLeaveLabel", value: function onMouseLeaveLabel(e) { var input = e.target.control; if (!this.isInputValidForScrubbing(input)) { return; } e.target.classList.remove(this.scrubSettings.scrubbingOverClass); } }]); }(Marionette.Behavior); /***/ }), /***/ "../assets/dev/js/editor/controls/box-shadow.js": /*!******************************************************!*\ !*** ../assets/dev/js/editor/controls/box-shadow.js ***! \******************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); var _colorPicker = _interopRequireDefault(__webpack_require__(/*! ../utils/color-picker */ "../assets/dev/js/editor/utils/color-picker.js")); var ControlMultipleBaseItemView = __webpack_require__(/*! elementor-controls/base-multiple */ "../assets/dev/js/editor/controls/base-multiple.js"), ControlBoxShadowItemView; ControlBoxShadowItemView = ControlMultipleBaseItemView.extend({ ui: function ui() { var ui = ControlMultipleBaseItemView.prototype.ui.apply(this, arguments); ui.sliders = '.elementor-slider'; ui.colorPickerPlaceholder = '.elementor-color-picker-placeholder'; return ui; }, initSliders: function initSliders() { var _this = this; var value = this.getControlValue(); this.ui.sliders.each(function (index, slider) { var $input = jQuery(slider).next('.elementor-slider-input').find('input'); var sliderInstance = noUiSlider.create(slider, { start: [value[slider.dataset.input]], step: 1, range: { min: +$input.attr('min'), max: +$input.attr('max') }, format: { to: function to(sliderValue) { return +sliderValue.toFixed(1); }, from: function from(sliderValue) { return +sliderValue; } } }); sliderInstance.on('slide', function (values) { var type = sliderInstance.target.dataset.input; $input.val(values[0]); _this.setValue(type, values[0]); }); }); }, initColors: function initColors() { var _this2 = this; this.colorPicker = new _colorPicker.default({ picker: { el: this.ui.colorPickerPlaceholder[0], default: this.getControlValue('color') }, onChange: function onChange() { _this2.setValue('color', _this2.colorPicker.getColor()); }, onClear: function onClear() { _this2.setValue('color', ''); } }); }, onInputChange: function onInputChange(event) { var type = event.currentTarget.dataset.setting, $slider = this.ui.sliders.filter('[data-input="' + type + '"]'); $slider[0].noUiSlider.set(this.getControlValue(type)); }, onReady: function onReady() { this.initSliders(); this.initColors(); }, onBeforeDestroy: function onBeforeDestroy() { this.colorPicker.destroy(); } }); module.exports = ControlBoxShadowItemView; /***/ }), /***/ "../assets/dev/js/editor/controls/button.js": /*!**************************************************!*\ !*** ../assets/dev/js/editor/controls/button.js ***! \**************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var ControlBaseView = __webpack_require__(/*! elementor-controls/base */ "../assets/dev/js/editor/controls/base.js"); module.exports = ControlBaseView.extend({ ui: function ui() { var ui = ControlBaseView.prototype.ui.apply(this, arguments); ui.button = 'button'; return ui; }, events: { 'click @ui.button': 'onButtonClick' }, onButtonClick: function onButtonClick() { var eventName = this.model.get('event'); elementor.channels.editor.trigger(eventName, this); } }); /***/ }), /***/ "../assets/dev/js/editor/controls/choose.js": /*!**************************************************!*\ !*** ../assets/dev/js/editor/controls/choose.js ***! \**************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var ControlBaseDataView = __webpack_require__(/*! elementor-controls/base-data */ "../assets/dev/js/editor/controls/base-data.js"), ControlChooseItemView; ControlChooseItemView = ControlBaseDataView.extend({ ui: function ui() { var ui = ControlBaseDataView.prototype.ui.apply(this, arguments); ui.inputs = '[type="radio"]'; return ui; }, events: function events() { return _.extend(ControlBaseDataView.prototype.events.apply(this, arguments), { 'mousedown label': 'onMouseDownLabel', 'click @ui.inputs': 'onClickInput', 'change @ui.inputs': 'onBaseInputChange' }); }, updatePlaceholder: function updatePlaceholder() { var placeholder = this.getControlPlaceholder(); if (!this.getControlValue() && placeholder) { // Find the input which has value equals to the placeholder (which is the parent's value), // and add it a placeholder class, to indicate which value is selected in the parent. this.ui.inputs.filter("[value=\"".concat(this.getControlPlaceholder(), "\"]")).addClass('e-choose-placeholder'); } else { this.ui.inputs.removeClass('e-choose-placeholder'); } }, onReady: function onReady() { this.updatePlaceholder(); }, applySavedValue: function applySavedValue() { var currentValue = this.getControlValue(); if (currentValue) { this.ui.inputs.filter('[value="' + currentValue + '"]').prop('checked', true); } else { this.ui.inputs.filter(':checked').prop('checked', false); } }, onMouseDownLabel: function onMouseDownLabel(event) { var $clickedLabel = this.$(event.currentTarget), $selectedInput = this.$('#' + $clickedLabel.attr('for')); $selectedInput.data('checked', $selectedInput.prop('checked')); }, onClickInput: function onClickInput(event) { if (!this.model.get('toggle')) { return; } var $selectedInput = this.$(event.currentTarget); if ($selectedInput.data('checked')) { $selectedInput.prop('checked', false).trigger('change'); } }, onBaseInputChange: function onBaseInputChange() { ControlBaseDataView.prototype.onBaseInputChange.apply(this, arguments); this.updatePlaceholder(); } }, { onPasteStyle: function onPasteStyle(control, clipboardValue) { return '' === clipboardValue || undefined !== control.options[clipboardValue]; } }); module.exports = ControlChooseItemView; /***/ }), /***/ "../assets/dev/js/editor/controls/code.js": /*!************************************************!*\ !*** ../assets/dev/js/editor/controls/code.js ***! \************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var ControlBaseDataView = __webpack_require__(/*! elementor-controls/base-data */ "../assets/dev/js/editor/controls/base-data.js"), ControlCodeEditorItemView; ControlCodeEditorItemView = ControlBaseDataView.extend({ ui: function ui() { var ui = ControlBaseDataView.prototype.ui.apply(this, arguments); ui.editor = '.elementor-code-editor'; return ui; }, onReady: function onReady() { var self = this; if ('undefined' === typeof ace) { return; } var langTools = ace.require('ace/ext/language_tools'), uiTheme = elementor.settings.editorPreferences.model.get('ui_theme'), userPrefersDark = matchMedia('(prefers-color-scheme: dark)').matches; self.editor = ace.edit(this.ui.editor[0]); // Since the code control is wrapped with a dynamic div, the class elementor-control-tag-area need to be had dynamically to handle the dynamic tag functionality. jQuery(self.editor.container).addClass('e-input-style elementor-code-editor elementor-control-tag-area'); self.editor.setOptions({ mode: 'ace/mode/' + self.model.attributes.language, minLines: 10, maxLines: Infinity, showGutter: true, useWorker: true, enableBasicAutocompletion: true, enableLiveAutocompletion: true }); if ('dark' === uiTheme || 'auto' === uiTheme && userPrefersDark) { self.editor.setTheme('ace/theme/merbivore_soft'); } self.editor.getSession().setUseWrapMode(true); elementor.panel.$el.on('resize.aceEditor', self.onResize.bind(this)); if ('css' === self.model.attributes.language) { var selectorCompleter = { getCompletions: function getCompletions(editor, session, pos, prefix, callback) { var list = [], token = session.getTokenAt(pos.row, pos.column); if (0 < prefix.length && 'selector'.match(prefix) && 'constant' === token.type) { list = [{ name: 'selector', value: 'selector', score: 1, meta: 'Elementor' }]; } callback(null, list); } }; langTools.addCompleter(selectorCompleter); } self.editor.setValue(self.getControlValue(), -1); // -1 = move cursor to the start if (this.isEditable()) { self.editor.on('change', function () { self.setValue(self.editor.getValue()); }); } if ('html' === self.model.attributes.language) { // Remove the `doctype` annotation var session = self.editor.getSession(); session.on('changeAnnotation', function () { var annotations = session.getAnnotations() || [], annotationsLength = annotations.length, index = annotations.length; while (index--) { if (/doctype first\. Expected/.test(annotations[index].text)) { annotations.splice(index, 1); } } if (annotationsLength > annotations.length) { session.setAnnotations(annotations); } }); } }, onResize: function onResize() { this.editor.resize(); }, onDestroy: function onDestroy() { elementor.panel.$el.off('resize.aceEditor'); }, isEditable: function isEditable() { var isEditable = this.model.get('is_editable'); return undefined !== isEditable ? isEditable : true; } }); module.exports = ControlCodeEditorItemView; /***/ }), /***/ "../assets/dev/js/editor/controls/color.js": /*!*************************************************!*\ !*** ../assets/dev/js/editor/controls/color.js ***! \*************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"]; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js")); var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js")); var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.js")); var _readOnlyError2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/readOnlyError */ "../node_modules/@babel/runtime/helpers/readOnlyError.js")); var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "../node_modules/@babel/runtime/helpers/get.js")); var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js")); var _baseData = _interopRequireDefault(__webpack_require__(/*! ./base-data */ "../assets/dev/js/editor/controls/base-data.js")); var _colorPicker = _interopRequireDefault(__webpack_require__(/*! ../utils/color-picker */ "../assets/dev/js/editor/utils/color-picker.js")); function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } function _superPropGet(t, o, e, r) { var p = (0, _get2.default)((0, _getPrototypeOf2.default)(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } var _default = exports["default"] = /*#__PURE__*/function (_ControlBaseDataView) { function _default() { (0, _classCallCheck2.default)(this, _default); return _callSuper(this, _default, arguments); } (0, _inherits2.default)(_default, _ControlBaseDataView); return (0, _createClass2.default)(_default, [{ key: "ui", value: function ui() { var ui = _superPropGet(_default, "ui", this, 3)([]); ui.pickerContainer = '.elementor-color-picker-placeholder'; return ui; } }, { key: "applySavedValue", value: function applySavedValue() { // Gets the current OR default value of the control. var currentValue = this.getCurrentValue(); if (this.colorPicker) { // When there is a global set on the control but there is no value/it doesn't exist, don't show a value. if (currentValue) { var _this$colorPicker$pic; // Set the picker color without triggering the 'onChange' event. var parsedColor = this.colorPicker.picker._parseLocalColor(currentValue); (_this$colorPicker$pic = this.colorPicker.picker).setHSVA.apply(_this$colorPicker$pic, (0, _toConsumableArray2.default)(parsedColor.values).concat([false])); } else { this.colorPicker.picker._clearColor(true); } } else { this.initPicker(); } this.$el.toggleClass('e-control-color--no-value', !currentValue); } }, { key: "initPicker", value: function initPicker() { var _this$model$get, _this = this; var options = { picker: { el: this.ui.pickerContainer[0], default: this.getCurrentValue(), components: { opacity: this.model.get('alpha') }, defaultRepresentation: 'HEX' }, // Don't create the add button in the Global Settings color pickers. addButton: (_this$model$get = this.model.get('global')) === null || _this$model$get === void 0 ? void 0 : _this$model$get.active, onChange: function onChange() { return _this.onPickerChange(); }, onClear: function onClear() { return _this.onPickerClear(); }, onAddButtonClick: function onAddButtonClick() { return _this.onAddGlobalButtonClick(); }, onPickerShow: function onPickerShow() { return _this.reRoute(true); }, onPickerHide: function onPickerHide() { return _this.reRoute(false); } }; this.colorPicker = new _colorPicker.default(options); this.hidePickerOnPreviewClick(); this.$pickerButton = jQuery(this.colorPicker.picker.getRoot().button); this.addTipsyToPickerButton(); this.addEyedropper(); this.$pickerButton.on('click', function () { return _this.onPickerButtonClick(); }); jQuery(this.colorPicker.picker.getRoot().root).addClass('elementor-control-unit-1 elementor-control-tag-area'); } }, { key: "hidePickerOnPreviewClick", value: function hidePickerOnPreviewClick() { var picker = this.colorPicker.picker; var pickerUtils = picker.constructor.utils; // Adding to the eventBindings to unbind in the picker's destroy picker._eventBindings.push(pickerUtils.on(elementorFrontend.elements.window.document, ['touchstart', 'pointerdown'], function () { if (picker.isOpen()) { picker.hide(); } })); } }, { key: "addTipsyToPickerButton", value: function addTipsyToPickerButton() { var _this2 = this; this.$pickerButton.tipsy({ title: function title() { var currentValue = _this2.getCurrentValue(); // If there is a global enabled for the control, but the global has no value. if (_this2.getGlobalKey() && !currentValue) { currentValue = "".concat(__('Invalid Global Color', 'elementor')); } return currentValue || ''; }, offset: 4, gravity: function gravity() { return 's'; } }); } }, { key: "addEyedropper", value: function addEyedropper() { var _this3 = this; var $colorPicker = jQuery(Marionette.Renderer.render('#tmpl-elementor-control-element-color-picker')), $colorPickerToolsContainer = this.colorPicker.$pickerToolsContainer, container = this.getOption('container'); var kit = null; // When it's a kit (i.e "Site Settings"). if ('kit' === container.document.config.type) { kit = container.document; } // Add a tooltip to the Eye Dropper. $colorPicker.tipsy({ title: function title() { return __('Color Sampler', 'elementor'); }, gravity: 's' }); $colorPicker.on('click', function () { $e.run('elements-color-picker/start', { container: container, kit: kit, control: _this3.model.get('name'), trigger: $colorPicker[0] }); }); $colorPickerToolsContainer.append($colorPicker); } }, { key: "getGlobalMeta", value: function getGlobalMeta() { return { commandName: this.getGlobalCommand(), key: this.model.get('name'), controlType: 'colors', route: 'panel/global/global-colors' }; } }, { key: "getNameAlreadyExistsMessage", value: function getNameAlreadyExistsMessage() { return ' ' + __('Please note that the same exact color already exists in your Global Colors list. Are you sure you want to create it?', 'elementor'); } }, { key: "getConfirmTextMessage", value: function getConfirmTextMessage() { return __('Are you sure you want to create a new Global Color?', 'elementor'); } }, { key: "getAddGlobalConfirmMessage", value: function getAddGlobalConfirmMessage(globalColors) { var colorTitle = __('New Global Color', 'elementor'), currentValue = this.getCurrentValue(), $message = jQuery('
', { class: 'e-global__confirm-message' }), $messageText = jQuery('
', { class: 'e-global__confirm-message-text' }), $inputWrapper = jQuery('
', { class: 'e-global__confirm-input-wrapper' }), $colorPreview = this.createColorPreviewBox(currentValue), $input = jQuery('', { type: 'text', name: 'global-name', placeholder: colorTitle }).val(colorTitle); var messageContent; // Check if the color already exists in the global colors, and display an appropriate message. for (var _i = 0, _Object$values = Object.values(globalColors); _i < _Object$values.length; _i++) { var globalColor = _Object$values[_i]; if (currentValue === globalColor.value) { messageContent = this.getNameAlreadyExistsMessage(); break; } else if (colorTitle === globalColor.title) { messageContent = this.getConfirmTextMessage(); break; } else { messageContent = __('Are you sure you want to create a new Global Color?', 'elementor'); } } $messageText.html(messageContent); $inputWrapper.append($colorPreview, $input); $message.append($messageText, $inputWrapper); return $message; } }, { key: "getGlobalCommand", value: function getGlobalCommand() { return 'globals/colors'; } // The globalData parameter is received from the Data API. }, { key: "createGlobalItemMarkup", value: function createGlobalItemMarkup(globalData) { var $color = jQuery('
', { class: 'e-global__preview-item e-global__color', 'data-global-id': globalData.id }), $colorPreview = this.createColorPreviewBox(globalData.value), $colorTitle = jQuery('', { class: 'e-global__color-title' }).html(_.escape(globalData.title)), $colorHex = jQuery('', { class: 'e-global__color-hex' }).text(globalData.value); $color.append($colorPreview, $colorTitle, $colorHex); return $color; } }, { key: "createHeaderItemMarkup", value: function createHeaderItemMarkup(text) { return jQuery('
', { class: 'e-global__group-header' }).text(text); } }, { key: "createColorPreviewBox", value: function createColorPreviewBox(color) { var $colorPreviewContainer = jQuery('
', { class: 'e-global__color-preview-container' }), $colorPreviewColor = jQuery('
', { class: 'e-global__color-preview-color', style: 'background-color: ' + color }), $colorPreviewBg = jQuery('
', { class: 'e-global__color-preview-transparent-bg' }); $colorPreviewContainer.append($colorPreviewBg, $colorPreviewColor); return $colorPreviewContainer; } }, { key: "getGlobalsList", value: function () { var _getGlobalsList = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() { var result; return _regenerator.default.wrap(function (_context) { while (1) switch (_context.prev = _context.next) { case 0: _context.next = 1; return $e.data.get(this.getGlobalCommand()); case 1: result = _context.sent; return _context.abrupt("return", result.data); case 2: case "end": return _context.stop(); } }, _callee, this); })); function getGlobalsList() { return _getGlobalsList.apply(this, arguments); } return getGlobalsList; }() // Create the markup for the colors in the global select dropdown. }, { key: "buildGlobalsList", value: function buildGlobalsList(globalColors, $globalPreviewItemsContainer) { var _this4 = this; var v4Colors = []; var v3Colors = []; Object.values(globalColors).forEach(function (color) { if (!color.value) { return; } if ('v4' === color.group) { v4Colors.push(color); } else { v3Colors.push(color); } }); if (v4Colors.length) { $globalPreviewItemsContainer.append(this.createHeaderItemMarkup(__('Atomic Variables', 'elementor'))); v4Colors.forEach(function (color) { $globalPreviewItemsContainer.append(_this4.createGlobalItemMarkup(color)); }); $globalPreviewItemsContainer.append(this.createHeaderItemMarkup(__('Global Colors', 'elementor'))); } v3Colors.forEach(function (color) { $globalPreviewItemsContainer.append(_this4.createGlobalItemMarkup(color)); }); } }, { key: "onPickerChange", value: function onPickerChange() { this.setValue(this.colorPicker.picker.getColor().toHEXA().toString()); if (!this.isCustom) { this.triggerMethod('value:type:change'); this.colorPicker.toggleClearButtonState(true); if (this.$el.hasClass('e-control-color--no-value')) { this.$el.removeClass('e-control-color--no-value'); } this.isCustom = true; } } }, { key: "onPickerClear", value: function onPickerClear() { this.isCustom = false; // Empty the value saved in the control. this.setValue(''); // Adjust the Global select box text according to the cleared value. this.triggerMethod('value:type:change'); this.applySavedValue(); this.colorPicker.toggleClearButtonState(false); } }, { key: "onPickerButtonClick", value: function onPickerButtonClick() { if (this.getGlobalKey()) { this.triggerMethod('unset:global:value'); } else if (this.isGlobalActive() && !this.getControlValue() && this.getGlobalDefault()) { this.triggerMethod('unlink:global:default'); } // If there is a value in the control, set the clear button to active, if not, deactivate it. this.colorPicker.toggleClearButtonState(!!this.getCurrentValue()); } }, { key: "onAddGlobalButtonClick", value: function onAddGlobalButtonClick() { var _this5 = this; this.getGlobalsList().then(function (globalsList) { _this5.globalsList = globalsList; _this5.triggerMethod('add:global:to:list', _this5.getAddGlobalConfirmMessage(globalsList)); }); } }, { key: "activate", value: function activate() { this.colorPicker.picker.show(); } }, { key: "onBeforeDestroy", value: function onBeforeDestroy() { if (this.colorPicker) { this.colorPicker.destroy(); } } }]); }(_baseData.default); /***/ }), /***/ "../assets/dev/js/editor/controls/date-time.js": /*!*****************************************************!*\ !*** ../assets/dev/js/editor/controls/date-time.js ***! \*****************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "../node_modules/@babel/runtime/helpers/get.js")); var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js")); function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } function _superPropGet(t, o, e, r) { var p = (0, _get2.default)((0, _getPrototypeOf2.default)(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } var ControlBaseDataView = __webpack_require__(/*! elementor-controls/base-data */ "../assets/dev/js/editor/controls/base-data.js"); var _default = exports["default"] = /*#__PURE__*/function (_ControlBaseDataView) { function _default() { (0, _classCallCheck2.default)(this, _default); return _callSuper(this, _default, arguments); } (0, _inherits2.default)(_default, _ControlBaseDataView); return (0, _createClass2.default)(_default, [{ key: "onReady", value: function onReady() { var options = _.extend({ enableTime: true, minuteIncrement: 1 }, this.model.get('picker_options')); this.ui.input.flatpickr(options); } }, { key: "onBaseInputChange", value: function onBaseInputChange() { var _this$model$get; _superPropGet(_default, "onBaseInputChange", this, 3)(arguments); if ((_this$model$get = this.model.get('validation')) !== null && _this$model$get !== void 0 && _this$model$get.date_time) { this.validateDateTime(); } } }, { key: "validateDateTime", value: function validateDateTime() { var _this$model$get$date_ = this.model.get('validation').date_time, controlName = _this$model$get$date_.control_name, operator = _this$model$get$date_.operator; var startDate = this.options.container.settings.get(controlName); var endDate = this.ui.input.val(); if (!startDate || !endDate) { return; } var startDateTimestamp = new Date(startDate).getTime(); var endDateTimestamp = new Date(endDate).getTime(); if (elementor.conditions.compare(startDateTimestamp, endDateTimestamp, operator)) { this.ui.input.val(''); } } }, { key: "onBeforeDestroy", value: function onBeforeDestroy() { this.ui.input.flatpickr().destroy(); } }]); }(ControlBaseDataView); /***/ }), /***/ "../assets/dev/js/editor/controls/dimensions.js": /*!******************************************************!*\ !*** ../assets/dev/js/editor/controls/dimensions.js ***! \******************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js")); var _scrubbing = _interopRequireDefault(__webpack_require__(/*! ./behaviors/scrubbing */ "../assets/dev/js/editor/controls/behaviors/scrubbing.js")); function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } var ControlBaseUnitsItemView = __webpack_require__(/*! elementor-controls/base-units */ "../assets/dev/js/editor/controls/base-units.js"), ControlDimensionsItemView; ControlDimensionsItemView = ControlBaseUnitsItemView.extend({ behaviors: function behaviors() { var _this = this; return _objectSpread(_objectSpread({}, ControlBaseUnitsItemView.prototype.behaviors.apply(this)), {}, { Scrubbing: { behaviorClass: _scrubbing.default, scrubSettings: { intentTime: 800, valueModifier: function valueModifier() { var currentUnit = _this.getControlValue('unit'); return ['rem', 'em'].includes(currentUnit) ? 0.1 : 1; }, enhancedNumber: function enhancedNumber() { var currentUnit = _this.getControlValue('unit'); return ['rem', 'em'].includes(currentUnit) ? 0.5 : 10; } } } }); }, ui: function ui() { var ui = ControlBaseUnitsItemView.prototype.ui.apply(this, arguments); ui.controls = '.elementor-control-dimension > input:enabled'; ui.link = 'button.elementor-link-dimensions'; return ui; }, events: function events() { return _.extend(ControlBaseUnitsItemView.prototype.events.apply(this, arguments), { 'click @ui.link': 'onLinkDimensionsClicked' }); }, // Default value must be 0, because the CSS generator (in dimensions) expects the 4 dimensions to be filled together (or all are empty). defaultDimensionValue: 0, initialize: function initialize() { ControlBaseUnitsItemView.prototype.initialize.apply(this, arguments); // TODO: Need to be in helpers, and not in variable this.model.set('allowed_dimensions', this.filterDimensions(this.model.get('allowed_dimensions'))); }, getPossibleDimensions: function getPossibleDimensions() { return ['top', 'right', 'bottom', 'left']; }, filterDimensions: function filterDimensions(filter) { filter = filter || 'all'; var dimensions = this.getPossibleDimensions(); if ('all' === filter) { return dimensions; } if (!_.isArray(filter)) { if ('horizontal' === filter) { filter = ['right', 'left']; } else if ('vertical' === filter) { filter = ['top', 'bottom']; } } return filter; }, onReady: function onReady() { var self = this, currentValue = self.getControlValue(); if (!self.isLinkedDimensions()) { self.ui.link.addClass('unlinked'); self.ui.controls.each(function (index, element) { var value = currentValue[element.dataset.setting]; if (_.isEmpty(value)) { value = self.defaultDimensionValue; } self.$(element).val(value); }); } self.fillEmptyDimensions(); }, updateDimensionsValue: function updateDimensionsValue() { var currentValue = {}, dimensions = this.getPossibleDimensions(), $controls = this.ui.controls, defaultDimensionValue = this.defaultDimensionValue; dimensions.forEach(function (dimension) { var $element = $controls.filter('[data-setting="' + dimension + '"]'); currentValue[dimension] = $element.length ? $element.val() : defaultDimensionValue; }); this.setValue(currentValue); }, fillEmptyDimensions: function fillEmptyDimensions() { var $controls = this.ui.controls, defaultDimensionValue = this.defaultDimensionValue; if (this.isLinkedDimensions()) { return; } var allowedDimensions = this.model.get('allowed_dimensions'), dimensions = this.getPossibleDimensions(); dimensions.forEach(function (dimension) { var $element = $controls.filter('[data-setting="' + dimension + '"]'), isAllowedDimension = -1 !== _.indexOf(allowedDimensions, dimension); if (isAllowedDimension && $element.length && _.isEmpty($element.val())) { $element.val(defaultDimensionValue); } }); }, updateDimensions: function updateDimensions() { this.fillEmptyDimensions(); this.updateDimensionsValue(); }, resetDimensions: function resetDimensions() { this.ui.controls.val(''); this.updateDimensionsValue(); }, onInputChange: function onInputChange(event) { var _event$originalEvent; var inputSetting = event.target.dataset.setting; if ('unit' === inputSetting) { this.resetDimensions(); } if (!_.contains(this.getPossibleDimensions(), inputSetting)) { return; } // When using input with type="number" and the user starts typing `-`, the actual value (`event.target.value`) is // an empty string. Since the user probably has the intention to insert a negative value, the methods below will // not be triggered. This will prevent updating the input again with an empty string. var hasIntentionForNegativeNumber = '-' === (event === null || event === void 0 || (_event$originalEvent = event.originalEvent) === null || _event$originalEvent === void 0 ? void 0 : _event$originalEvent.data) && !event.target.value; if (hasIntentionForNegativeNumber) { return; } if (this.isLinkedDimensions()) { var $thisControl = this.$(event.target); this.ui.controls.val($thisControl.val()); } this.updateDimensions(); }, onLinkDimensionsClicked: function onLinkDimensionsClicked(event) { event.preventDefault(); event.stopPropagation(); this.ui.link.toggleClass('unlinked'); this.setValue('isLinked', !this.ui.link.hasClass('unlinked')); if (this.isLinkedDimensions()) { // Set all controls value from the first control. this.ui.controls.val(this.ui.controls.eq(0).val()); } this.updateDimensions(); }, isLinkedDimensions: function isLinkedDimensions() { return this.getControlValue('isLinked'); }, updateUnitChoices: function updateUnitChoices() { ControlBaseUnitsItemView.prototype.updateUnitChoices.apply(this, arguments); var inputType = 'number'; if (this.isCustomUnit()) { inputType = 'text'; } this.ui.controls.attr('type', inputType); } }); module.exports = ControlDimensionsItemView; /***/ }), /***/ "../assets/dev/js/editor/controls/font.js": /*!************************************************!*\ !*** ../assets/dev/js/editor/controls/font.js ***! \************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var ControlSelect2View = __webpack_require__(/*! elementor-controls/select2 */ "../assets/dev/js/editor/controls/select2.js"); module.exports = ControlSelect2View.extend({ $previewContainer: null, getSelect2Options: function getSelect2Options() { return { dir: elementorCommon.config.isRTL ? 'rtl' : 'ltr', templateSelection: this.fontPreviewTemplate, templateResult: this.fontPreviewTemplate }; }, onReady: function onReady() { var self = this; this.ui.select.select2(this.getSelect2Options()); this.ui.select.on('select2:open', function () { self.$previewContainer = jQuery('.select2-results__options[role="tree"]:visible'); // Load initial? setTimeout(function () { self.enqueueFontsInView(); }, 100); // On search jQuery('input.select2-search__field:visible').on('keyup', function () { self.typeStopDetection.action.apply(self); }); // On scroll self.$previewContainer.on('scroll', function () { self.scrollStopDetection.onScroll.apply(self); }); }); }, typeStopDetection: { idle: 350, timeOut: null, action: function action() { var parent = this, self = this.typeStopDetection; clearTimeout(self.timeOut); self.timeOut = setTimeout(function () { parent.enqueueFontsInView(); }, self.idle); } }, scrollStopDetection: { idle: 350, timeOut: null, onScroll: function onScroll() { var parent = this, self = this.scrollStopDetection; clearTimeout(self.timeOut); self.timeOut = setTimeout(function () { parent.enqueueFontsInView(); }, self.idle); } }, enqueueFontsInView: function enqueueFontsInView() { var containerOffset = this.$previewContainer.offset(), top = containerOffset.top, bottom = top + this.$previewContainer.innerHeight(), fontsInView = []; this.$previewContainer.children().find('li:visible').each(function (index, font) { var $font = jQuery(font), offset = $font.offset(); if (offset && offset.top > top && offset.top < bottom) { fontsInView.push($font); } }); fontsInView.forEach(function (font) { var fontFamily = jQuery(font).find('span').html(); elementor.helpers.enqueueFont(fontFamily, 'editor'); }); }, fontPreviewTemplate: function fontPreviewTemplate(state) { if (!state.id) { return state.text; } return jQuery('', { text: state.text, css: { 'font-family': state.element.value.toString() } }); }, templateHelpers: function templateHelpers() { var helpers = ControlSelect2View.prototype.templateHelpers.apply(this, arguments), fonts = this.model.get('options'); helpers.getFontsByGroups = function (groups) { var filteredFonts = {}; _.each(fonts, function (fontType, fontName) { if (_.isArray(groups) && _.contains(groups, fontType) || fontType === groups) { filteredFonts[fontName] = fontName; } }); return filteredFonts; }; return helpers; } }); /***/ }), /***/ "../assets/dev/js/editor/controls/gallery.js": /*!***************************************************!*\ !*** ../assets/dev/js/editor/controls/gallery.js ***! \***************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; /* provided dependency */ var sprintf = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["sprintf"]; /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"]; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js")); var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js")); var _filesUploadHandler = _interopRequireDefault(__webpack_require__(/*! ../utils/files-upload-handler */ "../assets/dev/js/editor/utils/files-upload-handler.js")); var ControlBaseDataView = __webpack_require__(/*! elementor-controls/base-data */ "../assets/dev/js/editor/controls/base-data.js"), ControlMediaItemView; ControlMediaItemView = ControlBaseDataView.extend({ ui: function ui() { var ui = ControlBaseDataView.prototype.ui.apply(this, arguments); ui.addImages = '.elementor-control-gallery-add'; ui.clearGallery = '.elementor-control-gallery-clear'; ui.galleryThumbnails = '.elementor-control-gallery-thumbnails'; ui.status = '.elementor-control-gallery-status-title'; // eslint-disable-next-line capitalized-comments // ui.warnings = '.elementor-control-media__warnings'; ui.promotions = '.elementor-control-media__promotions'; ui.promotions_dismiss = '.elementor-control-media__promotions .elementor-control-notice-dismiss'; ui.promotions_action = '.elementor-control-media__promotions .elementor-control-notice-main-actions button'; return ui; }, events: function events() { return _.extend(ControlBaseDataView.prototype.events.apply(this, arguments), { 'click @ui.addImages': 'onAddImagesClick', 'click @ui.clearGallery': 'onClearGalleryClick', 'click @ui.galleryThumbnails': 'onGalleryThumbnailsClick', 'click @ui.promotions_dismiss': 'onPromotionDismiss', 'click @ui.promotions_action': 'onPromotionAction', 'keyup @ui.galleryThumbnails': 'onGalleryThumbnailsKeyPress' }); }, onReady: function onReady() { this.initRemoveDialog(); }, applySavedValue: function applySavedValue() { var _this = this; return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() { var images, imagesCount, hasImages, imagesWithoutOptimization, promotionsAlwaysOn, hasPromotions, $galleryThumbnails, attachments; return _regenerator.default.wrap(function (_context) { while (1) switch (_context.prev = _context.next) { case 0: images = _this.getControlValue(), imagesCount = images.length, hasImages = !!imagesCount, imagesWithoutOptimization = 0, promotionsAlwaysOn = false; hasPromotions = _this.ui.promotions.length && !elementor.config.user.dismissed_editor_notices.includes(_this.getDismissPromotionEventName()); _this.$el.toggleClass('elementor-gallery-has-images', hasImages).toggleClass('elementor-gallery-empty', !hasImages); $galleryThumbnails = _this.ui.galleryThumbnails; $galleryThumbnails.empty(); /* Translators: %s: Selected images count. */ _this.ui.status.text(hasImages ? sprintf(__('%s Images Selected', 'elementor'), imagesCount) : __('No Images Selected', 'elementor')); if (hasPromotions) { promotionsAlwaysOn = _this.ui.promotions.find('.elementor-control-notice').data('display') || false; } if (hasImages) { _context.next = 1; break; } return _context.abrupt("return"); case 1: attachments = []; _this.getControlValue().forEach(function (image, thumbIndex) { var $thumbnail = jQuery('', { class: 'elementor-control-gallery-thumbnail', src: image.url, alt: 'gallery-thumbnail-' + thumbIndex }); $galleryThumbnails.append($thumbnail); var handleHints = function handleHints(attachment) { var hasAlt = _this.imageHasAlt(attachment); if (!hasAlt) { $thumbnail.addClass('unoptimized__image'); // eslint-disable-next-line capitalized-comments // imagesWithoutAlt += hasAlt ? 0 : 1; } if (hasPromotions && _this.imageNotOptimized(attachment)) { imagesWithoutOptimization += 1; } }; attachments.push(wp.media.attachment(image.id).fetch().then(handleHints)); }); // Ensure all attachments are fetched before updating the warnings _context.next = 2; return Promise.all(attachments).then(function () { // eslint-disable-next-line capitalized-comments // this.ui.warnings.toggle( !! imagesWithoutAlt ); if (hasPromotions) { var showHints = promotionsAlwaysOn || !!imagesWithoutOptimization; _this.ui.promotions.toggle(showHints); } }); case 2: case "end": return _context.stop(); } }, _callee); }))(); }, hasImages: function hasImages() { return !!this.getControlValue().length; }, imageHasAlt: function imageHasAlt(attachment) { var _attachment$alt; var attachmentAlt = (attachment === null || attachment === void 0 || (_attachment$alt = attachment.alt) === null || _attachment$alt === void 0 ? void 0 : _attachment$alt.trim()) || ''; return !!attachmentAlt; }, imageNotOptimized: function imageNotOptimized(attachment) { var checks = { height: 1080, width: 1920, filesizeInBytes: 100000 }; return Object.keys(checks).some(function (key) { var value = attachment[key] || false; return value && value > checks[key]; }); }, openFrame: function openFrame(action) { this.initFrame(action); this.frame.open(); // Set params to trigger sanitizer if (_filesUploadHandler.default.isUploadEnabled('svg')) { _filesUploadHandler.default.setUploadTypeCaller(this.frame); } }, initFrame: function initFrame(action) { var frameStates = { create: 'gallery', add: 'gallery-library', edit: 'gallery-edit' }; var options = { frame: 'post', multiple: true, state: frameStates[action], button: { text: __('Insert Media', 'elementor') } }; if (this.hasImages()) { options.selection = this.fetchSelection(); } this.frame = wp.media(options); this.addSvgMimeType(); // When a file is selected, run a callback. this.frame.on({ update: this.select, 'menu:render:default': this.menuRender, 'content:render:browse': this.gallerySettings }, this); }, addSvgMimeType: function addSvgMimeType() { if (!_filesUploadHandler.default.isUploadEnabled('svg')) { return; } // Add the SVG to the currently allowed extensions var oldExtensions = _wpPluploadSettings.defaults.filters.mime_types[0].extensions; this.frame.on('ready', function () { _wpPluploadSettings.defaults.filters.mime_types[0].extensions = oldExtensions + ',svg'; }); // Restore allowed upload extensions this.frame.on('close', function () { _wpPluploadSettings.defaults.filters.mime_types[0].extensions = oldExtensions; }); }, menuRender: function menuRender(view) { view.unset('insert'); view.unset('featured-image'); }, gallerySettings: function gallerySettings(browser) { browser.sidebar.on('ready', function () { browser.sidebar.unset('gallery'); }); }, fetchSelection: function fetchSelection() { var attachments = wp.media.query({ orderby: 'post__in', order: 'ASC', type: 'image', perPage: -1, post__in: _.pluck(this.getControlValue(), 'id') }); return new wp.media.model.Selection(attachments.models, { props: attachments.props.toJSON(), multiple: true }); }, /** * Callback handler for when an attachment is selected in the media modal. * Gets the selected image information, and sets it within the control. * * @param {Array<*>} selection */ select: function select(selection) { var images = []; selection.each(function (image) { images.push({ id: image.get('id'), url: image.get('url') }); }); this.setValue(images); this.applySavedValue(); }, onPromotionDismiss: function onPromotionDismiss() { this.dismissPromotion(this.getDismissPromotionEventName()); }, getDismissPromotionEventName: function getDismissPromotionEventName() { var _$dismissButton$; var $promotions = this.ui.promotions; var $dismissButton = $promotions.find('.elementor-control-notice-dismiss'); // Remove listener $dismissButton.off('click'); return ((_$dismissButton$ = $dismissButton[0]) === null || _$dismissButton$ === void 0 || (_$dismissButton$ = _$dismissButton$.dataset) === null || _$dismissButton$ === void 0 ? void 0 : _$dismissButton$.event) || false; }, hidePromotion: function hidePromotion() { var eventName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; var $promotions = this.ui.promotions; $promotions.hide(); if (!eventName) { eventName = this.getDismissPromotionEventName(); } // Prevent opening the same promotion again in current editor session. elementor.config.user.dismissed_editor_notices.push(eventName); }, onPromotionAction: function onPromotionAction(event) { var settings = {}; try { settings = JSON.parse(event.target.closest('button').dataset.settings); } catch (e) { // Do nothing. } var _settings = settings, _settings$action_url = _settings.action_url, actionURL = _settings$action_url === void 0 ? null : _settings$action_url, _settings$source = _settings.source, source = _settings$source === void 0 ? 'io-editor-gallery-install' : _settings$source; if (actionURL) { window.open(actionURL, '_blank'); } elementorCommon.ajax.addRequest('elementor_image_optimization_campaign', { data: { source: source } }); this.hidePromotion(); }, dismissPromotion: function dismissPromotion(eventName) { var $promotions = this.ui.promotions; $promotions.hide(); if (eventName) { elementorCommon.ajax.addRequest('dismissed_editor_notices', { data: { dismissId: eventName } }); // Prevent opening the same promotion again in current editor session. elementor.config.user.dismissed_editor_notices.push(eventName); } }, onBeforeDestroy: function onBeforeDestroy() { if (this.frame) { this.frame.off(); } this.$el.remove(); }, clearGallery: function clearGallery() { this.setValue([]); this.applySavedValue(); // eslint-disable-next-line capitalized-comments // this.ui.warnings.hide(); if (this.ui.promotions) { this.ui.promotions.hide(); } }, initRemoveDialog: function initRemoveDialog() { var removeDialog; this.getRemoveDialog = function () { if (!removeDialog) { removeDialog = elementorCommon.dialogsManager.createWidget('confirm', { message: __('Are you sure you want to clear this gallery?', 'elementor'), headerMessage: __('Clear gallery', 'elementor'), strings: { confirm: __('Clear', 'elementor'), cancel: __('Cancel', 'elementor') }, defaultOption: 'confirm', onConfirm: this.clearGallery.bind(this) }); } return removeDialog; }; }, onAddImagesClick: function onAddImagesClick() { this.openFrame(this.hasImages() ? 'add' : 'create'); }, onClearGalleryClick: function onClearGalleryClick() { this.getRemoveDialog().show(); }, onGalleryThumbnailsClick: function onGalleryThumbnailsClick() { this.openFrame('edit'); }, onGalleryThumbnailsKeyPress: function onGalleryThumbnailsKeyPress(event) { var ENTER_KEY = 13, SPACE_KEY = 32; if (ENTER_KEY === event.which || SPACE_KEY === event.which) { this.onGalleryThumbnailsClick(event); } } }); module.exports = ControlMediaItemView; /***/ }), /***/ "../assets/dev/js/editor/controls/gaps.js": /*!************************************************!*\ !*** ../assets/dev/js/editor/controls/gaps.js ***! \************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); var _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js")); // eslint-disable-next-line prefer-const var ControlDimensionsView = __webpack_require__(/*! elementor-controls/dimensions */ "../assets/dev/js/editor/controls/dimensions.js"), ControlGapItemView; // eslint-disable-next-line prefer-const ControlGapItemView = ControlDimensionsView.extend({ ui: function ui() { // eslint-disable-next-line prefer-const var ui = ControlDimensionsView.prototype.ui.apply(this, arguments); ui.controls = '.elementor-control-gap > input:enabled'; ui.link = 'button.elementor-link-gaps'; return ui; }, getPossibleDimensions: function getPossibleDimensions() { return ['row', 'column']; }, setValue: function setValue(key, value) { var values = this.getControlValue(); if ('object' === (0, _typeof2.default)(key)) { _.each(key, function (internalValue, internalKey) { values[internalKey] = internalValue; }); } else { values[key] = value; } var conversion = this.model.get('conversion_map'); if (conversion && conversion.old_key && conversion.new_key) { values[conversion.old_key] = parseInt(values[conversion.new_key]); } this.setSettingsModel(values); }, getControlValue: function getControlValue() { var valuesUpdated = ControlDimensionsView.prototype.getControlValue.apply(this, arguments); if (this.shouldUpdateGapsValues(valuesUpdated)) { valuesUpdated.column = '' + valuesUpdated.size; valuesUpdated.row = '' + valuesUpdated.size; valuesUpdated.isLinked = true; } return valuesUpdated; }, shouldUpdateGapsValues: function shouldUpdateGapsValues(valuesUpdated) { return !!valuesUpdated.hasOwnProperty('size') && '' !== valuesUpdated.size && !valuesUpdated.hasOwnProperty('column'); } }); module.exports = ControlGapItemView; /***/ }), /***/ "../assets/dev/js/editor/controls/hidden.js": /*!**************************************************!*\ !*** ../assets/dev/js/editor/controls/hidden.js ***! \**************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); var _baseData = _interopRequireDefault(__webpack_require__(/*! ./base-data */ "../assets/dev/js/editor/controls/base-data.js")); module.exports = _baseData.default.extend({}, { onPasteStyle: function onPasteStyle() { return false; } }); /***/ }), /***/ "../assets/dev/js/editor/controls/icon.js": /*!************************************************!*\ !*** ../assets/dev/js/editor/controls/icon.js ***! \************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var ControlSelect2View = __webpack_require__(/*! elementor-controls/select2 */ "../assets/dev/js/editor/controls/select2.js"), ControlIconView; ControlIconView = ControlSelect2View.extend({ initialize: function initialize() { ControlSelect2View.prototype.initialize.apply(this, arguments); this.filterIcons(); }, filterIcons: function filterIcons() { var icons = this.model.get('options'), include = this.model.get('include'); if (include) { var filteredIcons = {}; _.each(include, function (iconKey) { filteredIcons[iconKey] = icons[iconKey]; }); this.model.set('options', filteredIcons); return; } var exclude = this.model.get('exclude'); if (exclude) { _.each(exclude, function (iconKey) { delete icons[iconKey]; }); } }, iconsList: function iconsList(icon) { if (!icon.id) { return icon.text; } return jQuery(' ' + icon.text + ''); }, getSelect2Options: function getSelect2Options() { return { allowClear: true, templateResult: this.iconsList.bind(this), templateSelection: this.iconsList.bind(this) }; } }); module.exports = ControlIconView; /***/ }), /***/ "../assets/dev/js/editor/controls/icons.js": /*!*************************************************!*\ !*** ../assets/dev/js/editor/controls/icons.js ***! \*************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"]; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); var _readOnlyError2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/readOnlyError */ "../node_modules/@babel/runtime/helpers/readOnlyError.js")); var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "../node_modules/@babel/runtime/helpers/get.js")); var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js")); var _filesUploadHandler = _interopRequireDefault(__webpack_require__(/*! ../utils/files-upload-handler */ "../assets/dev/js/editor/utils/files-upload-handler.js")); function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } function _superPropGet(t, o, e, r) { var p = (0, _get2.default)((0, _getPrototypeOf2.default)(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } var ControlMultipleBaseItemView = __webpack_require__(/*! elementor-controls/base-multiple */ "../assets/dev/js/editor/controls/base-multiple.js"); var ControlIconsView = /*#__PURE__*/function (_ControlMultipleBaseI) { function ControlIconsView() { var _this; (0, _classCallCheck2.default)(this, ControlIconsView); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _callSuper(this, ControlIconsView, [].concat(args)); _this.cache = { loaded: false, dialog: false, enableClicked: false, fa4Mapping: false, migratedFlag: {} }; _this.dataKeys = { migratedKey: '__fa4_migrated', fa4MigrationFlag: 'fa4compatibility' }; return _this; } (0, _inherits2.default)(ControlIconsView, _ControlMultipleBaseI); return (0, _createClass2.default)(ControlIconsView, [{ key: "enqueueIconFonts", value: function enqueueIconFonts(iconType) { var iconSetting = elementor.helpers.getIconLibrarySettings(iconType); if (false === iconSetting || !this.isMigrationAllowed()) { return; } if (iconSetting.enqueue) { iconSetting.enqueue.forEach(function (assetURL) { var versionAddedURL = "".concat(assetURL).concat(iconSetting !== null && iconSetting !== void 0 && iconSetting.ver ? '?ver=' + iconSetting.ver : ''); elementor.helpers.enqueueEditorStylesheet(versionAddedURL); elementor.helpers.enqueuePreviewStylesheet(versionAddedURL); }); } if (iconSetting.url) { var versionAddedURL = "".concat(iconSetting.url).concat(iconSetting !== null && iconSetting !== void 0 && iconSetting.ver ? '?ver=' + iconSetting.ver : ''); elementor.helpers.enqueueEditorStylesheet(versionAddedURL); elementor.helpers.enqueuePreviewStylesheet(versionAddedURL); } } }, { key: "ui", value: function ui() { var ui = _superPropGet(ControlIconsView, "ui", this, 3)([]), skin = this.model.get('skin'); ui.controlMedia = '.elementor-control-media'; ui.svgUploader = 'media' === skin ? '.elementor-control-svg-uploader' : '.elementor-control-icons--inline__svg'; ui.iconPickers = 'media' === skin ? '.elementor-control-icon-picker, .elementor-control-media__preview, .elementor-control-media-upload-button' : '.elementor-control-icons--inline__icon'; ui.deleteButton = 'media' === skin ? '.elementor-control-media__remove' : '.elementor-control-icons--inline__none'; ui.previewPlaceholder = '.elementor-control-media__preview'; ui.previewContainer = '.elementor-control-preview-area'; ui.inlineIconContainer = '.elementor-control-inline-icon'; ui.inlineDisplayedIcon = '.elementor-control-icons--inline__displayed-icon'; ui.radioInputs = '[type="radio"]'; return ui; } }, { key: "events", value: function events() { return jQuery.extend(ControlMultipleBaseItemView.prototype.events.apply(this, arguments), { 'click @ui.iconPickers': 'openPicker', 'click @ui.svgUploader': 'openFrame', 'click @ui.radioInputs': 'onClickInput', 'click @ui.deleteButton': 'deleteIcon' }); } }, { key: "getControlValue", value: function getControlValue() { var model = this.model, valueToMigrate = this.getValueToMigrate(); if (!this.isMigrationAllowed()) { return valueToMigrate; } // Bail if no migration flag or no value to migrate var value = _superPropGet(ControlIconsView, "getControlValue", this, 3)([]); if (!valueToMigrate) { return value; } var controlName = model.get('name'); // Check if migration had been done and is stored locally if (this.cache.migratedFlag[controlName]) { return this.cache.migratedFlag[controlName]; } // Check if already migrated var didMigration = this.elementSettingsModel.get(this.dataKeys.migratedKey); if (didMigration && didMigration[controlName]) { return value; } // Do migration return this.migrateFa4toFa5(valueToMigrate); } }, { key: "migrateFa4toFa5", value: function migrateFa4toFa5(fa4Value) { var fa5Value = elementor.helpers.mapFa4ToFa5(fa4Value); this.cache.migratedFlag[this.model.get('name')] = fa5Value; this.enqueueIconFonts(fa5Value.library); return fa5Value; } }, { key: "setControlAsMigrated", value: function setControlAsMigrated(controlName) { var didMigration = this.elementSettingsModel.get(this.dataKeys.migratedKey) || {}; didMigration[controlName] = true; this.elementSettingsModel.set(this.dataKeys.migratedKey, didMigration, { silent: true }); } }, { key: "isMigrationAllowed", value: function isMigrationAllowed() { return !elementor.config.icons_update_needed; } }, { key: "getValueToMigrate", value: function getValueToMigrate() { var controlToMigrate = this.model.get(this.dataKeys.fa4MigrationFlag); if (!controlToMigrate) { return false; } // Check if there is a value to migrate var valueToMigrate = this.container.settings.get(controlToMigrate); if (valueToMigrate) { return valueToMigrate; } return false; } }, { key: "onReady", value: function onReady() { var _this2 = this; // Is migration allowed from fa4 if (!this.isMigrationAllowed()) { var migrationPopupTrigger = 'media' === this.model.get('skin') ? this.ui.previewContainer[0] : this.ui.inlineIconContainer[0]; migrationPopupTrigger.addEventListener('click', function (event) { // Prevent default to prevent marking the inline icons as selected on click when migration is not allowed event.preventDefault(); event.stopPropagation(); var onConfirm = function onConfirm() { var _elementor$documents$; window.location.href = elementor.config.tools_page_link + '&redirect_to_document=' + ((_elementor$documents$ = elementor.documents.getCurrent()) === null || _elementor$documents$ === void 0 ? void 0 : _elementor$documents$.id) + '&_wpnonce=' + elementor.config.tools_page_nonce + '#tab-fontawesome4_migration'; }; var enableMigrationDialog = elementor.helpers.getSimpleDialog('elementor-enable-fa5-dialog', __('Elementor\'s New Icon Library', 'elementor'), __('Elementor v2.6 includes an upgrade from Font Awesome 4 to 5. In order to continue using icons, be sure to click "Update".', 'elementor') + ' ' + __('Learn More', 'elementor') + '', __('Update', 'elementor'), onConfirm); enableMigrationDialog.show(); return false; }, true); } var controlName = this.model.get('name'); if (this.cache.migratedFlag[controlName]) { this.setControlAsMigrated(controlName); setTimeout(function () { _this2.setValue(_this2.cache.migratedFlag[controlName]); }, 10); } } }, { key: "onRender", value: function onRender() { _superPropGet(ControlIconsView, "onRender", this, 3)([]); if (this.isMigrationAllowed()) { elementor.iconManager.loadIconLibraries(); } } }, { key: "initFrame", value: function initFrame() { var _this3 = this; // Set current doc id to attach uploaded images. wp.media.view.settings.post.id = elementor.config.document.id; this.frame = wp.media({ button: { text: __('Insert Media', 'elementor') }, library: { type: ['image/svg+xml'] }, states: [new wp.media.controller.Library({ title: __('Insert Media', 'elementor'), library: wp.media.query({ type: ['image/svg+xml'] }), multiple: false, date: false })] }); var handleSelect = function handleSelect() { return _this3.selectSvg(); }; // When a file is selected, run a callback. this.frame.on('insert select', handleSelect); this.setUploadMimeType(this.frame, 'svg'); } }, { key: "setUploadMimeType", value: function setUploadMimeType(frame, ext) { // Set svg as only allowed upload extensions var oldExtensions = _wpPluploadSettings.defaults.filters.mime_types[0].extensions; frame.on('ready', function () { _wpPluploadSettings.defaults.filters.mime_types[0].extensions = ext; }); this.frame.on('close', function () { // Restore allowed upload extensions _wpPluploadSettings.defaults.filters.mime_types[0].extensions = oldExtensions; }); } /** * Callback handler for when an attachment is selected in the media modal. * Gets the selected image information, and sets it within the control. */ }, { key: "selectSvg", value: function selectSvg() { this.trigger('before:select'); // Get the attachment from the modal frame. var attachment = this.frame.state().get('selection').first().toJSON(); if (attachment.url) { this.setValue({ value: { url: attachment.url, id: attachment.id }, library: 'svg' }); this.applySavedValue(); } this.trigger('after:select'); } }, { key: "openFrame", value: function openFrame() { var _this4 = this; if (!_filesUploadHandler.default.isUploadEnabled('svg')) { _filesUploadHandler.default.getUnfilteredFilesNotEnabledDialog(function () { return _this4.openFrame(); }).show(); return false; } if (!this.frame) { this.initFrame(); } this.frame.open(); // Set params to trigger sanitizer _filesUploadHandler.default.setUploadTypeCaller(this.frame); var selectedId = this.getControlValue('id'); if (!selectedId) { return; } var selection = this.frame.state().get('selection'); selection.add(wp.media.attachment(selectedId)); } }, { key: "openPicker", value: function openPicker() { elementor.iconManager.show({ view: this }); } }, { key: "applySavedValue", value: function applySavedValue() { var _this5 = this; var controlValue = this.getControlValue(), skin = this.model.get('skin'), iconContainer = 'inline' === skin ? this.ui.inlineDisplayedIcon : this.ui.previewPlaceholder, disableActiveState = this.model.get('disable_initial_active_state'), defaultIcon = this.model.get('default'); var iconValue = controlValue.value, iconType = controlValue.library; if (!this.isMigrationAllowed() && !iconValue && this.getValueToMigrate()) { iconValue = this.getControlValue(); iconType = ''; } if ('media' === skin) { this.ui.controlMedia.toggleClass('e-media-empty', !iconValue); } if ('inline' === skin && !disableActiveState || iconType) { this.markChecked(iconType); } if (!iconValue) { if ('inline' === skin) { this.setDefaultIconLibraryLabel(defaultIcon, iconContainer); return; } this.ui.previewPlaceholder.html(''); return; } if ('svg' === iconType && 'inline' !== skin) { return elementor.helpers.fetchInlineSvg(iconValue.url, function (data) { _this5.ui.previewPlaceholder.html(data); }); } if ('media' === skin || 'svg' !== iconType) { var previewHTML = ''; iconContainer.html(previewHTML); } this.enqueueIconFonts(iconType); } }, { key: "setDefaultIconLibraryLabel", value: function setDefaultIconLibraryLabel(defaultIcon, iconContainer) { // Check if the control has a default icon if ('' !== defaultIcon.value && 'svg' !== defaultIcon.library) { // If the default icon is not an SVG, set the icon-library label's icon to the default icon iconContainer.html(''); } else { // If (1) the control does NOT have a default icon, // OR (2) the control DOES have a default icon BUT the default icon is an SVG, // set the default icon-library label's icon to a simple circle var skinOptions = this.model.get('skin_settings'); iconContainer.html(''); } } }, { key: "markChecked", value: function markChecked(iconType) { this.ui.radioInputs.filter(':checked').prop('checked', false); if (!iconType) { return this.ui.radioInputs.filter('[value="none"]').prop('checked', true); } if ('svg' !== iconType) { iconType = 'icon'; } this.ui.radioInputs.filter('[value="' + iconType + '"]').prop('checked', true); } }, { key: "onClickInput", value: function onClickInput() { this.markChecked(this.getControlValue().library); } }, { key: "deleteIcon", value: function deleteIcon(event) { event.stopPropagation(); this.setValue({ value: '', library: '' }); this.applySavedValue(); } }, { key: "onBeforeDestroy", value: function onBeforeDestroy() { this.$el.remove(); } }]); }(ControlMultipleBaseItemView); module.exports = ControlIconsView; /***/ }), /***/ "../assets/dev/js/editor/controls/image-dimensions.js": /*!************************************************************!*\ !*** ../assets/dev/js/editor/controls/image-dimensions.js ***! \************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js")); var _scrubbing = _interopRequireDefault(__webpack_require__(/*! ./behaviors/scrubbing */ "../assets/dev/js/editor/controls/behaviors/scrubbing.js")); function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } var ControlMultipleBaseItemView = __webpack_require__(/*! elementor-controls/base-multiple */ "../assets/dev/js/editor/controls/base-multiple.js"), ControlImageDimensionsItemView; ControlImageDimensionsItemView = ControlMultipleBaseItemView.extend({ behaviors: function behaviors() { return _objectSpread(_objectSpread({}, ControlMultipleBaseItemView.prototype.behaviors.apply(this)), {}, { Scrubbing: { behaviorClass: _scrubbing.default, scrubSettings: { intentTime: 800 } } }); }, ui: function ui() { return { inputWidth: 'input[data-setting="width"]', inputHeight: 'input[data-setting="height"]', btnApply: 'button.elementor-image-dimensions-apply-button' }; }, // Override the base events events: function events() { return { 'click @ui.btnApply': 'onApplyClicked', 'keyup @ui.inputWidth': 'onDimensionKeyUp', 'keyup @ui.inputHeight': 'onDimensionKeyUp' }; }, onDimensionKeyUp: function onDimensionKeyUp(event) { var ENTER_KEY = 13; if (ENTER_KEY === event.keyCode) { this.onApplyClicked(event); } }, onApplyClicked: function onApplyClicked(event) { event.preventDefault(); this.setValue({ width: this.ui.inputWidth.val(), height: this.ui.inputHeight.val() }); } }); module.exports = ControlImageDimensionsItemView; /***/ }), /***/ "../assets/dev/js/editor/controls/media.js": /*!*************************************************!*\ !*** ../assets/dev/js/editor/controls/media.js ***! \*************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"]; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js")); var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js")); var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js")); var _filesUploadHandler = _interopRequireDefault(__webpack_require__(/*! ../utils/files-upload-handler */ "../assets/dev/js/editor/utils/files-upload-handler.js")); var _jsonUploadWarningMessage = __webpack_require__(/*! elementor-utils/json-upload-warning-message */ "../assets/dev/js/utils/json-upload-warning-message.js"); function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } var ControlMultipleBaseItemView = __webpack_require__(/*! elementor-controls/base-multiple */ "../assets/dev/js/editor/controls/base-multiple.js"), ControlMediaItemView; ControlMediaItemView = ControlMultipleBaseItemView.extend({ ui: function ui() { var ui = ControlMultipleBaseItemView.prototype.ui.apply(this, arguments); ui.controlMedia = '.elementor-control-media'; ui.mediaImage = '.elementor-control-media__preview'; ui.mediaVideo = '.elementor-control-media-video'; ui.frameOpeners = '.elementor-control-preview-area'; ui.removeButton = '.elementor-control-media__remove'; // eslint-disable-next-line capitalized-comments // ui.warnings = '.elementor-control-media__warnings'; ui.promotions = '.elementor-control-media__promotions'; ui.promotions_dismiss = '.elementor-control-media__promotions .elementor-control-notice-dismiss'; ui.promotions_action = '.elementor-control-media__promotions .elementor-control-notice-main-actions button'; ui.fileName = '.elementor-control-media__file__content__info__name'; ui.mediaInputImageSize = '.e-image-size-select'; return ui; }, events: function events() { return _.extend(ControlMultipleBaseItemView.prototype.events.apply(this, arguments), { 'click @ui.frameOpeners': 'openFrame', 'click @ui.removeButton': 'deleteImage', 'change @ui.mediaInputImageSize': 'onMediaInputImageSizeChange', 'click @ui.promotions_dismiss': 'onPromotionDismiss', 'click @ui.promotions_action': 'onPromotionAction' }); }, getMediaType: function getMediaType() { // `get( 'media_type' )` is for BC. return this.mediaType || this.model.get('media_type') || this.model.get('media_types')[0]; }, /** * Get library type for `wp.media` using a given media type. * * @param {string} mediaType - The media type to get the library for. * @return {string} library media type */ getLibraryType: function getLibraryType(mediaType) { if (!mediaType) { mediaType = this.getMediaType(); } return 'svg' === mediaType ? 'image/svg+xml' : mediaType; }, applySavedValue: function applySavedValue() { var _this$getControlPlace, _this = this; var value = this.getControlValue('url'), url = value || ((_this$getControlPlace = this.getControlPlaceholder()) === null || _this$getControlPlace === void 0 ? void 0 : _this$getControlPlace.url), attachmentId = this.getControlValue('id'), isPlaceholder = !value && url, mediaType = this.getMediaType(); if (['image', 'svg'].includes(mediaType)) { this.ui.mediaImage.css('background-image', url ? 'url(' + url + ')' : ''); if (isPlaceholder) { this.ui.mediaImage.css('opacity', 0.5); } } else if ('video' === mediaType) { this.ui.mediaVideo.attr('src', url); } else { var fileName = url ? url.split('/').pop() : ''; this.ui.fileName.text(fileName); } if (this.ui.mediaInputImageSize) { var imageSize = this.getControlValue('size'); if (isPlaceholder) { var _this$getControlPlace2; imageSize = (_this$getControlPlace2 = this.getControlPlaceholder()) === null || _this$getControlPlace2 === void 0 ? void 0 : _this$getControlPlace2.size; } this.ui.mediaInputImageSize.val(imageSize).toggleClass('e-select-placeholder', isPlaceholder); } this.ui.controlMedia.toggleClass('e-media-empty', !value).toggleClass('e-media-empty-placeholder', !value && !isPlaceholder); if ('image' === mediaType) { if (attachmentId) { var dismissPromotionEventName = this.getDismissPromotionEventName(); var handleHints = function handleHints(attachment) { // eslint-disable-next-line capitalized-comments // this.ui.warnings.toggle( ! this.imageHasAlt( attachment ) ); if (_this.ui.promotions.length && !elementor.config.user.dismissed_editor_notices.includes(dismissPromotionEventName)) { var alwaysOn = _this.ui.promotions.find('.elementor-control-notice').data('display') || false; var showHint = alwaysOn || _this.imageNotOptimized(attachment); _this.ui.promotions.toggle(showHint); } }; wp.media.attachment(attachmentId).fetch().then(handleHints); } else { // eslint-disable-next-line capitalized-comments // this.ui.warnings.hide(); // eslint-disable-next-line no-lonely-if if (this.ui.promotions.length) { this.ui.promotions.hide(); } } } }, openFrame: function openFrame(e) { var _arguments = arguments, _this2 = this; return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() { var _e$target; var source, mediaType, selectedId; return _regenerator.default.wrap(function (_context) { while (1) switch (_context.prev = _context.next) { case 0: source = _arguments.length > 1 && _arguments[1] !== undefined ? _arguments[1] : null; mediaType = (e === null || e === void 0 || (_e$target = e.target) === null || _e$target === void 0 || (_e$target = _e$target.dataset) === null || _e$target === void 0 ? void 0 : _e$target.mediaType) || _this2.getMediaType(); _this2.mediaType = mediaType; if (mediaType) { _context.next = 1; break; } return _context.abrupt("return"); case 1: if (_filesUploadHandler.default.isUploadEnabled(mediaType)) { _context.next = 2; break; } _filesUploadHandler.default.getUnfilteredFilesNotEnabledDialog(function () { return _this2.openFrame(e, 'filter-popup'); }).show(); return _context.abrupt("return", false); case 2: if (!(source !== 'filter-popup' && ['application/json', 'json'].includes(mediaType))) { _context.next = 3; break; } _context.next = 3; return (0, _jsonUploadWarningMessage.showJsonUploadWarningMessageIfNeeded)({ introductionMap: window.elementor.config.user.introduction, IntroductionClass: window.elementorModules.editor.utils.Introduction }); case 3: // If there is no frame, or the current initialized frame contains a different library than // the `data-media-type` of the clicked button, (re)initialize the frame. if (!_this2.frame || _this2.getLibraryType(mediaType) !== _this2.currentLibraryType) { _this2.initFrame(); } _this2.frame.open(); // Set params to trigger sanitizer _filesUploadHandler.default.setUploadTypeCaller(_this2.frame); selectedId = _this2.getControlValue('id'); if (selectedId) { _context.next = 4; break; } return _context.abrupt("return"); case 4: _this2.frame.state().get('selection').add(wp.media.attachment(selectedId)); case 5: case "end": return _context.stop(); } }, _callee); }))(); }, deleteImage: function deleteImage(event) { event.stopPropagation(); this.setValue({ url: '', id: '' }); this.applySavedValue(); }, imageHasAlt: function imageHasAlt(attachment) { var _attachment$alt; var attachmentAlt = (attachment === null || attachment === void 0 || (_attachment$alt = attachment.alt) === null || _attachment$alt === void 0 ? void 0 : _attachment$alt.trim()) || ''; return !!attachmentAlt; }, imageNotOptimized: function imageNotOptimized(attachment) { var checks = { height: 1080, width: 1920, filesizeInBytes: 100000 }; return Object.keys(checks).some(function (key) { var value = attachment[key] || false; return value && value > checks[key]; }); }, getDismissPromotionEventName: function getDismissPromotionEventName() { var _$dismissButton$; var $promotions = this.ui.promotions; var $dismissButton = $promotions.find('.elementor-control-notice-dismiss'); // Remove listener $dismissButton.off('click'); return ((_$dismissButton$ = $dismissButton[0]) === null || _$dismissButton$ === void 0 || (_$dismissButton$ = _$dismissButton$.dataset) === null || _$dismissButton$ === void 0 ? void 0 : _$dismissButton$.event) || false; }, onPromotionDismiss: function onPromotionDismiss() { this.dismissPromotion(this.getDismissPromotionEventName()); }, onPromotionAction: function onPromotionAction(event) { var settings = {}; try { settings = JSON.parse(event.target.closest('button').dataset.settings); } catch (e) { // Do nothing. } var _settings = settings, _settings$action_url = _settings.action_url, actionURL = _settings$action_url === void 0 ? null : _settings$action_url, _settings$source = _settings.source, source = _settings$source === void 0 ? 'io-editor-image-install' : _settings$source; if (actionURL) { window.open(actionURL, '_blank'); } this.hidePromotion(null, source); }, dismissPromotion: function dismissPromotion(eventName) { this.hidePromotion(eventName); if (eventName) { elementorCommon.ajax.addRequest('dismissed_editor_notices', { data: { dismissId: eventName } }); } }, hidePromotion: function hidePromotion() { var eventName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'io-editor-image-install'; var $promotions = this.ui.promotions; $promotions.hide(); if (!eventName) { eventName = this.getDismissPromotionEventName(); } elementorCommon.ajax.addRequest('elementor_image_optimization_campaign', { data: { source: source } }); // Prevent opening the same promotion again in current editor session. elementor.config.user.dismissed_editor_notices.push(eventName); }, onMediaInputImageSizeChange: function onMediaInputImageSizeChange() { var _this3 = this; if (!this.model.get('has_sizes')) { return; } var currentControlValue = this.getControlValue(), placeholder = this.getControlPlaceholder(); var hasImage = '' !== (currentControlValue === null || currentControlValue === void 0 ? void 0 : currentControlValue.id), hasPlaceholder = placeholder === null || placeholder === void 0 ? void 0 : placeholder.id, hasValue = hasImage || hasPlaceholder; if (!hasValue) { return; } var shouldUpdateFromPlaceholder = hasPlaceholder && !hasImage; if (shouldUpdateFromPlaceholder) { this.setValue(_objectSpread(_objectSpread({}, placeholder), {}, { size: currentControlValue.size })); if (this.model.get('responsive')) { // Render is already calls `applySavedValue`, therefore there's no need for it in this case. this.renderWithChildren(); } else { this.applySavedValue(); } this.onMediaInputImageSizeChange(); return; } var imageURL; elementor.channels.editor.once('imagesManager:detailsReceived', function (data) { var _data$currentControlV; imageURL = (_data$currentControlV = data[currentControlValue.id]) === null || _data$currentControlV === void 0 ? void 0 : _data$currentControlV[currentControlValue.size]; if (imageURL) { currentControlValue.url = imageURL; _this3.setValue(currentControlValue); } }); imageURL = elementor.imagesManager.getImageUrl({ id: currentControlValue.id, url: currentControlValue.url, size: currentControlValue.size }); if (imageURL) { currentControlValue.url = imageURL; this.setValue(currentControlValue); } }, /** * Create a media modal select frame, and store it so the instance can be reused when needed. */ initFrame: function initFrame() { var mediaType = this.getMediaType(); this.currentLibraryType = this.getLibraryType(mediaType); // Set current doc id to attach uploaded images. wp.media.view.settings.post.id = elementor.config.document.id; this.frame = wp.media({ frame: 'post', type: 'image', multiple: false, states: [new wp.media.controller.Library({ title: __('Insert Media', 'elementor'), library: wp.media.query({ type: this.currentLibraryType }), multiple: false, date: false })] }); // Remove unwanted elements when frame is opened. this.frame.on('ready open', this.onFrameReady.bind(this)); // When a file is selected, run a callback. this.frame.on('insert select', this.select.bind(this)); if (elementorCommon.config.filesUpload.unfilteredFiles) { this.setUploadMimeType(this.frame, mediaType); } }, /** * Hack to remove unwanted elements from modal & Open the `Insert from URL` tab. */ onFrameReady: function onFrameReady() { var $frame = this.frame.$el; var elementsToRemove = ['#menu-item-insert', '#menu-item-gallery', '#menu-item-playlist', '#menu-item-video-playlist', '.embed-link-settings']; $frame.find(elementsToRemove.join(',')).remove(); // Change the default button text using CSS by passing the text as a variable. $frame.css('--button-text', "'".concat(__('Insert Media', 'elementor'), "'")); // Remove elements from the URL upload tab. $frame.addClass('e-wp-media-elements-removed'); if ('url' === this.getControlValue('source')) { // Go to the url tab. $frame.find('#menu-item-embed').trigger('click'); // Hide the top media tabs ( WordPress does that automatically if a real user clicks the url tab ). $frame.addClass('hide-router'); // Load the image URL. this.frame.views.get('.media-frame-content')[0].url.model.set({ url: this.getControlValue('url'), alt: this.getControlValue('alt') }); } else { // Go to the upload tab. $frame.find('#menu-item-library').trigger('click'); } }, setUploadMimeType: function setUploadMimeType(frame, ext) { // Add unfiltered files to the allowed upload extensions var oldExtensions = _wpPluploadSettings.defaults.filters.mime_types[0].extensions; frame.on('ready', function () { _wpPluploadSettings.defaults.filters.mime_types[0].extensions = 'application/json' === ext ? 'json' : oldExtensions + ',svg'; }); this.frame.on('close', function () { // Restore allowed upload extensions _wpPluploadSettings.defaults.filters.mime_types[0].extensions = oldExtensions; }); }, /** * Callback handler for when an attachment is selected in the media modal. * Gets the selected image information, and sets it within the control. */ select: function select() { this.trigger('before:select'); var state = this.frame.state(); var attachment; if ('embed' === state.get('id')) { // Insert from URL. attachment = { url: state.props.get('url'), id: '', alt: state.props.get('alt'), source: 'url' }; } else { // Get the attachment from the modal frame. attachment = this.frame.state().get('selection').first().toJSON(); attachment.source = 'library'; } if (attachment.url) { this.setValue({ url: attachment.url, id: attachment.id, alt: attachment.alt, source: attachment.source, size: this.model.get('default').size }); if (this.model.get('responsive')) { // Render is already calls `applySavedValue`, therefore there's no need for it in this case. this.renderWithChildren(); } else { this.applySavedValue(); } } this.onMediaInputImageSizeChange(); this.trigger('after:select'); }, onBeforeDestroy: function onBeforeDestroy() { this.$el.remove(); } }); module.exports = ControlMediaItemView; /***/ }), /***/ "../assets/dev/js/editor/controls/notice.js": /*!**************************************************!*\ !*** ../assets/dev/js/editor/controls/notice.js ***! \**************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.js")); var ControlBaseView = __webpack_require__(/*! elementor-controls/base */ "../assets/dev/js/editor/controls/base.js"); module.exports = ControlBaseView.extend({ ui: function ui() { var ui = ControlBaseView.prototype.ui.apply(this, arguments); ui.button = '.elementor-control-notice-dismiss'; return ui; }, events: { 'click @ui.button.e-btn-1': 'onButton1Click', 'click @ui.button.e-btn-2': 'onButton2Click', 'click @ui.button.elementor-control-notice-dismiss': 'onDismissButtonClick' }, onButton1Click: function onButton1Click() { var eventName = this.model.get('event'); elementor.channels.editor.trigger(eventName, this); }, onButton2Click: function onButton2Click() { var eventName = this.model.get('event'); elementor.channels.editor.trigger(eventName, this); }, getDismissId: function getDismissId() { var _this$options, _this$options2, _this$options3; var controlName = this.model.get('name'); var elementType = 'widget' === ((_this$options = this.options) === null || _this$options === void 0 || (_this$options = _this$options.element) === null || _this$options === void 0 || (_this$options = _this$options.model) === null || _this$options === void 0 || (_this$options = _this$options.attributes) === null || _this$options === void 0 ? void 0 : _this$options.elType) ? (_this$options2 = this.options) === null || _this$options2 === void 0 || (_this$options2 = _this$options2.element) === null || _this$options2 === void 0 || (_this$options2 = _this$options2.model) === null || _this$options2 === void 0 || (_this$options2 = _this$options2.attributes) === null || _this$options2 === void 0 ? void 0 : _this$options2.widgetType : (_this$options3 = this.options) === null || _this$options3 === void 0 || (_this$options3 = _this$options3.element) === null || _this$options3 === void 0 || (_this$options3 = _this$options3.model) === null || _this$options3 === void 0 || (_this$options3 = _this$options3.attributes) === null || _this$options3 === void 0 ? void 0 : _this$options3.elType; return "".concat(elementType, "-").concat(controlName); }, onDismissButtonClick: function onDismissButtonClick() { var _this = this; var dismissId = this.getDismissId(); elementorCommon.ajax.addRequest('dismissed_editor_notices', { data: { dismissId: dismissId }, success: function success() { var _elementor; _this.$el.remove(); var dismissedNotices = (_elementor = elementor) !== null && _elementor !== void 0 && (_elementor = _elementor.config) !== null && _elementor !== void 0 && (_elementor = _elementor.user) !== null && _elementor !== void 0 && _elementor.dismissed_editor_notices ? (0, _toConsumableArray2.default)(elementor.config.user.dismissed_editor_notices) : []; elementor.config.user.dismissed_editor_notices = [].concat((0, _toConsumableArray2.default)(dismissedNotices), [dismissId]); } }); }, templateHelpers: function templateHelpers() { var _elementor2; var controlData = ControlBaseView.prototype.templateHelpers.apply(this, arguments); var dismissedNotices = (_elementor2 = elementor) !== null && _elementor2 !== void 0 && (_elementor2 = _elementor2.config) !== null && _elementor2 !== void 0 && (_elementor2 = _elementor2.user) !== null && _elementor2 !== void 0 && _elementor2.dismissed_editor_notices ? (0, _toConsumableArray2.default)(elementor.config.user.dismissed_editor_notices) : []; var dismissId = this.getDismissId(); controlData.data.shouldRenderNotice = !dismissedNotices.includes(dismissId); return controlData; } }); /***/ }), /***/ "../assets/dev/js/editor/controls/number.js": /*!**************************************************!*\ !*** ../assets/dev/js/editor/controls/number.js ***! \**************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js")); var _scrubbing = _interopRequireDefault(__webpack_require__(/*! ./behaviors/scrubbing */ "../assets/dev/js/editor/controls/behaviors/scrubbing.js")); function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } var ControlBaseDataView = __webpack_require__(/*! elementor-controls/base-data */ "../assets/dev/js/editor/controls/base-data.js"), ControlNumberItemView; ControlNumberItemView = ControlBaseDataView.extend({ behaviors: function behaviors() { return _objectSpread(_objectSpread({}, ControlBaseDataView.prototype.behaviors.apply(this)), {}, { Scrubbing: { behaviorClass: _scrubbing.default, scrubSettings: { intentTime: 800 } } }); }, registerValidators: function registerValidators() { ControlBaseDataView.prototype.registerValidators.apply(this, arguments); var validationTerms = {}, model = this.model; ['min', 'max'].forEach(function (term) { var termValue = model.get(term); if (_.isFinite(termValue)) { validationTerms[term] = termValue; } }); if (!jQuery.isEmptyObject(validationTerms)) { this.addValidator(new this.validatorTypes.Number({ validationTerms: validationTerms })); } } }, { getStyleValue: function getStyleValue(placeholder, controlValue, controlData) { if ('DEFAULT' === placeholder) { return controlData.default; } if (null === controlValue || undefined === controlValue || '' === controlValue) { return controlValue; } var numValue = Number(controlValue); if (!isFinite(numValue) || isNaN(numValue)) { var _controlData$default; return (_controlData$default = controlData.default) !== null && _controlData$default !== void 0 ? _controlData$default : ''; } return numValue; } }); module.exports = ControlNumberItemView; /***/ }), /***/ "../assets/dev/js/editor/controls/popover-toggle.js": /*!**********************************************************!*\ !*** ../assets/dev/js/editor/controls/popover-toggle.js ***! \**********************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"]; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js")); var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js")); var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js")); var _readOnlyError2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/readOnlyError */ "../node_modules/@babel/runtime/helpers/readOnlyError.js")); var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js")); function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } var ControlChooseView = __webpack_require__(/*! elementor-controls/choose */ "../assets/dev/js/editor/controls/choose.js"); var ControlPopoverStarterView = exports["default"] = /*#__PURE__*/function (_ControlChooseView) { function ControlPopoverStarterView() { (0, _classCallCheck2.default)(this, ControlPopoverStarterView); return _callSuper(this, ControlPopoverStarterView, arguments); } (0, _inherits2.default)(ControlPopoverStarterView, _ControlChooseView); return (0, _createClass2.default)(ControlPopoverStarterView, [{ key: "ui", value: function ui() { var ui = ControlChooseView.prototype.ui.apply(this, arguments); ui.popoverToggle = '.elementor-control-popover-toggle-toggle'; ui.resetInput = '.elementor-control-popover-toggle-reset'; return ui; } }, { key: "events", value: function events() { return _.extend(ControlChooseView.prototype.events.apply(this, arguments), { 'click @ui.popoverToggle': 'onPopoverToggleClick', 'click @ui.resetInput': 'onResetInputClick' }); } }, { key: "onShow", value: function onShow() { var _this = this; var $popover = this.$el.next('.elementor-controls-popover'); // Attach the current control as a toggle of its popover. if ($popover.length) { $popover[0].dataset.popoverToggle = "elementor-control-default-".concat(this.model.cid); $popover.on('hide', function () { return _this.onPopoverHide(); }); $popover.attr('data-on-hide', true); } } }, { key: "onPopoverHide", value: function onPopoverHide() { this.reRoute(false); } }, { key: "onResetInputClick", value: function onResetInputClick() { var globalData = this.model.get('global'); if (globalData !== null && globalData !== void 0 && globalData.active) { this.triggerMethod('value:type:change'); } } }, { key: "onInputChange", value: function onInputChange(event) { if (event.currentTarget !== this.ui.popoverToggle[0]) { return; } // If the control has a global value, unset the global. if (this.getGlobalKey()) { this.triggerMethod('unset:global:value'); } else if (this.isGlobalActive()) { this.triggerMethod('value:type:change'); } } }, { key: "onPopoverToggleClick", value: function onPopoverToggleClick() { var _this2 = this; if (this.isGlobalActive() && !this.getControlValue() && !this.getGlobalKey() && this.getGlobalDefault()) { this.triggerMethod('unlink:global:default'); } var $popover = this.$el.next('.elementor-controls-popover'); if (!$popover.attr('data-on-hide')) { $popover.attr('data-on-hide', true); $popover.on('hide', function () { return _this2.onPopoverHide(); }); } if (!$popover.is(':visible')) { this.reRoute(true); } else { $popover.hide(); $popover.trigger('hide'); } } }, { key: "activate", value: function activate() { this.$el.next('.elementor-controls-popover').show(); } }, { key: "getGlobalCommand", value: function getGlobalCommand() { return 'globals/typography'; } }, { key: "buildPreviewItemCSS", value: function buildPreviewItemCSS(globalValue) { var cssObject = {}; Object.entries(globalValue).forEach(function (_ref) { var _ref2 = (0, _slicedToArray2.default)(_ref, 2), property = _ref2[0], value = _ref2[1]; // If a control value is empty, ignore it. if (!value || '' === value.size) { return; } if (property.startsWith('typography_')) { property = property.replace('typography_', ''); } if ('font_family' === property) { elementor.helpers.enqueueFont(value, 'editor'); } if ('font_size' === property) { var fontSize = 'custom' === value.unit ? value.size : "".concat(value.size).concat(value.unit); cssObject.fontSize = "min(".concat(fontSize, ", 28px)"); } else { // Convert the snake case property names into camel case to match their corresponding CSS property names. if (property.includes('_')) { property = property.replace(/([_][a-z])/g, function (result) { return result.toUpperCase().replace('_', ''); }); } cssObject[property] = value; } }); return cssObject; } }, { key: "createGlobalItemMarkup", value: function createGlobalItemMarkup(globalData) { var $typographyPreview = jQuery('
', { class: 'e-global__preview-item e-global__typography', 'data-global-id': globalData.id, title: globalData.title }); $typographyPreview.html(_.escape(globalData.title)).css(this.buildPreviewItemCSS(globalData.value)); return $typographyPreview; } }, { key: "getGlobalMeta", value: function getGlobalMeta() { return { commandName: this.getGlobalCommand(), key: this.model.get('name'), title: __('New Typography Setting', 'elementor'), controlType: 'typography', route: 'panel/global/global-typography' }; } }, { key: "getAddGlobalConfirmMessage", value: function getAddGlobalConfirmMessage() { var globalData = this.getGlobalMeta(), $message = jQuery('
', { class: 'e-global__confirm-message' }), $messageText = jQuery('
').html(__('Are you sure you want to create a new Global Font setting?', 'elementor')), $inputWrapper = jQuery('
', { class: 'e-global__confirm-input-wrapper' }), $input = jQuery('', { type: 'text', name: 'global-name', placeholder: globalData.title }).val(globalData.title); $inputWrapper.append($input); $message.append($messageText, $inputWrapper); return $message; } }, { key: "createHeaderItemMarkup", value: function createHeaderItemMarkup(text) { return jQuery('
', { class: 'e-global__group-header' }).text(text); } }, { key: "createDividerMarkup", value: function createDividerMarkup() { return jQuery('
', { class: 'e-global__group-divider' }); } }, { key: "getGlobalsList", value: function () { var _getGlobalsList = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() { var result; return _regenerator.default.wrap(function (_context) { while (1) switch (_context.prev = _context.next) { case 0: _context.next = 1; return $e.data.get(this.getGlobalCommand()); case 1: result = _context.sent; return _context.abrupt("return", result.data); case 2: case "end": return _context.stop(); } }, _callee, this); })); function getGlobalsList() { return _getGlobalsList.apply(this, arguments); } return getGlobalsList; }() }, { key: "buildGlobalsList", value: function buildGlobalsList(globalTypographies, $globalPreviewItemsContainer) { var _this3 = this; var v4Typographies = []; var v3Typographies = []; Object.values(globalTypographies).forEach(function (typography) { if (!typography) { return; } if ('v4' === typography.group) { v4Typographies.push(typography); } else { v3Typographies.push(typography); } }); if (v4Typographies.length) { $globalPreviewItemsContainer.append(this.createHeaderItemMarkup(__('Atomic Classes', 'elementor'))); v4Typographies.forEach(function (typography) { $globalPreviewItemsContainer.append(_this3.createGlobalItemMarkup(typography)); }); if (v3Typographies.length) { $globalPreviewItemsContainer.append(this.createDividerMarkup()); $globalPreviewItemsContainer.append(this.createHeaderItemMarkup(__('Global Fonts', 'elementor'))); } } v3Typographies.forEach(function (typography) { $globalPreviewItemsContainer.append(_this3.createGlobalItemMarkup(typography)); }); } }, { key: "onAddGlobalButtonClick", value: function onAddGlobalButtonClick() { this.triggerMethod('add:global:to:list', this.getAddGlobalConfirmMessage()); } }]); }(ControlChooseView); ControlPopoverStarterView.onPasteStyle = function (control, clipboardValue) { return !clipboardValue || clipboardValue === control.return_value; }; /***/ }), /***/ "../assets/dev/js/editor/controls/repeater-row.js": /*!********************************************************!*\ !*** ../assets/dev/js/editor/controls/repeater-row.js ***! \********************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; /* provided dependency */ var sprintf = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["sprintf"]; /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"]; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); var _controlsStack = _interopRequireDefault(__webpack_require__(/*! elementor-views/controls-stack */ "../assets/dev/js/editor/views/controls-stack.js")); module.exports = Marionette.CompositeView.extend({ template: Marionette.TemplateCache.get('#tmpl-elementor-repeater-row'), className: 'elementor-repeater-fields', attributes: { role: 'listitem' }, ui: function ui() { return { duplicateButton: '.elementor-repeater-tool-duplicate', editButton: '.elementor-repeater-tool-edit', removeButton: '.elementor-repeater-tool-remove', itemTitle: '.elementor-repeater-row-item-title' }; }, behaviors: { HandleInnerTabs: { behaviorClass: __webpack_require__(/*! elementor-behaviors/inner-tabs */ "../assets/dev/js/editor/elements/views/behaviors/inner-tabs.js") } }, triggers: { 'click @ui.removeButton': 'click:remove', 'click @ui.duplicateButton': 'click:duplicate', 'click @ui.itemTitle': 'click:edit' }, modelEvents: { change: 'onModelChange' }, templateHelpers: function templateHelpers() { return { itemIndex: this.getOption('itemIndex'), itemActions: this.getOption('itemActions') }; }, childViewContainer: '.elementor-repeater-row-controls', getChildView: function getChildView(item) { var controlType = item.get('type'); return elementor.getControlView(controlType); }, getChildControlView: function getChildControlView(name) { return this.getControlViewByModel(this.getControlModel(name)); }, getControlViewByModel: function getControlViewByModel(model) { return this.children.findByModelCid(model.cid); }, getControlModel: function getControlModel(name) { return this.collection.findWhere({ name: name }); }, childViewOptions: function childViewOptions() { return { container: this.options.container }; }, updateIndex: function updateIndex(newIndex) { this.itemIndex = newIndex; }, setTitle: function setTitle() { var titleField = this.getOption('titleField'); var title = ''; if (titleField) { title = Marionette.TemplateCache.prototype.compileTemplate(titleField)(this.model.parseDynamicSettings()); } if (!title) { /* Translators: %s: Item Index (number). */ title = sprintf(__('Item #%s', 'elementor'), this.getOption('itemIndex')); } this.ui.itemTitle.html(title); }, toggleSort: function toggleSort(enable) { this.$el.toggleClass('elementor-repeater-row--disable-sort', !enable); }, initialize: function initialize(options) { this.itemIndex = 0; // Collection for Controls list this.collection = new Backbone.Collection(_.values(elementor.mergeControlsSettings(options.controlFields))); }, onRender: function onRender() { this.setTitle(); _controlsStack.default.handlePopovers(this); }, onModelChange: function onModelChange() { if (this.getOption('titleField')) { this.setTitle(); } }, onChildviewResponsiveSwitcherClick: function onChildviewResponsiveSwitcherClick(childView, device) { if ('desktop' === device) { elementor.getPanelView().getCurrentPageView().$el.toggleClass('elementor-responsive-switchers-open'); } } }); /***/ }), /***/ "../assets/dev/js/editor/controls/repeater.js": /*!****************************************************!*\ !*** ../assets/dev/js/editor/controls/repeater.js ***! \****************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var ControlBaseDataView = __webpack_require__(/*! elementor-controls/base-data */ "../assets/dev/js/editor/controls/base-data.js"), RepeaterRowView = __webpack_require__(/*! elementor-controls/repeater-row */ "../assets/dev/js/editor/controls/repeater-row.js"), ControlRepeaterItemView; ControlRepeaterItemView = ControlBaseDataView.extend({ ui: { btnAddRow: '.elementor-repeater-add', fieldContainer: '.elementor-repeater-fields-wrapper' }, events: function events() { return { 'click @ui.btnAddRow': 'onButtonAddRowClick', 'sortstart @ui.fieldContainer': 'onSortStart', 'sortupdate @ui.fieldContainer': 'onSortUpdate', 'sortstop @ui.fieldContainer': 'onSortStop' }; }, childView: RepeaterRowView, childViewContainer: '.elementor-repeater-fields-wrapper', templateHelpers: function templateHelpers() { return { itemActions: this.model.get('item_actions'), data: _.extend({}, this.model.toJSON(), { controlValue: [] }) }; }, childViewOptions: function childViewOptions(rowModel, index) { var elementContainer = this.getOption('container'); return { container: elementContainer.repeaters[this.model.get('name')].children[index], controlFields: this.model.get('fields'), titleField: this.model.get('title_field'), itemActions: this.model.get('item_actions') }; }, createItemModel: function createItemModel(attrs, options, controlView) { options.controls = controlView.model.get('fields'); return new elementorModules.editor.elements.models.BaseSettings(attrs, options); }, fillCollection: function fillCollection() { // TODO: elementSettingsModel is deprecated since 2.8.0. var settings = this.container ? this.container.settings : this.elementSettingsModel; var controlName = this.model.get('name'); this.collection = settings.get(controlName); // Hack for history redo/undo if (!(this.collection instanceof Backbone.Collection)) { this.collection = new Backbone.Collection(this.collection, { // Use `partial` to supply the `this` as an argument, but not as context // the `_` is a place holder for original arguments: `attrs` & `options` model: _.partial(this.createItemModel, _, _, this) }); // Set the value silent settings.set(controlName, this.collection, { silent: true }); } }, initialize: function initialize() { ControlBaseDataView.prototype.initialize.apply(this, arguments); this.fillCollection(); this.listenTo(this.collection, 'reset', this.resetContainer.bind(this)); this.listenTo(this.collection, 'add', this.updateContainer.bind(this)); }, editRow: function editRow(rowView) { if (this.currentEditableChild) { var currentEditable = this.currentEditableChild.getChildViewContainer(this.currentEditableChild); currentEditable.removeClass('editable'); // If the repeater contains TinyMCE editors, fire the `hide` trigger to hide floated toolbars currentEditable.find('.elementor-wp-editor').each(function () { tinymce.get(this.id).fire('hide'); }); } if (this.currentEditableChild === rowView) { delete this.currentEditableChild; return; } rowView.getChildViewContainer(rowView).addClass('editable'); this.currentEditableChild = rowView; this.updateActiveRow(); }, toggleClasses: function toggleClasses() { this.toggleMinRowsClass(); this.toggleMaxRowsClass(); }, toggleMaxRowsClass: function toggleMaxRowsClass() { var maxItems = this.model.get('max_items'); if (!maxItems || !Number.isInteger(maxItems)) { return; } this.$el.toggleClass('elementor-repeater-has-maximum-rows', maxItems <= this.collection.length); }, getMinItems: function getMinItems() { var minItems = 0; if (this.model.get('min_items') && Number.isInteger(this.model.get('min_items'))) { minItems = this.model.get('min_items'); } else if (this.model.get('prevent_empty')) { minItems = 1; } return minItems; }, toggleMinRowsClass: function toggleMinRowsClass() { var minItems = this.getMinItems(); if (!minItems) { return; } this.$el.toggleClass('elementor-repeater-has-minimum-rows', minItems >= this.collection.length); }, updateActiveRow: function updateActiveRow() { var activeItemIndex = 1; if (this.currentEditableChild) { activeItemIndex = this.currentEditableChild.itemIndex; } this.setEditSetting('activeItemIndex', activeItemIndex); }, updateChildIndexes: function updateChildIndexes() { var collection = this.collection; this.children.each(function (view) { view.updateIndex(collection.indexOf(view.model) + 1); view.setTitle(); }); }, getSortableParams: function getSortableParams() { return { axis: 'y', handle: '.elementor-repeater-row-tools', items: ' > :not(.elementor-repeater-row--disable-sort)', cancel: '' // Elements that do not allow sorting (by default it includes buttons). }; }, onRender: function onRender() { ControlBaseDataView.prototype.onRender.apply(this, arguments); if (this.model.get('item_actions').sort) { this.ui.fieldContainer.sortable(this.getSortableParams()); } this.toggleClasses(); }, onSortStart: function onSortStart(event, ui) { ui.item.data('oldIndex', ui.item.index()); }, onSortStop: function onSortStop(event, ui) { // Reload TinyMCE editors (if exist), it's a bug that TinyMCE content is missing after stop dragging var self = this, sortedIndex = ui.item.index(); if (-1 === sortedIndex) { return; } var sortedRowView = self.children.findByIndex(ui.item.index()), rowControls = sortedRowView.children._views; jQuery.each(rowControls, function () { if ('wysiwyg' === this.model.get('type')) { sortedRowView.render(); delete self.currentEditableChild; return false; } }); }, onSortUpdate: function onSortUpdate(event, ui) { var oldIndex = ui.item.data('oldIndex'), newIndex = ui.item.index(); $e.run('document/repeater/move', { container: this.options.container, name: this.model.get('name'), sourceIndex: oldIndex, targetIndex: newIndex }); }, onAddChild: function onAddChild() { this.updateChildIndexes(); this.updateActiveRow(); this.toggleClasses(); }, /** * Update container to ensure that new child elements appear in container children. * * @param {*} model - Container model. */ updateContainer: function updateContainer(model) { var container = this.options.container.repeaters[this.model.get('name')], isInChildren = container.children.filter(function (child) { return child.id === model.get('_id'); }); if (!isInChildren.length) { elementorDevTools.deprecation.deprecated('Don\'t add models directly to the repeater.', '3.0.0', '$e.run( \'document/repeater/insert\' )'); this.options.container.addRepeaterItem(this.model.get('name'), model, model.collection.indexOf(model)); } }, /** * Reset container to ensure that container children are reset on collection reset. * * @deprecated since 3.0.0, use `$e.run( 'document/repeater/remove' )` instead. */ resetContainer: function resetContainer() { elementorDevTools.deprecation.deprecated('Don\'t reset repeater collection directly.', '3.0.0', '$e.run( \'document/repeater/remove\' )'); this.options.container.repeaters[this.model.get('name')].children = []; }, getDefaults: function getDefaults() { var defaults = {}; // Get default fields. _.each(this.model.get('fields'), function (field) { defaults[field.name] = field.default; }); return defaults; }, getChildControlView: function getChildControlView(id) { return this.getControlViewByModel(this.getControlModel(id)); }, getControlViewByModel: function getControlViewByModel(model) { return this.children.findByModelCid(model.cid); }, getControlModel: function getControlModel(_id) { return this.collection.findWhere({ _id: _id }); }, onButtonAddRowClick: function onButtonAddRowClick() { var newModel = $e.run('document/repeater/insert', { container: this.options.container, name: this.model.get('name'), model: this.getDefaults() }); var newChild = this.children.findByModel(newModel); this.editRow(newChild); this.toggleClasses(); }, onChildviewClickRemove: function onChildviewClickRemove(childView) { if (childView === this.currentEditableChild) { delete this.currentEditableChild; } $e.run('document/repeater/remove', { container: this.options.container, name: this.model.get('name'), index: childView._index }); this.updateActiveRow(); this.updateChildIndexes(); this.toggleClasses(); }, onChildviewClickDuplicate: function onChildviewClickDuplicate(childView) { $e.run('document/repeater/duplicate', { container: this.options.container, name: this.model.get('name'), index: childView._index }); this.toggleClasses(); }, onChildviewClickEdit: function onChildviewClickEdit(childView) { this.editRow(childView); }, onAfterExternalChange: function onAfterExternalChange() { // Update the collection with current value this.fillCollection(); ControlBaseDataView.prototype.onAfterExternalChange.apply(this, arguments); } }); module.exports = ControlRepeaterItemView; /***/ }), /***/ "../assets/dev/js/editor/controls/section.js": /*!***************************************************!*\ !*** ../assets/dev/js/editor/controls/section.js ***! \***************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var ControlBaseView = __webpack_require__(/*! elementor-controls/base */ "../assets/dev/js/editor/controls/base.js"), ControlSectionItemView; ControlSectionItemView = ControlBaseView.extend({ ui: function ui() { var ui = ControlBaseView.prototype.ui.apply(this, arguments); ui.heading = '.elementor-panel-heading'; return ui; }, triggers: { click: 'control:section:clicked' } }); module.exports = ControlSectionItemView; /***/ }), /***/ "../assets/dev/js/editor/controls/select.js": /*!**************************************************!*\ !*** ../assets/dev/js/editor/controls/select.js ***! \**************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var ControlBaseDataView = __webpack_require__(/*! elementor-controls/base-data */ "../assets/dev/js/editor/controls/base-data.js"), ControlSelectItemView; ControlSelectItemView = ControlBaseDataView.extend({ updatePlaceholder: function updatePlaceholder() { var select = this.ui.select; if (!select) { return; } var selected = select.find('option:selected'); // When option with an empty value ('') selected, and it's not the placeholder option, // set the selected option to the placeholder. if ('' === selected.val() && !selected.hasClass('e-option-placeholder')) { selected = select.find('.e-option-placeholder'); selected.prop('selected', true); } if (selected.hasClass('e-option-placeholder')) { select.addClass('e-select-placeholder'); } else { select.removeClass('e-select-placeholder'); } }, onReady: function onReady() { var placeholder = this.getControlPlaceholder(); if (placeholder) { jQuery('