/*! * elFinder-Material-Theme (Default) v2.1.15 (https://github.com/RobiNN1/elFinder-Material-Theme) * Copyright 2016-2023 Róbert Kelčák * Licensed under MIT (https://github.com/RobiNN1/elFinder-Material-Theme/blob/master/LICENSE) */ .elfinder { color: #546e7a; font-family: -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } .elfinder.ui-widget.ui-widget-content { font-family: -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif; box-shadow: 0 1px 8px rgba(0, 0, 0, 0.6); border-radius: 0; border: 0; } .elfinder * { outline: 0 !important; } /** * Loading */ .elfinder-info-spinner, .elfinder-navbar-spinner, .elfinder-button-icon-spinner { background: url("../../material/images/loading.svg") center center no-repeat !important; width: 16px; height: 16px; } /** * Progress Bar */ @-webkit-keyframes progress-animation { from { background-position: 1rem 0; } to { background-position: 0 0; } } @keyframes progress-animation { from { background-position: 1rem 0; } to { background-position: 0 0; } } .elfinder-notify-progressbar { border: 0; } .elfinder-notify-progress, .elfinder-notify-progressbar { border-radius: 0; } .elfinder-notify-progress, .elfinder-resize-spinner { background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-size: 1rem 1rem; -webkit-animation: progress-animation 1s linear infinite; animation: progress-animation 1s linear infinite; background-color: #0275d8; height: 1rem; } /** * Toast Notification */ .elfinder .elfinder-toast > div { background-color: #323232 !important; color: #d6d6d6; box-shadow: none; opacity: inherit; padding: 10px 60px; } .elfinder .elfinder-toast > div button.ui-button { color: #fff; } .elfinder .elfinder-toast > .toast-info button.ui-button { background-color: #3498db; } .elfinder .elfinder-toast > .toast-error button.ui-button { background-color: #f44336; } .elfinder .elfinder-toast > .toast-success button.ui-button { background-color: #4caf50; } .elfinder .elfinder-toast > .toast-warning button.ui-button { background-color: #ff9800; } .elfinder-toast-msg { font-family: -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif; font-size: 17px; } /** * For Ace Editor */ #ace_settingsmenu { font-family: -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif; box-shadow: 0 1px 30px rgba(0, 0, 0, 0.6) !important; background-color: #1d2736 !important; color: #e6e6e6 !important; } #ace_settingsmenu, #kbshortcutmenu { padding: 0; } .ace_optionsMenuEntry { padding: 5px 10px; } .ace_optionsMenuEntry:hover { background-color: #111721; } .ace_optionsMenuEntry label { font-size: 13px; } #ace_settingsmenu input[type="text"], #ace_settingsmenu select { margin: 1px 2px 2px; padding: 2px 5px; border-radius: 3px; border: 0; background: rgba(9, 53, 121, 0.75); color: white !important; } /** * Icons */ @font-face { font-family: material; src: url("../../material/icons/material.eot?91804974"); src: url("../../material/icons/material.eot?91804974#iefix") format("embedded-opentype"), url("../../material/icons/material.woff2?91804974") format("woff2"), url("../../material/icons/material.woff?91804974") format("woff"), url("../../material/icons/material.ttf?91804974") format("truetype"), url("../../material/icons/material.svg?91804974#material") format("svg"); font-weight: normal; font-style: normal; } @media screen and (-webkit-min-device-pixel-ratio: 0) { @font-face { font-family: material; src: url("../../material/icons/material.svg?91804974#material") format("svg"); } } .elfinder .ui-icon, .elfinder-button-icon, .ui-widget-header .ui-icon, .ui-widget-content .ui-icon { font: normal normal normal 14px/1 material; background-image: inherit; text-indent: inherit; } .elfinder .ui-button-icon-only .ui-icon { font: normal normal normal 14px/1 material; background-image: inherit !important; text-indent: 0; font-size: 16px; } .elfinder-button-icon { background: inherit; } .elfinder-button-icon-home:before { content: '\e800'; } .elfinder-button-icon-back:before { content: '\e801'; } .elfinder-button-icon-forward:before { content: '\e802'; } .elfinder-button-icon-up:before { content: '\e803'; } .elfinder-button-icon-dir:before { content: '\e804'; } .elfinder-button-icon-opendir:before { content: '\e805'; } .elfinder-button-icon-reload:before { content: '\e806'; } .elfinder-button-icon-open:before { content: '\e807'; } .elfinder-button-icon-mkdir:before { content: '\e808'; } .elfinder-button-icon-mkfile:before { content: '\e809'; } .elfinder-button-icon-rm:before { content: '\e80a'; } .elfinder-button-icon-trash:before { content: '\e80b'; } .elfinder-button-icon-restore:before { content: '\e80c'; } .elfinder-button-icon-copy:before { content: '\e80d'; } .elfinder-button-icon-cut:before { content: '\e80e'; } .elfinder-button-icon-paste:before { content: '\e80f'; } .elfinder-button-icon-getfile:before { content: '\e810'; } .elfinder-button-icon-duplicate:before { content: '\e811'; } .elfinder-button-icon-rename:before { content: '\e812'; } .elfinder-button-icon-edit:before { content: '\e813'; } .elfinder-button-icon-quicklook:before { content: '\e814'; } .elfinder-button-icon-upload:before { content: '\e815'; } .elfinder-button-icon-download:before { content: '\e816'; } .elfinder-button-icon-info:before { content: '\e817'; } .elfinder-button-icon-extract:before { content: '\e818'; } .elfinder-button-icon-archive:before { content: '\e819'; } .elfinder-button-icon-view:before { content: '\e81a'; } .elfinder-button-icon-view-list:before { content: '\e81b'; } .elfinder-button-icon-help:before { content: '\e81c'; } .elfinder-button-icon-resize:before { content: '\e81d'; } .elfinder-button-icon-link:before { content: '\e81e'; } .elfinder-button-icon-search:before { content: '\e81f'; } .elfinder-button-icon-sort:before { content: '\e820'; } .elfinder-button-icon-rotate-r:before { content: '\e821'; } .elfinder-button-icon-rotate-l:before { content: '\e822'; } .elfinder-button-icon-netmount:before { content: '\e823'; } .elfinder-button-icon-netunmount:before { content: '\e824'; } .elfinder-button-icon-places:before { content: '\e825'; } .elfinder-button-icon-chmod:before { content: '\e826'; } .elfinder-button-icon-accept:before { content: '\e827'; } .elfinder-button-icon-menu:before { content: '\e828'; } .elfinder-button-icon-colwidth:before { content: '\e829'; } .elfinder-button-icon-fullscreen:before { content: '\e82a'; } .elfinder-button-icon-unfullscreen:before { content: '\e82b'; } .elfinder-button-icon-empty:before { content: '\e82c'; } .elfinder-button-icon-undo:before { content: '\e82d'; } .elfinder-button-icon-redo:before { content: '\e82e'; } .elfinder-button-icon-preference:before { content: '\e82f'; } .elfinder-button-icon-mkdirin:before { content: '\e830'; } .elfinder-button-icon-selectall:before { content: '\e831'; } .elfinder-button-icon-selectnone:before { content: '\e832'; } .elfinder-button-icon-selectinvert:before { content: '\e833'; } .elfinder-button-icon-logout:before { content: '\e85a'; } .elfinder-button-icon-opennew:before { content: '\e85b'; } .elfinder-button-icon-hide:before { content: '\e85d'; } .elfinder-button-search .ui-icon.ui-icon-search { font-size: 17px; } .elfinder-button-search .ui-icon:hover { opacity: 1; } .elfinder-navbar-icon { font: normal normal normal 16px/1 material; background-image: inherit !important; } .elfinder-navbar-icon:before { content: '\e804'; } .elfinder-droppable-active .elfinder-navbar-icon:before, .elfinder .ui-state-active .elfinder-navbar-icon:before, .elfinder .ui-state-hover .elfinder-navbar-icon:before { content: '\e805'; } .elfinder-navbar-root-local .elfinder-navbar-icon:before { content: '\e83d' !important; } .elfinder-navbar-root-ftp .elfinder-navbar-icon:before { content: '\e823' !important; } .elfinder-navbar-root-sql .elfinder-navbar-icon:before { content: '\e83e' !important; } .elfinder-navbar-root-dropbox .elfinder-navbar-icon:before { content: '\e83f' !important; } .elfinder-navbar-root-googledrive .elfinder-navbar-icon:before { content: '\e840' !important; } .elfinder-navbar-root-onedrive .elfinder-navbar-icon:before { content: '\e841' !important; } .elfinder-navbar-root-box .elfinder-navbar-icon:before { content: '\e842' !important; } .elfinder-navbar-root-trash .elfinder-navbar-icon:before { content: '\e80b' !important; } .elfinder-navbar-root-zip .elfinder-navbar-icon:before { content: '\e85c' !important; } .elfinder-navbar-root-network .elfinder-navbar-icon:before { content: '\e823' !important; } .elfinder-places .elfinder-navbar-root .elfinder-navbar-icon:before { content: '\e825' !important; } .elfinder-navbar-arrow { background-image: inherit !important; font: normal normal normal 14px/1 material; font-size: 10px; padding-top: 3px; padding-left: 2px; color: #a9a9a9; } .elfinder .ui-state-active .elfinder-navbar-arrow { color: #fff; } .elfinder-ltr .elfinder-navbar-collapsed .elfinder-navbar-arrow:before { content: '\e857'; } .elfinder-rtl .elfinder-navbar-collapsed .elfinder-navbar-arrow:before { content: '\e858'; } .elfinder-ltr .elfinder-navbar-expanded .elfinder-navbar-arrow:before, .elfinder-rtl .elfinder-navbar-expanded .elfinder-navbar-arrow:before { content: '\e851'; } .elfinder .elfinder-cwd table thead td.ui-state-active { background: #4a6187 !important; color: #fff !important; } .elfinder .elfinder-cwd table thead td { padding: 6px 12px !important; color: #fff !important; background: #18263f !important; } .elfinder-ltr .elfinder-cwd table td { text-align: left; } .elfinder .elfinder-cwd table td { padding: 4px 12px !important; } .elfinder-ltr .elfinder-cwd-view-list .elfinder-cwd-filename { padding-left: 23px; } div.elfinder-cwd-wrapper-list tr.ui-state-default td span.ui-icon { font-size: 8px; margin-top: 6px; margin-right: 5px; } div.elfinder-cwd-wrapper-list .ui-icon-grip-dotted-vertical { margin: 2px; } .elfinder-cwd-view-list .elfinder-navbar-root-local td .elfinder-cwd-icon, .elfinder-navbar-root-local .elfinder-cwd-icon, .elfinder-cwd-view-list .elfinder-navbar-root-ftp td .elfinder-cwd-icon, .elfinder-navbar-root-ftp .elfinder-cwd-icon, .elfinder-cwd-view-list .elfinder-navbar-root-sql td .elfinder-cwd-icon, .elfinder-navbar-root-sql .elfinder-cwd-icon, .elfinder-cwd-view-list .elfinder-navbar-root-dropbox td .elfinder-cwd-icon, .elfinder-navbar-root-dropbox .elfinder-cwd-icon, .elfinder-cwd-view-list .elfinder-navbar-root-googledrive td .elfinder-cwd-icon, .elfinder-navbar-root-googledrive .elfinder-cwd-icon, .elfinder-cwd-view-list .elfinder-navbar-root-onedrive td .elfinder-cwd-icon, .elfinder-navbar-root-onedrive .elfinder-cwd-icon, .elfinder-cwd-view-list .elfinder-navbar-root-box td .elfinder-cwd-icon, .elfinder-navbar-root-box .elfinder-cwd-icon, .elfinder-cwd-view-list .elfinder-navbar-root-trash td .elfinder-cwd-icon, .elfinder-navbar-root-trash .elfinder-cwd-icon, .elfinder-cwd-view-list .elfinder-navbar-root-zip td .elfinder-cwd-icon, .elfinder-navbar-root-zip .elfinder-cwd-icon, .elfinder-cwd-view-list .elfinder-navbar-root-network td .elfinder-cwd-icon, .elfinder-navbar-root-network .elfinder-cwd-icon { background-image: inherit; } .elfinder-cwd-view-list .elfinder-navbar-root-local td .elfinder-cwd-icon:before, .elfinder-navbar-root-local .elfinder-cwd-icon:before, .elfinder-cwd-view-list .elfinder-navbar-root-ftp td .elfinder-cwd-icon:before, .elfinder-navbar-root-ftp .elfinder-cwd-icon:before, .elfinder-cwd-view-list .elfinder-navbar-root-sql td .elfinder-cwd-icon:before, .elfinder-navbar-root-sql .elfinder-cwd-icon:before, .elfinder-cwd-view-list .elfinder-navbar-root-dropbox td .elfinder-cwd-icon:before, .elfinder-navbar-root-dropbox .elfinder-cwd-icon:before, .elfinder-cwd-view-list .elfinder-navbar-root-googledrive td .elfinder-cwd-icon:before, .elfinder-navbar-root-googledrive .elfinder-cwd-icon:before, .elfinder-cwd-view-list .elfinder-navbar-root-onedrive td .elfinder-cwd-icon:before, .elfinder-navbar-root-onedrive .elfinder-cwd-icon:before, .elfinder-cwd-view-list .elfinder-navbar-root-box td .elfinder-cwd-icon:before, .elfinder-navbar-root-box .elfinder-cwd-icon:before, .elfinder-cwd-view-list .elfinder-navbar-root-trash td .elfinder-cwd-icon:before, .elfinder-navbar-root-trash .elfinder-cwd-icon:before, .elfinder-cwd-view-list .elfinder-navbar-root-zip td .elfinder-cwd-icon:before, .elfinder-navbar-root-zip .elfinder-cwd-icon:before, .elfinder-cwd-view-list .elfinder-navbar-root-network td .elfinder-cwd-icon:before, .elfinder-navbar-root-network .elfinder-cwd-icon:before { font-family: material; background-color: transparent; color: #525252; font-size: 55px; position: relative; top: -10px !important; padding: 0; display: contents !important; } .elfinder-cwd-view-list .elfinder-navbar-root-local td .elfinder-cwd-icon:before, .elfinder-navbar-root-local .elfinder-cwd-icon:before { content: '\e83d'; } .elfinder-cwd-view-list .elfinder-navbar-root-ftp td .elfinder-cwd-icon:before, .elfinder-navbar-root-ftp .elfinder-cwd-icon:before { content: '\e823'; } .elfinder-cwd-view-list .elfinder-navbar-root-sql td .elfinder-cwd-icon:before, .elfinder-navbar-root-sql .elfinder-cwd-icon:before { content: '\e83e'; } .elfinder-cwd-view-list .elfinder-navbar-roor-dropbox td .elfinder-cwd-icon:before, .elfinder-navbar-roor-dropbox .elfinder-cwd-icon:before { content: '\e83f'; } .elfinder-cwd-view-list .elfinder-navbar-roor-googledrive td .elfinder-cwd-icon:before, .elfinder-navbar-roor-googledrive .elfinder-cwd-icon:before { content: '\e840'; } .elfinder-cwd-view-list .elfinder-navbar-roor-onedrive td .elfinder-cwd-icon:before, .elfinder-navbar-roor-onedrive .elfinder-cwd-icon:before { content: '\e841'; } .elfinder-cwd-view-list .elfinder-navbar-roor-box td .elfinder-cwd-icon:before, .elfinder-navbar-roor-box .elfinder-cwd-icon:before { content: '\e842'; } .elfinder-cwd-view-list .elfinder-navbar-root-trash td .elfinder-cwd-icon:before, .elfinder-navbar-root-trash .elfinder-cwd-icon:before { content: '\e80b'; left: 0 !important; } .elfinder-cwd-view-list .elfinder-navbar-root-zip td .elfinder-cwd-icon:before, .elfinder-navbar-root-zip .elfinder-cwd-icon:before { content: '\e85c'; } .elfinder-cwd-view-list .elfinder-navbar-root-network td .elfinder-cwd-icon:before, .elfinder-navbar-root-network .elfinder-cwd-icon:before { content: '\e823'; } .elfinder-dialog-icon { font: normal normal normal 14px/1 material; background: inherit; color: #524949; font-size: 37px; } .elfinder-dialog-icon:before { content: '\e843'; } .elfinder-dialog-icon-mkdir:before { content: '\e808'; } .elfinder-dialog-icon-mkfile:before { content: '\e809'; } .elfinder-dialog-icon-copy:before { content: '\e80d'; } .elfinder-dialog-icon-prepare:before, .elfinder-dialog-icon-move:before { content: '\e844'; } .elfinder-dialog-icon-upload:before, .elfinder-dialog-icon-chunkmerge:before { content: '\e815'; } .elfinder-dialog-icon-rm:before { content: '\e80a'; } .elfinder-dialog-icon-open:before, .elfinder-dialog-icon-readdir:before, .elfinder-dialog-icon-file:before { content: '\e807'; } .elfinder-dialog-icon-reload:before { content: '\e806'; } .elfinder-dialog-icon-download:before { content: '\e816'; } .elfinder-dialog-icon-save:before { content: '\e845'; } .elfinder-dialog-icon-rename:before { content: '\e812'; } .elfinder-dialog-icon-zipdl:before, .elfinder-dialog-icon-archive:before { content: '\e819'; } .elfinder-dialog-icon-extract:before { content: '\e818'; } .elfinder-dialog-icon-search:before { content: '\e81f'; } .elfinder-dialog-icon-loadimg:before { content: '\e846'; } .elfinder-dialog-icon-url:before { content: '\e81e'; } .elfinder-dialog-icon-resize:before { content: '\e81d'; } .elfinder-dialog-icon-netmount:before { content: '\e823'; } .elfinder-dialog-icon-netunmount:before { content: '\e824'; } .elfinder-dialog-icon-chmod:before { content: '\e826'; } .elfinder-dialog-icon-preupload:before, .elfinder-dialog-icon-dim:before { content: '\e847'; } .elfinder-contextmenu .elfinder-contextmenu-item span.elfinder-contextmenu-icon { font-size: 16px; } .elfinder-contextmenu .elfinder-contextmenu-item .elfinder-contextsubmenu-item .ui-icon { font-size: 15px; } .elfinder-contextmenu .elfinder-contextmenu-item .elfinder-button-icon-link:before { content: '\e837'; } .elfinder .elfinder-contextmenu-extra-icon { margin-top: -6px; } .elfinder .elfinder-contextmenu-extra-icon a { padding: 5px; margin: -16px; } .elfinder-button-icon-link:before { content: '\e81e' !important; } .elfinder .elfinder-contextmenu-arrow { font: normal normal normal 14px/1 material; background-image: inherit; font-size: 10px !important; padding-top: 3px; } .elfinder .elfinder-contextmenu-arrow:before { content: '\e857'; } .elfinder-contextmenu .ui-state-hover .elfinder-contextmenu-arrow { background-image: inherit; } .elfinder-quicklook .ui-resizable-se { background: inherit; } .elfinder-quicklook-navbar-icon { background: transparent; font: normal normal normal 14px/1 material; font-size: 24px; width: 24px; height: 24px; color: #fff; } .elfinder-quicklook-titlebar-icon { margin-top: -8px; } .elfinder-quicklook-titlebar-icon .ui-icon { border: 0; opacity: 0.8; font-size: 15px; padding: 1px; } .elfinder-quicklook-titlebar .ui-icon-circle-close, .elfinder-quicklook .ui-icon-gripsmall-diagonal-se { color: #f1f1f1; } .elfinder-quicklook-navbar-icon-prev:before { content: '\e848'; } .elfinder-quicklook-navbar-icon-next:before { content: '\e849'; } .elfinder-quicklook-navbar-icon-fullscreen:before { content: '\e84a'; } .elfinder-quicklook-navbar-icon-fullscreen-off:before { content: '\e84b'; } .elfinder-quicklook-navbar-icon-close:before { content: '\e84c'; } .elfinder .ui-button-icon { background-image: inherit; } .elfinder .ui-icon-search:before { content: '\e81f'; } .elfinder .ui-icon-closethick:before, .elfinder .ui-icon-close:before { content: '\e839'; } .elfinder .ui-icon-circle-close:before { content: '\e84c'; } .elfinder .ui-icon-gear:before { content: '\e82f'; } .elfinder .ui-icon-gripsmall-diagonal-se:before { content: '\e838'; } .elfinder .ui-icon-locked:before { content: '\e834'; } .elfinder .ui-icon-unlocked:before { content: '\e836'; } .elfinder .ui-icon-arrowrefresh-1-n:before { content: '\e821'; } .elfinder .ui-icon-plusthick:before { content: '\e83a'; } .elfinder .ui-icon-arrowreturnthick-1-s:before { content: '\e83b'; } .elfinder .ui-icon-minusthick:before { content: '\e83c'; } .elfinder .ui-icon-pin-s:before { content: '\e84d'; } .elfinder .ui-icon-check:before { content: '\e84e'; } .elfinder .ui-icon-arrowthick-1-s:before { content: '\e84f'; } .elfinder .ui-icon-arrowthick-1-n:before { content: '\e850'; } .elfinder .ui-icon-triangle-1-s:before { content: '\e851'; } .elfinder .ui-icon-triangle-1-n:before { content: '\e852'; } .elfinder .ui-icon-grip-dotted-vertical:before { content: '\e853'; } .elfinder-lock, .elfinder-perms, .elfinder-symlink { background-image: inherit; font: normal normal normal 18px/1 material; color: #d8d8d8; } .elfinder-na .elfinder-perms:before { content: '\e824'; } .elfinder-ro .elfinder-perms:before { content: '\e835'; } .elfinder-wo .elfinder-perms:before { content: '\e854'; } .elfinder-group .elfinder-perms:before { content: '\e800'; } .elfinder-lock:before { content: '\e84d'; } .elfinder-symlink:before { content: '\e837'; } .elfinder .elfinder-toast > div { font: normal normal normal 14px/1 material; } .elfinder .elfinder-toast > div:before { font-size: 45px; position: absolute; left: 5px; top: 15px; } .elfinder .elfinder-toast > .toast-info, .elfinder .elfinder-toast > .toast-error, .elfinder .elfinder-toast > .toast-success, .elfinder .elfinder-toast > .toast-warning { background-image: inherit !important; } .elfinder .elfinder-toast > .toast-info:before { content: '\e817'; color: #3498db; } .elfinder .elfinder-toast > .toast-error:before { content: '\e855'; color: #f44336; } .elfinder .elfinder-toast > .toast-success:before { content: '\e84e'; color: #4caf50; } .elfinder .elfinder-toast > .toast-warning:before { content: '\e856'; color: #ff9800; } .elfinder-drag-helper-icon-status { font: normal normal normal 14px/1 material; background: inherit; } .elfinder-drag-helper-icon-status:before { content: '\e824'; } .elfinder-drag-helper-move .elfinder-drag-helper-icon-status { -webkit-transform: rotate(180deg); transform: rotate(180deg); } .elfinder-drag-helper-move .elfinder-drag-helper-icon-status:before { content: '\e854'; } .elfinder-drag-helper-plus .elfinder-drag-helper-icon-status { -webkit-transform: rotate(90deg); transform: rotate(90deg); } .elfinder-drag-helper-plus .elfinder-drag-helper-icon-status:before { content: '\e84c'; } /** * MIME Types */ .elfinder-cwd-view-list td .elfinder-cwd-icon { background-image: url("../../material/images/icons-small.svg"); } .elfinder-cwd-icon { background: url("../../material/images/icons-big.svg") 0 0 no-repeat; border-radius: 0; } .elfinder-cwd-icon:before { font-size: 10px; position: relative; top: 27px; left: inherit; padding: 1px; background-color: transparent; } .elfinder-cwd-icon-directory { background-position: 0 -50px; } .elfinder-cwd .elfinder-droppable-active .elfinder-cwd-icon { background-position: 0 -100px; } .elfinder-cwd-icon-group { background-position: 0 -150px; } .elfinder-cwd-icon-application { background-position: 0 -200px; } .elfinder-cwd-icon-rtf, .elfinder-cwd-icon-rtfd, .elfinder-cwd-icon-text { background-position: 0 -250px; } .elfinder-cwd-icon-image { background-position: 0 -300px; } .elfinder-cwd-icon-audio { background-position: 0 -350px; } .elfinder-cwd-icon-video, .elfinder-cwd-icon-flash-video, .elfinder-cwd-icon-dash-xml, .elfinder-cwd-icon-vnd-apple-mpegurl, .elfinder-cwd-icon-x-mpegurl { background-position: 0 -400px; } .elfinder-cwd-icon-plain, .elfinder-cwd-icon-x-empty { background-position: 0 -450px; } .elfinder-cwd-icon-pdf { background-position: 0 -500px; } .elfinder-cwd-icon-vnd-ms-office { background-position: 0 -550px; } .elfinder-cwd-icon-x-msaccess { background-position: 0 -600px; } .elfinder-cwd-icon-x-msaccess:before { content: none !important; } .elfinder-cwd-icon-ms-excel, .elfinder-cwd-icon-vnd-ms-excel, .elfinder-cwd-icon-vnd-ms-excel-addin-macroEnabled-12, .elfinder-cwd-icon-vnd-ms-excel-sheet-binary-macroEnabled-12, .elfinder-cwd-icon-vnd-ms-excel-sheet-macroEnabled-12, .elfinder-cwd-icon-vnd-ms-excel-template-macroEnabled-12 { background-position: 0 -650px; } .elfinder-cwd-icon-ms-excel:before, .elfinder-cwd-icon-vnd-ms-excel:before, .elfinder-cwd-icon-vnd-ms-excel-addin-macroEnabled-12:before, .elfinder-cwd-icon-vnd-ms-excel-sheet-binary-macroEnabled-12:before, .elfinder-cwd-icon-vnd-ms-excel-sheet-macroEnabled-12:before, .elfinder-cwd-icon-vnd-ms-excel-template-macroEnabled-12:before { content: none !important; } .elfinder-cwd-icon-vnd-ms-powerpoint, .elfinder-cwd-icon-vnd-ms-powerpoint-addin-macroEnabled-12, .elfinder-cwd-icon-vnd-ms-powerpoint-presentation-macroEnabled-12, .elfinder-cwd-icon-vnd-ms-powerpoint-slide-macroEnabled-12, .elfinder-cwd-icon-vnd-ms-powerpoint-slideshow-macroEnabled-12, .elfinder-cwd-icon-vnd-ms-powerpoint-template-macroEnabled-12 { background-position: 0 -700px; } .elfinder-cwd-icon-vnd-ms-powerpoint:before, .elfinder-cwd-icon-vnd-ms-powerpoint-addin-macroEnabled-12:before, .elfinder-cwd-icon-vnd-ms-powerpoint-presentation-macroEnabled-12:before, .elfinder-cwd-icon-vnd-ms-powerpoint-slide-macroEnabled-12:before, .elfinder-cwd-icon-vnd-ms-powerpoint-slideshow-macroEnabled-12:before, .elfinder-cwd-icon-vnd-ms-powerpoint-template-macroEnabled-12:before { content: none !important; } .elfinder-cwd-icon-msword, .elfinder-cwd-icon-vnd-ms-word, .elfinder-cwd-icon-vnd-ms-word-document-macroEnabled-12, .elfinder-cwd-icon-vnd-ms-word-template-macroEnabled-12 { background-position: 0 -750px; } .elfinder-cwd-icon-msword:before, .elfinder-cwd-icon-vnd-ms-word:before, .elfinder-cwd-icon-vnd-ms-word-document-macroEnabled-12:before, .elfinder-cwd-icon-vnd-ms-word-template-macroEnabled-12:before { content: none !important; } .elfinder-cwd-icon-vnd-oasis-opendocument-base, .elfinder-cwd-icon-vnd-oasis-opendocument-chart, .elfinder-cwd-icon-vnd-oasis-opendocument-database, .elfinder-cwd-icon-vnd-oasis-opendocument-formula, .elfinder-cwd-icon-vnd-oasis-opendocument-graphics, .elfinder-cwd-icon-vnd-oasis-opendocument-graphics-template, .elfinder-cwd-icon-vnd-oasis-opendocument-image, .elfinder-cwd-icon-vnd-openofficeorg-extension { background-position: 0 -800px; } .elfinder-cwd-icon-vnd-oasis-opendocument-spreadsheet, .elfinder-cwd-icon-vnd-oasis-opendocument-spreadsheet-template, .elfinder-cwd-icon-vnd-openxmlformats-officedocument-spreadsheetml-sheet, .elfinder-cwd-icon-vnd-openxmlformats-officedocument-spreadsheetml-template { background-position: 0 -850px; } .elfinder-cwd-icon-vnd-oasis-opendocument-presentation, .elfinder-cwd-icon-vnd-oasis-opendocument-presentation-template, .elfinder-cwd-icon-vnd-openxmlformats-officedocument-presentationml-presentation, .elfinder-cwd-icon-vnd-openxmlformats-officedocument-presentationml-slide, .elfinder-cwd-icon-vnd-openxmlformats-officedocument-presentationml-slideshow, .elfinder-cwd-icon-vnd-openxmlformats-officedocument-presentationml-template { background-position: 0 -900px; } .elfinder-cwd-icon-vnd-oasis-opendocument-text, .elfinder-cwd-icon-vnd-oasis-opendocument-text-master, .elfinder-cwd-icon-vnd-oasis-opendocument-text-template, .elfinder-cwd-icon-vnd-oasis-opendocument-text-web, .elfinder-cwd-icon-vnd-openxmlformats-officedocument-wordprocessingml-document, .elfinder-cwd-icon-vnd-openxmlformats-officedocument-wordprocessingml-template { background-position: 0 -950px; } .elfinder-cwd-icon-zip, .elfinder-cwd-icon-x-zip, .elfinder-cwd-icon-x-xz, .elfinder-cwd-icon-x-7z-compressed, .elfinder-cwd-icon-x-gzip, .elfinder-cwd-icon-x-tar, .elfinder-cwd-icon-x-bzip, .elfinder-cwd-icon-x-bzip2, .elfinder-cwd-icon-x-rar, .elfinder-cwd-icon-x-rar-compressed { background-position: 0 -1000px; } .elfinder-cwd-icon-postscript { background-position: 0 -1050px; } .elfinder-cwd-icon-vnd-adobe-photoshop { background-position: 0 -1100px; } .elfinder-cwd-icon-vnd-adobe-photoshop:before { content: none !important; } .elfinder-cwd-icon-x-shockwave-flash { background-position: 0 -1150px; } .elfinder-cwd-icon-vnd-android-package-archive { background-position: 0 -1200px; } .elfinder-cwd-icon-vnd-android-package-archive:before { content: none !important; } .elfinder-cwd-icon-x-c, .elfinder-cwd-icon-x-csrc, .elfinder-cwd-icon-x-chdr, .elfinder-cwd-icon-x-c--, .elfinder-cwd-icon-x-c--src, .elfinder-cwd-icon-x-c--hdr { background-position: 0 -1250px; } .elfinder-cwd-icon-css { background-position: 0 -1300px; } .elfinder-cwd-icon-html { background-position: 0 -1350px; } .elfinder-cwd-icon-x-jar, .elfinder-cwd-icon-x-java, .elfinder-cwd-icon-x-java-source { background-position: 0 -1400px; } .elfinder-cwd-icon-x-jar:before, .elfinder-cwd-icon-x-java:before, .elfinder-cwd-icon-x-java-source:before { content: none !important; } .elfinder-cwd-icon-javascript, .elfinder-cwd-icon-x-javascript { background-position: 0 -1450px; } .elfinder-cwd-icon-json { background-position: 0 -1500px; } .elfinder-cwd-icon-json:before { content: none !important; } .elfinder-cwd-icon-markdown, .elfinder-cwd-icon-x-markdown { background-position: 0 -1550px; } .elfinder-cwd-icon-markdown:before, .elfinder-cwd-icon-x-markdown:before { content: none !important; } .elfinder-cwd-icon-x-perl { background-position: 0 -1600px; } .elfinder-cwd-icon-x-php { background-position: 0 -1650px; } .elfinder-cwd-icon-x-python:after, .elfinder-cwd-icon-x-python { background-position: 0 -1700px; } .elfinder-cwd-icon-x-ruby { background-position: 0 -1750px; } .elfinder-cwd-icon-x-sh, .elfinder-cwd-icon-x-shellscript { background-position: 0 -1800px; } .elfinder-cwd-icon-sql, .elfinder-cwd-icon-x-sql, .elfinder-cwd-icon-x-sqlite3 { background-position: 0 -1850px; } .elfinder-cwd-icon-x-eps, .elfinder-cwd-icon-svg, .elfinder-cwd-icon-svg-xml { background-position: 0 -1900px; } .elfinder-cwd-icon-xml:after, .elfinder-cwd-icon-xml { background-position: 0 -1950px; } .elfinder-cwd-icon-zip:before, .elfinder-cwd-icon-x-zip:before { content: 'zip' !important; } .elfinder-cwd-icon-x-xz:before { content: 'xz' !important; } .elfinder-cwd-icon-x-7z-compressed:before { content: '7z' !important; } .elfinder-cwd-icon-x-gzip:before { content: 'gzip' !important; } .elfinder-cwd-icon-x-tar:before { content: 'tar' !important; } .elfinder-cwd-icon-x-bzip:before, .elfinder-cwd-icon-x-bzip2:before { content: 'bzip' !important; } .elfinder-cwd-icon-x-rar:before, .elfinder-cwd-icon-x-rar-compressed:before { content: 'rar' !important; } /** * Toolbar */ .elfinder-toolbar { background: #061325; border-radius: 0; border: 0; padding: 5px 0; } .elfinder-toolbar .elfinder-button-icon { font-size: 20px; color: #ddd; margin-top: -2px; } .elfinder-buttonset { border-radius: 0; border: 0; margin: 0 5px; height: 24px; } .elfinder .elfinder-button { background: transparent; border-radius: 0; cursor: pointer; color: #efefef; } .elfinder .elfinder-button-text { top: -3px; margin-left: 6px; } .elfinder-toolbar-button-separator { border: 0; } .elfinder-button-menu { border-radius: 2px; box-shadow: 0 1px 6px rgba(0, 0, 0, 0.3); border: none; margin-top: 5px; } .elfinder-button-menu-item { color: #666; padding: 6px 19px; } .elfinder-button-menu-item.ui-state-hover { color: #141414; background-color: #f5f4f4; } .elfinder-button-menu-item-separated { border-top: 1px solid #e5e5e5; } .elfinder-button-menu-item-separated.ui-state-hover { border-top: 1px solid #e5e5e5; } .elfinder .elfinder-button-search { margin: 0 10px; min-height: inherit; overflow: hidden; } .elfinder .elfinder-button-search .ui-icon { color: #fff !important; } .elfinder .elfinder-button-search input { background: rgba(22, 43, 76, 0.75); border-radius: 2px; box-sizing: content-box; border: 0; margin: 0; padding: 0 23px; height: 24px !important; color: #fff; } .elfinder .elfinder-button-search .elfinder-button-menu { margin-top: 4px; border: none; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.5); } .elfinder .elfinder-button-search-menu { border-radius: 0; top: 30px !important; } .elfinder .elfinder-button-search-menu .ui-button { padding: 0.4em 1em !important; } /** * Navbar */ .elfinder .elfinder-navbar { background: #2a384d; box-shadow: 0 1px 8px rgba(0, 0, 0, 0.6); border: none; } .elfinder .elfinder-navbar .elfinder-lock, .elfinder .elfinder-navbar .elfinder-perms, .elfinder .elfinder-navbar .elfinder-symlink { color: #000; opacity: 0.8; } .elfinder-navbar-dir { color: #e6e6e6; cursor: pointer; border-radius: 2px; padding: 5px; border: none; } .elfinder-navbar-dir .elfinder-navbar-icon { color: #fff; } .elfinder-navbar-dir.ui-state-hover, .elfinder-navbar-dir.ui-state-active.ui-state-hover { background: #17202c; color: #e6e6e6; border: none; } .elfinder-navbar-dir.ui-state-hover, .elfinder-navbar-dir.ui-state-active.ui-state-hover { background: #4a6187; } .elfinder-navbar-dir.ui-state-hover .elfinder-navbar-icon, .elfinder-navbar-dir.ui-state-active.ui-state-hover .elfinder-navbar-icon { color: #fff; } .elfinder-navbar .ui-state-active, .elfinder-disabled .elfinder-navbar .ui-state-active { background: #1b2533; color: #e8e8e8 !important; border: none; } .elfinder-navbar .ui-state-active.elfinder-navbar-dir .elfinder-navbar-icon, .elfinder-disabled .elfinder-navbar .ui-state-active.elfinder-navbar-dir .elfinder-navbar-icon { color: #e8e8e8 !important; } /** * Workzone */ .elfinder-workzone { background: #0e1827; } .elfinder-cwd-file { color: #ddd; } .elfinder-cwd-file.ui-state-hover, .elfinder-cwd-file.ui-selected.ui-state-hover { background: #1a283c; color: #ddd; } .elfinder-cwd-file.ui-selected { background: #152131; color: #ddd; } .elfinder-cwd-filename input, .elfinder-cwd-filename textarea { padding: 2px; border-radius: 2px !important; background: #fff; color: #222; } .elfinder-cwd-filename input:focus, .elfinder-cwd-filename textarea:focus { outline: none; border: 1px solid #555; } .elfinder-cwd-view-icons .elfinder-cwd-file .ui-state-hover, .elfinder-cwd-view-icons .elfinder-cwd-file .elfinder-cwd-filename.ui-state-hover, .elfinder-disabled .elfinder-cwd-view-icons .elfinder-cwd-file .elfinder-cwd-filename.ui-state-hover, .elfinder-disabled .elfinder-cwd table td.ui-state-hover, .elfinder-cwd-view-icons .elfinder-cwd-file .ui-state-active { background: transparent; color: #ddd; } .elfinder-cwd table { padding: 0; } .elfinder-cwd table thead td { padding: 5px 14px !important; } .elfinder-cwd table tr { border: 0 !important; } .elfinder-cwd table tr.ui-state-default, .elfinder-cwd table tr.ui-widget-content .ui-state-default { background: none; } .elfinder-cwd table tr .ui-state-hover { background: #1a283c; color: #ddd; } .elfinder-cwd.elfinder-table-header-sticky table { border: 0; } .elfinder-cwd .elfinder-lock, .elfinder-cwd .elfinder-perms, .elfinder-cwd .elfinder-symlink { color: #d8d8d8; } .elfinder-cwd-view-icons .elfinder-lock { top: 0; } .elfinder-cwd-view-list thead td .ui-resizable-handle { top: 5px; } .elfinder-cwd-view-list .elfinder-lock, .elfinder-cwd-view-list .elfinder-perms, .elfinder-cwd-view-list .elfinder-symlink { font-size: 14px; opacity: 0.7; } .elfinder-cwd-view-list .elfinder-perms { left: inherit; } #elfinder-elfinder-cwd-thead td, .elfinder-cwd-wrapper-empty .elfinder-cwd-view-list td { background: #010e21; color: #ddd !important; height: 18px; } #elfinder-elfinder-cwd-thead td.ui-state-hover, .elfinder-cwd-wrapper-empty .elfinder-cwd-view-list td.ui-state-hover, #elfinder-elfinder-cwd-thead td.ui-state-active, .elfinder-cwd-wrapper-empty .elfinder-cwd-view-list td.ui-state-active { background: #000308 !important; } #elfinder-elfinder-cwd-thead td.ui-state-active.ui-state-hover, .elfinder-cwd-wrapper-empty .elfinder-cwd-view-list td.ui-state-active.ui-state-hover { background: #010812 !important; } .elfinder .ui-selectable-helper { border: 1px solid #022861; background-color: rgba(3, 62, 150, 0.38); } .elfinder-cwd-wrapper.elfinder-cwd-wrapper-trash { background-color: #e4e4e4; } .elfinder-cwd-wrapper.elfinder-cwd-wrapper-trash .elfinder-cwd-file { color: #333; } .elfinder-cwd-wrapper.elfinder-cwd-wrapper-trash .elfinder-cwd-file.ui-state-hover, .elfinder-cwd-wrapper.elfinder-cwd-wrapper-trash .elfinder-cwd-file.ui-selected.ui-state-hover { background: #1a283c; color: #ddd; } .elfinder-cwd-wrapper.elfinder-cwd-wrapper-trash .elfinder-cwd-file.ui-selected { background: #152131; color: #ddd; } .elfinder-info-title .elfinder-cwd-icon:before { top: 32px; display: block; margin: 0 auto; } .elfinder-info-title .elfinder-cwd-icon.elfinder-cwd-bgurl:before { background-color: #313131 !important; } .elfinder-cwd-view-icons .elfinder-cwd-icon.elfinder-cwd-bgurl:before { left: inherit; background-color: #313131; } .elfinder-cwd-icon:before, .elfinder-quicklook .elfinder-cwd-icon:before, .elfinder-cwd-size1 .elfinder-cwd-icon:before, .elfinder-cwd-size2 .elfinder-cwd-icon:before, .elfinder-cwd-size3 .elfinder-cwd-icon:before, .elfinder-cwd-size1 .elfinder-cwd-icon.elfinder-cwd-bgurl:before, .elfinder-cwd-size2 .elfinder-cwd-icon.elfinder-cwd-bgurl:before, .elfinder-cwd-size3 .elfinder-cwd-icon.elfinder-cwd-bgurl:before { top: 35px; left: 50% !important; position: relative !important; display: block !important; -webkit-transform: translateX(-50%); transform: translateX(-50%); max-width: 52px; color: #fff; } .elfinder .elfinder-cwd-view-icons .elfinder-cwd-bgurl:after, .elfinder .elfinder-quicklook-info-wrapper .elfinder-cwd-bgurl:after { display: none; } .elfinder-cwd-size1 .elfinder-cwd-icon.elfinder-cwd-bgurl:before { top: 53px; -webkit-transform: scale(1.32) translateX(-50%); transform: scale(1.32) translateX(-50%); } .elfinder-cwd-size2 .elfinder-cwd-icon.elfinder-cwd-bgurl:before { top: 74px; -webkit-transform: scale(1.53) translateX(-50%); transform: scale(1.53) translateX(-50%); } .elfinder-cwd-size3 .elfinder-cwd-icon.elfinder-cwd-bgurl:before { top: 87px; -webkit-transform: scale(2.22) translateX(-50%); transform: scale(2.22) translateX(-50%); } /** * Status Bar */ .elfinder .elfinder-statusbar { background: #061325; border-radius: 0; border: 0; color: #cfd2d4; padding-top: 5px; } .elfinder-path, .elfinder-stat-size { margin: 0 15px; } /** * Input & Select */ .elfinder input, .elfinder select { padding: 4px; color: #666; background: #fff; border-radius: 3px; font-weight: normal; border-color: #888; box-shadow: none !important; } .elfinder input.ui-state-hover, .elfinder select.ui-state-hover { background: #fff !important; color: #666 !important; } .elfinder input[type="checkbox"] { position: relative; height: initial; } .elfinder input[type="checkbox"]:after, .elfinder input[type="checkbox"]:focus:after { content: ""; display: block; width: 12px; height: 12px; border: 1px solid #707070; background-color: #fff; border-radius: 2px; } .elfinder input[type="checkbox"]:checked:before { content: ""; position: absolute; top: -3px; left: 6px; display: table; width: 4px; height: 12px; border: 2px solid #707070; border-top-width: 0; border-left-width: 0; -webkit-transform: rotate(45deg); transform: rotate(45deg); } /** * Buttons */ .elfinder .ui-button, .elfinder .ui-button:active, .elfinder .ui-button.ui-state-default { display: inline-block; font-weight: normal; text-align: center; vertical-align: middle; cursor: pointer; white-space: nowrap; border-radius: 3px; text-transform: uppercase; box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.4) !important; transition: all 0.4s; background: #fff; color: #222; border: none; padding: 7px 6px; } .elfinder .ui-button .ui-icon, .elfinder .ui-button:active .ui-icon, .elfinder .ui-button.ui-state-default .ui-icon { color: #222; } .elfinder .ui-button:hover, .elfinder a.ui-button:active, .elfinder .ui-button:active, .elfinder .ui-button:focus, .elfinder .ui-button.ui-state-hover, .elfinder .ui-button.ui-state-active { background: #3498db !important; color: #fff !important; border: none; } .elfinder .ui-button:hover .ui-icon, .elfinder a.ui-button:active .ui-icon, .elfinder .ui-button:active .ui-icon, .elfinder .ui-button:focus .ui-icon, .elfinder .ui-button.ui-state-hover .ui-icon, .elfinder .ui-button.ui-state-active .ui-icon { color: #fff; } .elfinder .ui-button.ui-state-active:hover { background: #217dbb; color: #fff; border: none; } .elfinder .ui-button:focus { outline: none !important; } .elfinder .ui-controlgroup-horizontal .ui-button { border-radius: 0; border: 0; } .elfinder input:not([type="checkbox"]), .elfinder .elfinder-resize-preset-container .ui-button { height: 21px; } /** * Context Menu */ .elfinder .elfinder-contextmenu, .elfinder .elfinder-contextmenu-sub { border-radius: 2px; box-shadow: 0 1px 6px rgba(0, 0, 0, 0.3); border: none; } .elfinder .elfinder-contextmenu-separator, .elfinder .elfinder-contextmenu-sub-separator { border-top: 1px solid #e5e5e5; } .elfinder .elfinder-contextmenu-item { color: #666; padding: 5px 30px; } .elfinder .elfinder-contextmenu-item.ui-state-hover { background-color: #f5f4f4; color: #141414; } .elfinder .elfinder-contextmenu-item.ui-state-active { background-color: #2196f3; color: #fff; } /** * Dialogs */ .elfinder .elfinder-dialog { border-radius: 0; border: 0; box-shadow: 0 1px 30px rgba(0, 0, 0, 0.6); } .elfinder .elfinder-dialog .ui-dialog-content[id*="edit-elfinder-elfinder-"] { padding: 0; } .elfinder .elfinder-dialog .ui-tabs { border-radius: 0; border: 0; padding: 0; } .elfinder .elfinder-dialog .ui-tabs-nav { border-radius: 0; border: 0; background: transparent; border-bottom: 1px solid #ddd; } .elfinder .elfinder-dialog .ui-tabs-nav li { border: 0; font-weight: normal; background: transparent; margin: 0; padding: 0; } .elfinder .elfinder-dialog .ui-tabs-nav li a { padding: 7px 9px; } .elfinder .elfinder-dialog .ui-tabs-nav .ui-tabs-selected a, .elfinder .elfinder-dialog .ui-tabs-nav .ui-state-active a, .elfinder .elfinder-dialog .ui-tabs-nav li:hover a { box-shadow: inset 0 -2px 0 #3498db; color: #3498db; } .elfinder .elfinder-dialog .ui-tabs .elfinder-tabstop.ui-state-hover { background: transparent; box-shadow: inset 0 -2px 0 #3498db; color: #3498db; } .elfinder .elfinder-dialog label.ui-state-hover { background: transparent; } .elfinder .elfinder-dialog .ui-resizable-se { display: none; } .std42-dialog .ui-dialog-titlebar { background: #0f1f2f; border-radius: 0; border: 0; } .std42-dialog .ui-dialog-titlebar .elfinder-titlebar-button .ui-icon { border-color: inherit; transition: 0.2s ease-out; opacity: 0.8; color: #fff; width: auto; height: auto; font-size: 12px; padding: 3px; } .std42-dialog, .std42-dialog .ui-dialog-content, .std42-dialog.elfinder-bg-translucent, .std42-dialog.elfinder-bg-translucent .ui-widget-content { background-color: #fff; } .std42-dialog .ui-dialog-buttonpane button { margin: -1px 2px 2px; padding: 7px 6px; } .std42-dialog .ui-dialog-buttonpane button span.ui-icon { padding: 0; } .std42-dialog .ui-dialog-buttonpane .ui-dialog-buttonset.elfinder-edit-extras select { margin-top: 0; } .std42-dialog, .std42-dialog .ui-widget-content { background-color: #fff; } .elfinder-mobile .std42-dialog .ui-dialog-titlebar .ui-dialog-titlebar-close .ui-icon, .std42-dialog .ui-dialog-titlebar .ui-dialog-titlebar-close:hover .ui-icon { background-color: #f44336; } .elfinder-mobile .std42-dialog .ui-dialog-titlebar .elfinder-titlebar-full .ui-icon, .std42-dialog .ui-dialog-titlebar .elfinder-titlebar-full:hover .ui-icon { background-color: #4caf50; } .elfinder-mobile .std42-dialog .ui-dialog-titlebar .elfinder-titlebar-minimize .ui-icon, .std42-dialog .ui-dialog-titlebar .elfinder-titlebar-minimize:hover .ui-icon { background-color: #ff9800; } .elfinder-dialog-title { color: #f1f1f1; } .elfinder .ui-widget-content { font-family: -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif; color: #546e7a; } .elfinder-upload-dialog-wrapper .elfinder-upload-dirselect { width: inherit; height: inherit; padding: 7px; margin-left: 5px; color: #222; box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.4); background: #fff; bottom: 4px; border-radius: 2px; } .elfinder-upload-dialog-wrapper .elfinder-upload-dirselect.ui-state-hover { background: #3498db !important; color: #fff !important; outline: none; } .elfinder-upload-dialog-wrapper .ui-button { padding: 0.4em 3px; margin: 0 -15px 0 19px; } .elfinder-upload-dropbox { border: 2px dashed #bbb; } .elfinder-upload-dropbox:focus { outline: none; } .elfinder-upload-dropbox.ui-state-hover { background: #f1f1f1; border: 2px dashed #bbb; } .elfinder-dialog-resize .elfinder-resize-control-panel { margin-left: -5px; } .elfinder-dialog-resize .elfinder-resize-control-panel .ui-button { height: inherit; margin-bottom: 5px; } .elfinder-help * { color: #546e7a; } .elfinder-help a { color: #3498db; } .elfinder-help a:hover { color: #217dbb; } .elfinder .ui-slider.ui-slider-horizontal { height: 2px; border: 0; background-color: #bababa !important; } .elfinder .ui-slider .ui-slider-handle { background-image: none; background-color: #5d5858; border-radius: 50%; border: 0; margin-top: -3px; } .elfinder .ui-slider .ui-slider-handle.ui-state-hover { background: #5d5858 !important; box-shadow: none !important; border-radius: 50%; cursor: pointer; } /** * Quick Look */ .elfinder-quicklook { background: #232323; border-radius: 2px; } .elfinder-quicklook-navbar { height: 27px; } .elfinder-quicklook-titlebar { background: inherit; } .elfinder-quicklook-titlebar-icon, .elfinder-quicklook-titlebar-icon .ui-icon { background: transparent; color: #fff; } .elfinder-quicklook-fullscreen .elfinder-quicklook-navbar { border: inherit; opacity: inherit; border-radius: 4px; background: rgba(66, 66, 66, 0.73); } .elfinder .elfinder-navdock { border: 0; } .std42-dialog .ui-dialog-titlebar .ui-dialog-titlebar-close:hover .ui-icon, .elfinder-mobile .std42-dialog .ui-dialog-titlebar .ui-dialog-titlebar-close .ui-icon, .elfinder-quicklook-titlebar-icon .ui-icon.elfinder-icon-close:hover, .elfinder-mobile .elfinder-quicklook-titlebar-icon .ui-icon.elfinder-icon-close, .std42-dialog .ui-dialog-titlebar .elfinder-titlebar-minimize:hover .ui-icon, .elfinder-mobile .std42-dialog .ui-dialog-titlebar .elfinder-titlebar-minimize .ui-icon, .elfinder-quicklook-titlebar-icon .ui-icon.elfinder-icon-minimize:hover, .elfinder-mobile .elfinder-quicklook-titlebar-icon .ui-icon.elfinder-icon-minimize, .std42-dialog .ui-dialog-titlebar .elfinder-titlebar-full:hover .ui-icon, .elfinder-mobile .std42-dialog .ui-dialog-titlebar .elfinder-titlebar-full .ui-icon, .elfinder-quicklook-titlebar-icon .ui-icon.elfinder-icon-full:hover, .elfinder-mobile .elfinder-quicklook-titlebar-icon .ui-icon.elfinder-icon-full { background-image: none; } /*! elementor-pro - v4.2.0 - 28-07-2026 */ /******/ (() => { // webpackBootstrap /******/ var __webpack_modules__ = ({ /***/ "../assets/dev/js/editor/element-editor-module.js" /*!********************************************************!*\ !*** ../assets/dev/js/editor/element-editor-module.js ***! \********************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ "../node_modules/core-js/modules/esnext.iterator.constructor.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.find.js */ "../node_modules/core-js/modules/esnext.iterator.find.js"); module.exports = elementorModules.editor.utils.Module.extend({ elementType: null, __construct(elementType) { this.elementType = elementType; this.addEditorListener(); }, updateOptions(name, options) { const controlView = this.getEditorControlView(name); if (controlView) { this.getEditorControlModel(name).set('options', options); controlView.render(); } }, addEditorListener() { var self = this; if (self.onElementChange) { var eventName = 'change'; if ('global' !== self.elementType) { eventName += ':' + self.elementType; } elementor.channels.editor.on(eventName, function (controlView, elementView) { self.onElementChange(controlView.model.get('name'), controlView, elementView); }); } }, /** * Add a spinner to a control inside its control title. * * @param {string} controlName - The control name to add the spinner to. * * @return {void} */ addControlSpinner(controlName) { const $el = this.getEditorControlView(controlName).$el; // Exit if there is a spinner already. if ($el.find('.elementor-control-spinner').length) { return; } const $input = $el.find(':input'); $input.attr('disabled', true); $el.find('.elementor-control-title').after(' '); }, /** * Remove a spinner from a control. * * @param {string} controlName - The control name to remove the spinner from. * * @return {void} */ removeControlSpinner(controlName) { const $controlEl = this.getEditorControlView(controlName).$el; $controlEl.find(':input').attr('disabled', false); $controlEl.find('.elementor-control-spinner').remove(); }, /** * Add an error message under the control. * * @param {string} controlName - The control name to add the error to. * @param {string} error - Set an error message. * @param {string} location - A CSS selector to the element which the error will be appended to. * * @return {void} */ addControlError(controlName, error, location = '.elementor-control-content') { const $el = this.getEditorControlView(controlName).$el; // Remove any existing error in order to override it. if ($el.find('.e-control-error').length) { $el.find('.e-control-error').remove(); } // Select only the first elements to prevent cases where the error is added to many elements. // (usually in repeater controls). $el.find(location).first().after(`${error}`); }, /** * Remove the control error message. * * @param {string} controlName - The control name to add the error to. * * @return {void} */ removeControlError(controlName) { const $el = this.getEditorControlView(controlName).$el; $el.find('.e-control-error').remove(); }, /** * Remove any indicators that are related to the control. (e.g. spinner, error, etc.) * * @param {string} controlName - The control name to reset. * * @return {void} */ resetControlIndicators(controlName) { this.removeControlSpinner(controlName); this.removeControlError(controlName); }, addSectionListener(section, callback) { const self = this; elementor.channels.editor.on('section:activated', function (sectionName, editor) { var model = editor.getOption('editedElementView').getEditModel(), currentElementType = model.get('elType'), _arguments = arguments; if ('widget' === currentElementType) { currentElementType = model.get('widgetType'); } if (self.elementType === currentElementType && section === sectionName) { setTimeout(function () { callback.apply(self, _arguments); }, 10); } }); } }); /***/ }, /***/ "../assets/dev/js/editor/inline-controls-stack.js" /*!********************************************************!*\ !*** ../assets/dev/js/editor/inline-controls-stack.js ***! \********************************************************/ (module) { "use strict"; module.exports = elementorModules.editor.views.ControlsStack.extend({ activeTab: 'content', activeSection: 'settings', initialize() { this.collection = new Backbone.Collection(_.values(this.options.controls)); }, filter(model) { if ('section' === model.get('type')) { return true; } var section = model.get('section'); return !section || section === this.activeSection; }, childViewOptions() { return { elementSettingsModel: this.model }; } }); /***/ }, /***/ "../assets/dev/js/editor/tiers.js" /*!****************************************!*\ !*** ../assets/dev/js/editor/tiers.js ***! \****************************************/ (__unused_webpack_module, exports) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.isTierAtLeast = exports.TIERS_PRIORITY = void 0; // TODO: Read from Core. const TIERS_PRIORITY = exports.TIERS_PRIORITY = Object.freeze(['free', 'essential', 'essential-oct2023', 'advanced', 'expert', 'agency']); const isTierAtLeast = (currentTier, expectedTier) => { const currentTierIndex = TIERS_PRIORITY.indexOf(currentTier); const expectedTierIndex = TIERS_PRIORITY.indexOf(expectedTier); if (-1 === currentTierIndex || -1 === expectedTierIndex) { return false; } return currentTierIndex >= expectedTierIndex; }; exports.isTierAtLeast = isTierAtLeast; /***/ }, /***/ "../assets/dev/js/preview/utils/document-handle.js" /*!*********************************************************!*\ !*** ../assets/dev/js/preview/utils/document-handle.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_CONTEXT = exports.EDIT_CONTEXT = void 0; exports.createElement = createElement; exports["default"] = addDocumentHandle; __webpack_require__(/*! core-js/modules/es.array.includes.js */ "../node_modules/core-js/modules/es.array.includes.js"); __webpack_require__(/*! core-js/modules/es.array.push.js */ "../node_modules/core-js/modules/es.array.push.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ "../node_modules/core-js/modules/esnext.iterator.constructor.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.for-each.js */ "../node_modules/core-js/modules/esnext.iterator.for-each.js"); const EDIT_HANDLE_CLASS_NAME = 'elementor-document-handle'; const EDIT_MODE_CLASS_NAME = 'elementor-edit-mode'; const EDIT_CONTEXT = exports.EDIT_CONTEXT = 'edit'; const SAVE_HANDLE_CLASS_NAME = 'elementor-document-save-back-handle'; const SAVE_CONTEXT = exports.SAVE_CONTEXT = 'save'; /** * @param {Object} handleTarget * @param {HTMLElement} handleTarget.element * @param {string|number} handleTarget.id - Document ID. * @param {string} handleTarget.title * @param {string} context - Edit/Save * @param {Function|null} onCloseDocument - Callback to run when outgoing document is closed. * @param {string} selector */ function addDocumentHandle({ element, id, title = __('Template', 'elementor-pro') }, context = EDIT_CONTEXT, onCloseDocument = null, selector = null) { if (EDIT_CONTEXT === context) { if (!id || !element) { throw Error('`id` and `element` are required.'); } if (isCurrentlyEditing(element) || hasHandle(element)) { return; } } const handleElement = createHandleElement({ title, onClick: () => onDocumentClick(id, context, onCloseDocument, selector) }, context, element); element.prepend(handleElement); if (EDIT_CONTEXT === context) { element.dataset.editableElementorDocument = id; } } /** * @param {HTMLElement} element * * @return {boolean} Whether the element is currently being edited. */ function isCurrentlyEditing(element) { return element.classList.contains(EDIT_MODE_CLASS_NAME); } /** * @param {HTMLElement} element * * @return {boolean} Whether the element has a handle. */ function hasHandle(element) { return !!element.querySelector(`:scope > .${EDIT_HANDLE_CLASS_NAME}`); } /** * @param {Object} handleProperties * @param {string} handleProperties.title * @param {Function} handleProperties.onClick * @param {string} context * @param {HTMLElement} element * * @return {HTMLElement} The newly generated Handle element */ function createHandleElement({ title, onClick }, context, element = null) { const handleTitle = ['header', 'footer'].includes(element?.dataset.elementorType) ? '%s' : /* translators: %s: Item title. */__('Edit %s', 'elementor-pro'); const innerElement = createElement({ tag: 'div', classNames: [`${EDIT_HANDLE_CLASS_NAME}__inner`], children: [createElement({ tag: 'i', classNames: [getHandleIcon(context)] }), createElement({ tag: 'div', classNames: [`${EDIT_CONTEXT === context ? EDIT_HANDLE_CLASS_NAME : SAVE_HANDLE_CLASS_NAME}__title`], children: [document.createTextNode(EDIT_CONTEXT === context ? handleTitle.replace('%s', title) : /* translators: %s: Document title. */__('Save %s', 'elementor-pro').replace('%s', title))] })] }); const classNames = [EDIT_HANDLE_CLASS_NAME]; if (EDIT_CONTEXT !== context) { classNames.push(SAVE_HANDLE_CLASS_NAME); } const containerElement = createElement({ tag: 'div', classNames, children: [innerElement] }); containerElement.addEventListener('click', onClick); return containerElement; } function getHandleIcon(context) { let icon = 'eicon-edit'; if (SAVE_CONTEXT === context) { icon = elementorFrontend.config.is_rtl ? 'eicon-arrow-right' : 'eicon-arrow-left'; } return icon; } /** * Util for creating HTML element. * * @param {Object} elementProperties * @param {string} elementProperties.tag * @param {string[]} elementProperties.classNames * @param {HTMLElement[]} elementProperties.children * * @return {HTMLElement} Generated Element */ function createElement({ tag, classNames = [], children = [] }) { const element = document.createElement(tag); element.classList.add(...classNames); children.forEach(child => element.appendChild(child)); return element; } /** * @param {string|number} id * @param {string} context * @param {Function|null} onCloseDocument * @param {string} selector * @return {Promise} */ async function onDocumentClick(id, context, onCloseDocument = null, selector = null) { if (EDIT_CONTEXT === context) { window.top.$e.internal('panel/state-loading'); await window.top.$e.run('editor/documents/switch', { id: parseInt(id), onClose: onCloseDocument, selector }); window.top.$e.internal('panel/state-ready'); } else { elementorCommon.api.internal('panel/state-loading'); elementorCommon.api.run('editor/documents/switch', { id: elementor.config.initial_document.id, mode: 'save', shouldScroll: false, selector }).finally(() => elementorCommon.api.internal('panel/state-ready')); } } /***/ }, /***/ "../core/app/modules/site-editor/assets/js/data/commands/conditions-config.js" /*!************************************************************************************!*\ !*** ../core/app/modules/site-editor/assets/js/data/commands/conditions-config.js ***! \************************************************************************************/ (__unused_webpack_module, exports) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = exports.ConditionsConfig = void 0; class ConditionsConfig extends $e.modules.CommandData { static signature = 'site-editor/conditions-config'; static getEndpointFormat() { return 'site-editor/conditions-config/{id}'; } } exports.ConditionsConfig = ConditionsConfig; var _default = exports["default"] = ConditionsConfig; /***/ }, /***/ "../core/app/modules/site-editor/assets/js/data/commands/index.js" /*!************************************************************************!*\ !*** ../core/app/modules/site-editor/assets/js/data/commands/index.js ***! \************************************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "ConditionsConfig", ({ enumerable: true, get: function () { return _conditionsConfig.ConditionsConfig; } })); Object.defineProperty(exports, "Templates", ({ enumerable: true, get: function () { return _templates.Templates; } })); Object.defineProperty(exports, "TemplatesConditions", ({ enumerable: true, get: function () { return _templatesConditions.TemplatesConditions; } })); Object.defineProperty(exports, "TemplatesConditionsConflicts", ({ enumerable: true, get: function () { return _templatesConditionsConflicts.TemplatesConditionsConflicts; } })); var _templates = __webpack_require__(/*! ./templates */ "../core/app/modules/site-editor/assets/js/data/commands/templates.js"); var _conditionsConfig = __webpack_require__(/*! ./conditions-config */ "../core/app/modules/site-editor/assets/js/data/commands/conditions-config.js"); var _templatesConditions = __webpack_require__(/*! ./templates-conditions */ "../core/app/modules/site-editor/assets/js/data/commands/templates-conditions.js"); var _templatesConditionsConflicts = __webpack_require__(/*! ./templates-conditions-conflicts */ "../core/app/modules/site-editor/assets/js/data/commands/templates-conditions-conflicts.js"); /***/ }, /***/ "../core/app/modules/site-editor/assets/js/data/commands/templates-conditions-conflicts.js" /*!*************************************************************************************************!*\ !*** ../core/app/modules/site-editor/assets/js/data/commands/templates-conditions-conflicts.js ***! \*************************************************************************************************/ (__unused_webpack_module, exports) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = exports.TemplatesConditionsConflicts = void 0; class TemplatesConditionsConflicts extends $e.modules.CommandData { static signature = 'site-editor/templates-conditions-conflicts'; static getEndpointFormat() { return `${TemplatesConditionsConflicts.signature}/{id}`; } } exports.TemplatesConditionsConflicts = TemplatesConditionsConflicts; var _default = exports["default"] = TemplatesConditionsConflicts; /***/ }, /***/ "../core/app/modules/site-editor/assets/js/data/commands/templates-conditions.js" /*!***************************************************************************************!*\ !*** ../core/app/modules/site-editor/assets/js/data/commands/templates-conditions.js ***! \***************************************************************************************/ (__unused_webpack_module, exports) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = exports.TemplatesConditions = void 0; class TemplatesConditions extends $e.modules.CommandData { static signature = 'site-editor/templates-conditions'; static getEndpointFormat() { return 'site-editor/templates-conditions/{id}'; } } exports.TemplatesConditions = TemplatesConditions; var _default = exports["default"] = TemplatesConditions; /***/ }, /***/ "../core/app/modules/site-editor/assets/js/data/commands/templates.js" /*!****************************************************************************!*\ !*** ../core/app/modules/site-editor/assets/js/data/commands/templates.js ***! \****************************************************************************/ (__unused_webpack_module, exports) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = exports.Templates = void 0; class Templates extends $e.modules.CommandData { static signature = 'site-editor/templates'; static getEndpointFormat() { return 'site-editor/templates/{id}'; } } exports.Templates = Templates; var _default = exports["default"] = Templates; /***/ }, /***/ "../core/app/modules/site-editor/assets/js/data/component.js" /*!*******************************************************************!*\ !*** ../core/app/modules/site-editor/assets/js/data/component.js ***! \*******************************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; var dataCommands = _interopRequireWildcard(__webpack_require__(/*! ./commands */ "../core/app/modules/site-editor/assets/js/data/commands/index.js")); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (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 (const 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); } class Component extends $e.modules.ComponentBase { static namespace = 'site-editor'; getNamespace() { return this.constructor.namespace; } defaultData() { return this.importCommands(dataCommands); } } exports["default"] = Component; /***/ }, /***/ "../core/app/modules/site-editor/assets/js/editor.js" /*!***********************************************************!*\ !*** ../core/app/modules/site-editor/assets/js/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 _component = _interopRequireDefault(__webpack_require__(/*! ./data/component */ "../core/app/modules/site-editor/assets/js/data/component.js")); var _commands = __webpack_require__(/*! ./data/commands */ "../core/app/modules/site-editor/assets/js/data/commands/index.js"); class Module extends elementorModules.editor.utils.Module { onElementorInit() { const config = elementor.documents.getCurrent().config; if (config.support_site_editor) { $e.components.register(new _component.default()); $e.data.deleteCache($e.components.get(_component.default.namespace), _commands.Templates.signature); } } } exports["default"] = Module; /***/ }, /***/ "../modules/assets-manager/assets/js/editor/editor.js" /*!************************************************************!*\ !*** ../modules/assets-manager/assets/js/editor/editor.js ***! \************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; module.exports = elementorModules.editor.utils.Module.extend({ onElementorInit() { var FontsManager = __webpack_require__(/*! ./font-manager */ "../modules/assets-manager/assets/js/editor/font-manager.js"); this.assets = { font: new FontsManager() }; } }); /***/ }, /***/ "../modules/assets-manager/assets/js/editor/font-manager.js" /*!******************************************************************!*\ !*** ../modules/assets-manager/assets/js/editor/font-manager.js ***! \******************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; __webpack_require__(/*! core-js/modules/es.array.push.js */ "../node_modules/core-js/modules/es.array.push.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ "../node_modules/core-js/modules/esnext.iterator.constructor.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.find.js */ "../node_modules/core-js/modules/esnext.iterator.find.js"); module.exports = elementorModules.Module.extend({ _enqueuedFonts: [], _enqueuedTypekit: false, onFontChange(fontType, font) { if ('custom' !== fontType && 'typekit' !== fontType && 'variable' !== fontType) { return; } if (-1 !== this._enqueuedFonts.indexOf(font)) { return; } if ('typekit' === fontType && this._enqueuedTypekit) { return; } this.getCustomFont(fontType, font); }, getCustomFont(fontType, font) { elementorPro.ajax.addRequest('assets_manager_panel_action_data', { unique_id: 'font_' + fontType + font, data: { service: 'font', type: fontType, font }, success(data) { if (data.font_face) { elementor.$previewContents.find('style').last().after(''); } if (data.font_url) { elementor.$previewContents.find('link').last().after(''); } } }); this._enqueuedFonts.push(font); if ('typekit' === fontType) { this._enqueuedTypekit = true; } }, onInit() { elementor.channels.editor.on('font:insertion', this.onFontChange.bind(this)); } }); /***/ }, /***/ "../modules/custom-css/assets/js/editor/editor.js" /*!********************************************************!*\ !*** ../modules/custom-css/assets/js/editor/editor.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["default"] = void 0; class _default extends elementorModules.editor.utils.Module { addCustomCss(css, context) { if (!context) { return; } const model = context.model, customCSS = model.get('settings').get('custom_css'); let selector = '.elementor-element.elementor-element-' + model.get('id'); if ('document' === model.get('elType')) { selector = elementor.config.document.settings.cssWrapperSelector; } if (customCSS) { css += customCSS.replace(/selector/g, selector); } return css; } onElementorInit() { elementor.hooks.addFilter('editor/style/styleText', this.addCustomCss); elementor.on('navigator:init', this.onNavigatorInit.bind(this)); } onNavigatorInit() { elementor.navigator.indicators.customCSS = { icon: 'code-bold', settingKeys: ['custom_css'], title: __('Custom CSS', 'elementor-pro'), section: 'section_custom_css' }; } } exports["default"] = _default; /***/ }, /***/ "../modules/flip-box/assets/js/editor/editor.js" /*!******************************************************!*\ !*** ../modules/flip-box/assets/js/editor/editor.js ***! \******************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ "../node_modules/core-js/modules/esnext.iterator.constructor.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.find.js */ "../node_modules/core-js/modules/esnext.iterator.find.js"); module.exports = elementorModules.editor.utils.Module.extend({ onElementorInit() { elementor.channels.editor.on('section:activated', this.onSectionActivated); }, onSectionActivated(sectionName, editor) { var editedElement = editor.getOption('editedElementView'); if ('flip-box' !== editedElement.model.get('widgetType')) { return; } var isSideBSection = -1 !== ['section_side_b_content', 'section_style_b'].indexOf(sectionName); editedElement.$el.toggleClass('elementor-flip-box--flipped', isSideBSection); var $backLayer = editedElement.$el.find('.elementor-flip-box__back'); if (isSideBSection) { $backLayer.css('transition', 'none'); } if (!isSideBSection) { setTimeout(function () { $backLayer.css('transition', ''); }, 10); } } }); /***/ }, /***/ "../modules/forms/assets/js/editor/component.js" /*!******************************************************!*\ !*** ../modules/forms/assets/js/editor/component.js ***! \******************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; var hooks = _interopRequireWildcard(__webpack_require__(/*! ./hooks/ */ "../modules/forms/assets/js/editor/hooks/index.js")); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (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 (const 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); } class Component extends $e.modules.ComponentBase { getNamespace() { return 'forms'; } defaultHooks() { return this.importHooks(hooks); } } exports["default"] = Component; /***/ }, /***/ "../modules/forms/assets/js/editor/fields-map-control.js" /*!***************************************************************!*\ !*** ../modules/forms/assets/js/editor/fields-map-control.js ***! \***************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"]; __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ "../node_modules/core-js/modules/esnext.iterator.constructor.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.find.js */ "../node_modules/core-js/modules/esnext.iterator.find.js"); module.exports = elementor.modules.controls.Repeater.extend({ onBeforeRender() { this.$el.hide(); }, updateMap(fields) { var self = this, savedMapObject = {}; self.collection.each(function (model) { savedMapObject[model.get('remote_id')] = model.get('local_id'); }); self.collection.reset(); _.each(fields, function (field) { var model = { remote_id: field.remote_id, remote_label: field.remote_label, remote_type: field.remote_type ? field.remote_type : '', remote_required: field.remote_required ? field.remote_required : false, local_id: savedMapObject[field.remote_id] ? savedMapObject[field.remote_id] : '' }; self.collection.add(model); }); self.render(); }, onRender() { elementor.modules.controls.Base.prototype.onRender.apply(this, arguments); var self = this; self.children.each(function (view) { var localFieldsControl = view.children.last(), options = { '': '- ' + __('None', 'elementor-pro') + ' -' }, label = view.model.get('remote_label'); if (view.model.get('remote_required')) { label += '*'; } _.each(self.elementSettingsModel.get('form_fields').models, function (model, index) { // If it's an email field, add only email fields from thr form var remoteType = view.model.get('remote_type'); if ('text' !== remoteType && remoteType !== model.get('field_type')) { return; } options[model.get('custom_id')] = model.get('field_label') || 'Field #' + (index + 1); }); localFieldsControl.model.set('label', label); localFieldsControl.model.set('options', options); localFieldsControl.render(); view.$el.find('.elementor-repeater-row-tools').hide(); view.$el.find('.elementor-repeater-row-controls').removeClass('elementor-repeater-row-controls').find('.elementor-control').css({ paddingBottom: 0 }); }); self.$el.find('.elementor-button-wrapper').remove(); if (self.children.length) { self.$el.show(); } } }); /***/ }, /***/ "../modules/forms/assets/js/editor/fields-repeater-control.js" /*!********************************************************************!*\ !*** ../modules/forms/assets/js/editor/fields-repeater-control.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 _fieldsRepeaterRow = _interopRequireDefault(__webpack_require__(/*! ./fields-repeater-row */ "../modules/forms/assets/js/editor/fields-repeater-row.js")); module.exports = class extends elementor.modules.controls.Repeater { className() { let classes = super.className(); classes += ' elementor-control-type-repeater'; return classes; } getChildView() { return _fieldsRepeaterRow.default; } initialize(...args) { super.initialize(...args); const formFields = this.container.settings.get('form_fields'); this.listenTo(formFields, 'change', model => this.onFormFieldChange(model)).listenTo(formFields, 'remove', model => this.onFormFieldRemove(model)); } getFirstChild() { return this.children.findByModel(this.collection.models[0]); } lockFirstStep() { const firstChild = this.getFirstChild(); if ('step' !== firstChild.model.get('field_type')) { return; } const stepFields = this.collection.where({ field_type: 'step' }); if (1 < stepFields.length) { firstChild.toggleFieldTypeControl(false); firstChild.toggleTools(false); } firstChild.toggleSort(false); } onFormFieldChange(model) { const fieldType = model.changed.field_type; if (!fieldType || 'step' !== fieldType && 'step' !== model._previousAttributes.field_type) { return; } const isStep = 'step' === fieldType; this.children.findByModel(model).toggleStepField(isStep); this.onStepFieldChanged(isStep); } onFormFieldRemove(model) { if ('step' === model.get('field_type')) { this.onStepFieldChanged(false); } } onStepFieldChanged(isStep) { if (isStep) { this.lockFirstStep(); return; } const stepFields = this.collection.where({ field_type: 'step' }); if (stepFields.length > 1) { return; } const firstChild = this.getFirstChild(); if (1 === stepFields.length) { firstChild.toggleTools(true); firstChild.toggleFieldTypeControl(true); return; } firstChild.toggleSort(true); } onAddChild(childView) { super.onAddChild(childView); if ('step' === childView.model.get('field_type')) { this.lockFirstStep(); childView.toggleStepField(true); } } }; /***/ }, /***/ "../modules/forms/assets/js/editor/fields-repeater-row.js" /*!****************************************************************!*\ !*** ../modules/forms/assets/js/editor/fields-repeater-row.js ***! \****************************************************************/ (__unused_webpack_module, exports) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; class _default extends elementor.modules.controls.RepeaterRow { toggleFieldTypeControl(show) { const fieldTypeModel = this.collection.findWhere({ name: 'field_type' }), fieldTypeControl = this.children.findByModel(fieldTypeModel); fieldTypeControl.$el.toggle(show); } toggleStepField(isStep) { this.$el.toggleClass('elementor-repeater-row--form-step', isStep); } toggleTools(show) { this.ui.removeButton.add(this.ui.duplicateButton).toggle(show); } } exports["default"] = _default; /***/ }, /***/ "../modules/forms/assets/js/editor/fields/acceptance.js" /*!**************************************************************!*\ !*** ../modules/forms/assets/js/editor/fields/acceptance.js ***! \**************************************************************/ (module) { "use strict"; module.exports = elementorModules.editor.utils.Module.extend({ renderField(inputField, item, i, settings) { var itemClasses = _.escape(item.css_classes), required = '', label = '', checked = ''; if (item.required) { required = 'required'; } if (item.acceptance_text) { label = ''; } if (item.checked_by_default) { checked = ' checked="checked"'; } return '
' + '' + ' ' + label + '
'; }, onInit() { elementor.hooks.addFilter('elementor_pro/forms/content_template/field/acceptance', this.renderField, 10, 4); } }); /***/ }, /***/ "../modules/forms/assets/js/editor/fields/date.js" /*!********************************************************!*\ !*** ../modules/forms/assets/js/editor/fields/date.js ***! \********************************************************/ (module) { "use strict"; module.exports = elementorModules.editor.utils.Module.extend({ renderField(inputField, item, i, settings) { var itemClasses = _.escape(item.css_classes), required = '', min = '', max = '', placeholder = ''; if (item.required) { required = 'required'; } if (item.min_date) { min = ' min="' + item.min_date + '"'; } if (item.max_date) { max = ' max="' + item.max_date + '"'; } if (item.placeholder) { placeholder = ' placeholder="' + item.placeholder + '"'; } if ('yes' === item.use_native_date) { itemClasses += ' elementor-use-native'; } return ''; }, onInit() { elementor.hooks.addFilter('elementor_pro/forms/content_template/field/date', this.renderField, 10, 4); } }); /***/ }, /***/ "../modules/forms/assets/js/editor/fields/tel.js" /*!*******************************************************!*\ !*** ../modules/forms/assets/js/editor/fields/tel.js ***! \*******************************************************/ (module) { "use strict"; module.exports = elementorModules.editor.utils.Module.extend({ renderField(inputField, item, i, settings) { var itemClasses = _.escape(item.css_classes), required = '', placeholder = ''; if (item.required) { required = 'required'; } if (item.placeholder) { placeholder = ' placeholder="' + item.placeholder + '"'; } itemClasses = 'elementor-field-textual ' + itemClasses; return ''; }, onInit() { elementor.hooks.addFilter('elementor_pro/forms/content_template/field/tel', this.renderField, 10, 4); } }); /***/ }, /***/ "../modules/forms/assets/js/editor/fields/time.js" /*!********************************************************!*\ !*** ../modules/forms/assets/js/editor/fields/time.js ***! \********************************************************/ (module) { "use strict"; module.exports = elementorModules.editor.utils.Module.extend({ renderField(inputField, item, i, settings) { var itemClasses = _.escape(item.css_classes), required = '', placeholder = ''; if (item.required) { required = 'required'; } if (item.placeholder) { placeholder = ' placeholder="' + item.placeholder + '"'; } if ('yes' === item.use_native_time) { itemClasses += ' elementor-use-native'; } return ''; }, onInit() { elementor.hooks.addFilter('elementor_pro/forms/content_template/field/time', this.renderField, 10, 4); } }); /***/ }, /***/ "../modules/forms/assets/js/editor/fields/upload.js" /*!**********************************************************!*\ !*** ../modules/forms/assets/js/editor/fields/upload.js ***! \**********************************************************/ (module) { "use strict"; module.exports = elementorModules.editor.utils.Module.extend({ renderField(inputField, item, i, settings) { var itemClasses = _.escape(item.css_classes), required = '', multiple = '', fieldName = 'form_field_'; if (item.required) { required = 'required'; } if (item.allow_multiple_upload) { multiple = ' multiple="multiple"'; fieldName += '[]'; } return ''; }, onInit() { elementor.hooks.addFilter('elementor_pro/forms/content_template/field/upload', this.renderField, 10, 4); } }); /***/ }, /***/ "../modules/forms/assets/js/editor/hints/atomic-form-promotion.js" /*!************************************************************************!*\ !*** ../modules/forms/assets/js/editor/hints/atomic-form-promotion.js ***! \************************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; __webpack_require__(/*! core-js/modules/es.array.push.js */ "../node_modules/core-js/modules/es.array.push.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ "../node_modules/core-js/modules/esnext.iterator.constructor.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.find.js */ "../node_modules/core-js/modules/esnext.iterator.find.js"); module.exports = elementorModules.editor.utils.Module.extend({ eventName: 'atomic_form_v3_promotion', control: null, onSectionActive(sectionName) { if ('section_form_fields' !== sectionName) { return; } this.control = null; if (!this.hasPromoControl()) { return; } this.registerEvents(); }, registerEvents() { const dismissBtn = this.getPromoControl().$el.find('.e-btn-1'); const onDismissBtnClick = event => { dismissBtn.off('click', onDismissBtnClick); event.preventDefault(); this.dismiss(); }; dismissBtn.on('click', onDismissBtnClick); const actionBtn = this.getPromoControl().$el.find('.e-btn-2'); const onActionBtn = event => { actionBtn.off('click', onActionBtn); event.preventDefault(); this.onUseAtomicForm(); this.dismiss(); }; actionBtn.on('click', onActionBtn); }, getPromoControl() { if (!this.control) { this.control = this.getEditorControlView(this.eventName); } return this.control; }, hasPromoControl() { return !!this.getPromoControl(); }, getDismissId() { return `form-${this.eventName}`; }, dismiss() { const dismissId = this.getDismissId(); elementorCommon.ajax.addRequest('dismissed_editor_notices', { data: { dismissId } }); elementor.config.user.dismissed_editor_notices.push(dismissId); this.getPromoControl().$el.remove(); }, onUseAtomicForm() { $e.route('panel/elements/categories'); setTimeout(() => { const $category = jQuery('#elementor-panel-category-atomic-form'); if (!$category.length) { return; } if (!$category.hasClass('elementor-active')) { $category.find('.elementor-panel-category-title').trigger('click'); } setTimeout(() => { const $scrollContainer = jQuery('#elementor-panel-content-wrapper'); if ($scrollContainer.length) { $scrollContainer.animate({ scrollTop: $category[0].offsetTop }, 300); } const $widget = $category.find('.elementor-element').first(); if ($widget.length) { $widget.css({ transition: 'background-color 0.3s', 'background-color': '#F1F2F3' }); setTimeout(() => { $widget.css('background-color', ''); }, 3000); } }, 350); }, 200); }, onInit() { elementor.channels.editor.on('section:activated', sectionName => this.onSectionActive(sectionName)); } }); /***/ }, /***/ "../modules/forms/assets/js/editor/hints/email-deliverability.js" /*!***********************************************************************!*\ !*** ../modules/forms/assets/js/editor/hints/email-deliverability.js ***! \***********************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; __webpack_require__(/*! core-js/modules/es.array.includes.js */ "../node_modules/core-js/modules/es.array.includes.js"); __webpack_require__(/*! core-js/modules/es.array.push.js */ "../node_modules/core-js/modules/es.array.push.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ "../node_modules/core-js/modules/esnext.iterator.constructor.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.find.js */ "../node_modules/core-js/modules/esnext.iterator.find.js"); module.exports = elementorModules.editor.utils.Module.extend({ eventName: 'site_mailer_forms_email_notice', suffix: '', control: null, onSectionActive(sectionName) { // Check if the section is the email section if (!['section_email', 'section_email_2'].includes(sectionName)) { return; } this.suffix = 'section_email_2' === sectionName ? '_2' : ''; this.control = null; // Check if control exists if (!this.hasPromoControl()) { return; } // Check if the user has dismissed the hint if (elementor.config.user.dismissed_editor_notices.includes('site_mailer_forms_email_notice')) { this.getPromoControl().remove(); return; } this.registerEvents(); }, registerEvents() { // Handle dismiss and action buttons const dismissBtn = this.getPromoControl().$el.find('.elementor-control-notice-dismiss'); const onDismissBtnClick = event => { dismissBtn.off('click', onDismissBtnClick); // Remove the event listener event.preventDefault(); this.dismiss(); this.getPromoControl().remove(); }; dismissBtn.on('click', onDismissBtnClick); // Handle action button const actionBtn = this.getPromoControl().$el.find('.e-btn-1'); const onActionBtn = event => { actionBtn.off('click', onActionBtn); // Remove the event listener event.preventDefault(); this.onAction(event); this.getPromoControl().remove(); }; actionBtn.on('click', onActionBtn); }, getPromoControl() { if (!this.control) { this.control = this.getEditorControlView('site_mailer_promo' + this.suffix); } return this.control; }, hasPromoControl() { return !!this.getPromoControl(); }, ajaxRequest(name, data) { elementorCommon.ajax.addRequest(name, { data }); }, dismiss() { this.ajaxRequest('dismissed_editor_notices', { dismissId: this.eventName }); // Prevent opening the same hint again in current editor session. this.ensureNoPromoControlInSession(); }, ensureNoPromoControlInSession() { // Prevent opening the same hint again in current editor session. elementor.config.user.dismissed_editor_notices.push(this.eventName); }, onAction(event) { let actionURL = null; let source = 'sm-form-install'; try { const settings = JSON.parse(event.target.closest('button').dataset.settings); actionURL = settings.action_url || null; source = settings.source || 'sm-form-install'; } catch (error) { // Do nothing. } if (actionURL) { window.open(actionURL, '_blank'); } this.ajaxRequest('elementor_site_mailer_campaign', { source }); this.ensureNoPromoControlInSession(); }, onInit() { elementor.channels.editor.on('section:activated', sectionName => this.onSectionActive(sectionName)); } }); /***/ }, /***/ "../modules/forms/assets/js/editor/hooks/data/form-fields-sanitize-custom-id.js" /*!**************************************************************************************!*\ !*** ../modules/forms/assets/js/editor/hooks/data/form-fields-sanitize-custom-id.js ***! \**************************************************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = exports.FormFieldsSanitizeCustomId = void 0; __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ "../node_modules/core-js/modules/esnext.iterator.constructor.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.find.js */ "../node_modules/core-js/modules/esnext.iterator.find.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.for-each.js */ "../node_modules/core-js/modules/esnext.iterator.for-each.js"); class FormFieldsSanitizeCustomId extends $e.modules.hookData.Dependency { ID_SANITIZE_FILTER = /[^\w]/g; getCommand() { return 'document/elements/settings'; } getId() { return 'elementor-pro-forms-fields-sanitize-custom-id'; } getContainerType() { return 'repeater'; } getConditions(args) { return undefined !== args.settings.custom_id; } apply(args) { const { containers = [args.container], settings } = args, // `custom_id` is the control name. { custom_id: customId } = settings; if (customId.match(this.ID_SANITIZE_FILTER)) { // Re-render with old settings. containers.forEach(container => { const panelView = container.panel.getControlView('form_fields'), currentItemView = panelView.children.findByModel(container.settings), idView = currentItemView.children.find(view => 'custom_id' === view.model.get('name')); idView.render(); idView.$el.find('input').trigger('focus'); }); // Hook-Break. return false; } return true; } } exports.FormFieldsSanitizeCustomId = FormFieldsSanitizeCustomId; var _default = exports["default"] = FormFieldsSanitizeCustomId; /***/ }, /***/ "../modules/forms/assets/js/editor/hooks/data/form-fields-set-custom-id.js" /*!*********************************************************************************!*\ !*** ../modules/forms/assets/js/editor/hooks/data/form-fields-set-custom-id.js ***! \*********************************************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = exports.FormFieldsSetCustomId = void 0; __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ "../node_modules/core-js/modules/esnext.iterator.constructor.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.find.js */ "../node_modules/core-js/modules/esnext.iterator.find.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.for-each.js */ "../node_modules/core-js/modules/esnext.iterator.for-each.js"); class FormFieldsSetCustomId extends $e.modules.hookData.After { getCommand() { return 'document/repeater/insert'; } getId() { return 'elementor-pro-forms-fields-set-custom-id'; } getContainerType() { return 'widget'; } getConditions(args) { return 'form_fields' === args.name; } apply(args, model) { const { containers = [args.container] } = args, isDuplicate = $e.commands.isCurrentFirstTrace('document/repeater/duplicate'); containers.forEach((/** Container */container) => { const itemContainer = container.repeaters.form_fields.children.find(childrenContainer => { // Sometimes, one of children is {Empty}. if (childrenContainer) { return model.get('_id') === childrenContainer.id; } return false; }); if (!isDuplicate && itemContainer.settings.get('custom_id')) { return; } $e.run('document/elements/settings', { container: itemContainer, settings: { custom_id: 'field_' + itemContainer.id }, options: { external: true } }); }); return true; } } exports.FormFieldsSetCustomId = FormFieldsSetCustomId; var _default = exports["default"] = FormFieldsSetCustomId; /***/ }, /***/ "../modules/forms/assets/js/editor/hooks/data/form-fields-step.js" /*!************************************************************************!*\ !*** ../modules/forms/assets/js/editor/hooks/data/form-fields-step.js ***! \************************************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = exports.FormFieldsAddFirstStep = void 0; __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ "../node_modules/core-js/modules/esnext.iterator.constructor.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.for-each.js */ "../node_modules/core-js/modules/esnext.iterator.for-each.js"); class FormFieldsAddFirstStep extends $e.modules.hookData.After { getCommand() { return 'document/elements/settings'; } getId() { return 'elementor-pro-forms-fields-first-step'; } getContainerType() { return 'repeater'; } getConditions(args) { const { containers = [args.container] } = args; return 'form' === containers[0].parent.parent.model.get('widgetType') && 'step' === args.settings.field_type; } apply(args) { const { containers = [args.container] } = args; containers.forEach((/** Container */container) => { const firstItem = container.parent.children[0]; if ('step' === firstItem.settings.get('field_type')) { return; } $e.run('document/repeater/insert', { container: container.parent.parent, // Widget name: 'form_fields', model: { field_type: 'step' }, options: { at: 0, external: true } }); }); return true; } } exports.FormFieldsAddFirstStep = FormFieldsAddFirstStep; var _default = exports["default"] = FormFieldsAddFirstStep; /***/ }, /***/ "../modules/forms/assets/js/editor/hooks/data/form-sanitize-id.js" /*!************************************************************************!*\ !*** ../modules/forms/assets/js/editor/hooks/data/form-sanitize-id.js ***! \************************************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = exports.FormSanitizeId = void 0; __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ "../node_modules/core-js/modules/esnext.iterator.constructor.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.find.js */ "../node_modules/core-js/modules/esnext.iterator.find.js"); class FormSanitizeId extends $e.modules.hookData.Dependency { ID_SANITIZE_FILTER = /[^\w]/g; getCommand() { return 'document/elements/settings'; } getId() { return 'elementor-pro-forms-sanitize-id'; } getContainerType() { return 'widget'; } getConditions(args) { return undefined !== args.settings.form_id; } apply(args) { const { container, settings } = args; const { form_id: formId } = settings; // Re-render with old settings. if (formId.match(this.ID_SANITIZE_FILTER)) { const formIdView = container.panel.getControlView('form_id'); formIdView.render(); formIdView.$el.find('input').trigger('focus'); // Hook-Break. return false; } return true; } } exports.FormSanitizeId = FormSanitizeId; var _default = exports["default"] = FormSanitizeId; /***/ }, /***/ "../modules/forms/assets/js/editor/hooks/data/index.js" /*!*************************************************************!*\ !*** ../modules/forms/assets/js/editor/hooks/data/index.js ***! \*************************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "FormFieldsAddFirstStep", ({ enumerable: true, get: function () { return _formFieldsStep.FormFieldsAddFirstStep; } })); Object.defineProperty(exports, "FormFieldsSanitizeCustomId", ({ enumerable: true, get: function () { return _formFieldsSanitizeCustomId.FormFieldsSanitizeCustomId; } })); Object.defineProperty(exports, "FormFieldsSetCustomId", ({ enumerable: true, get: function () { return _formFieldsSetCustomId.FormFieldsSetCustomId; } })); Object.defineProperty(exports, "FormSanitizeId", ({ enumerable: true, get: function () { return _formSanitizeId.FormSanitizeId; } })); var _formFieldsSanitizeCustomId = __webpack_require__(/*! ./form-fields-sanitize-custom-id */ "../modules/forms/assets/js/editor/hooks/data/form-fields-sanitize-custom-id.js"); var _formFieldsSetCustomId = __webpack_require__(/*! ./form-fields-set-custom-id */ "../modules/forms/assets/js/editor/hooks/data/form-fields-set-custom-id.js"); var _formFieldsStep = __webpack_require__(/*! ./form-fields-step */ "../modules/forms/assets/js/editor/hooks/data/form-fields-step.js"); var _formSanitizeId = __webpack_require__(/*! ./form-sanitize-id */ "../modules/forms/assets/js/editor/hooks/data/form-sanitize-id.js"); /***/ }, /***/ "../modules/forms/assets/js/editor/hooks/index.js" /*!********************************************************!*\ !*** ../modules/forms/assets/js/editor/hooks/index.js ***! \********************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ "../node_modules/core-js/modules/esnext.iterator.constructor.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.for-each.js */ "../node_modules/core-js/modules/esnext.iterator.for-each.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); var _data = __webpack_require__(/*! ./data/ */ "../modules/forms/assets/js/editor/hooks/data/index.js"); Object.keys(_data).forEach(function (key) { if (key === "default" || key === "__esModule") return; if (key in exports && exports[key] === _data[key]) return; Object.defineProperty(exports, key, { enumerable: true, get: function () { return _data[key]; } }); }); var _ui = __webpack_require__(/*! ./ui/ */ "../modules/forms/assets/js/editor/hooks/ui/index.js"); Object.keys(_ui).forEach(function (key) { if (key === "default" || key === "__esModule") return; if (key in exports && exports[key] === _ui[key]) return; Object.defineProperty(exports, key, { enumerable: true, get: function () { return _ui[key]; } }); }); /***/ }, /***/ "../modules/forms/assets/js/editor/hooks/ui/form-fields-update-shortcode.js" /*!**********************************************************************************!*\ !*** ../modules/forms/assets/js/editor/hooks/ui/form-fields-update-shortcode.js ***! \**********************************************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = exports.FormFieldsUpdateShortCode = void 0; __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ "../node_modules/core-js/modules/esnext.iterator.constructor.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.find.js */ "../node_modules/core-js/modules/esnext.iterator.find.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.for-each.js */ "../node_modules/core-js/modules/esnext.iterator.for-each.js"); class FormFieldsUpdateShortCode extends $e.modules.hookUI.After { getCommand() { return 'document/elements/settings'; } getId() { return 'elementor-pro-forms-fields-update-shortcode'; } getContainerType() { return 'repeater'; } getConditions(args) { if (!$e.routes.isPartOf('panel/editor') || undefined === args.settings.custom_id) { return false; } return true; } apply(args) { const { containers = [args.container] } = args; containers.forEach((/** Container */container) => { const panelView = container.panel.getControlView('form_fields'), currentItemView = panelView.children.find(view => container.id === view.model.get('_id')), shortcodeView = currentItemView.children.find(view => 'shortcode' === view.model.get('name')); shortcodeView.render(); }); } } exports.FormFieldsUpdateShortCode = FormFieldsUpdateShortCode; var _default = exports["default"] = FormFieldsUpdateShortCode; /***/ }, /***/ "../modules/forms/assets/js/editor/hooks/ui/index.js" /*!***********************************************************!*\ !*** ../modules/forms/assets/js/editor/hooks/ui/index.js ***! \***********************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "FormFieldsUpdateShortCode", ({ enumerable: true, get: function () { return _formFieldsUpdateShortcode.FormFieldsUpdateShortCode; } })); var _formFieldsUpdateShortcode = __webpack_require__(/*! ./form-fields-update-shortcode */ "../modules/forms/assets/js/editor/hooks/ui/form-fields-update-shortcode.js"); /***/ }, /***/ "../modules/forms/assets/js/editor/integrations/activecampaign.js" /*!************************************************************************!*\ !*** ../modules/forms/assets/js/editor/integrations/activecampaign.js ***! \************************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"]; __webpack_require__(/*! core-js/modules/es.array.push.js */ "../node_modules/core-js/modules/es.array.push.js"); var BaseIntegrationModule = __webpack_require__(/*! ./base */ "../modules/forms/assets/js/editor/integrations/base.js"); module.exports = BaseIntegrationModule.extend({ fields: {}, getName() { return 'activecampaign'; }, onElementChange(setting) { switch (setting) { case 'activecampaign_api_credentials_source': case 'activecampaign_api_key': case 'activecampaign_api_url': this.onApiUpdate(); break; case 'activecampaign_list': this.onListUpdate(); break; } }, onApiUpdate() { const self = this, apikeyControlView = self.getEditorControlView('activecampaign_api_key'), apiUrlControlView = self.getEditorControlView('activecampaign_api_url'), apiCredControlView = self.getEditorControlView('activecampaign_api_credentials_source'); if ('default' !== apiCredControlView.getControlValue() && ('' === apikeyControlView.getControlValue() || '' === apiUrlControlView.getControlValue())) { self.updateOptions('activecampaign_list', []); self.getEditorControlView('activecampaign_list').setValue(''); return; } self.addControlSpinner('activecampaign_list'); const cacheKey = this.getCacheKey({ controls: [apiCredControlView.getControlValue(), apiUrlControlView.getControlValue(), apikeyControlView.getControlValue()] }); self.getActiveCampaignCache('lists', 'activecampaign_list', cacheKey).done(function (data) { self.updateOptions('activecampaign_list', data.lists); self.fields = data.fields; }); }, onListUpdate() { this.updateFieldsMapping(); }, updateFieldsMapping() { var controlView = this.getEditorControlView('activecampaign_list'); if (!controlView.getControlValue()) { return; } var remoteFields = [{ remote_label: __('Email', 'elementor-pro'), remote_type: 'email', remote_id: 'email', remote_required: true }, { remote_label: __('First Name', 'elementor-pro'), remote_type: 'text', remote_id: 'first_name', remote_required: false }, { remote_label: __('Last Name', 'elementor-pro'), remote_type: 'text', remote_id: 'last_name', remote_required: false }, { remote_label: __('Phone', 'elementor-pro'), remote_type: 'text', remote_id: 'phone', remote_required: false }, { remote_label: __('Organization name', 'elementor-pro'), remote_type: 'text', remote_id: 'orgname', remote_required: false }]; for (var field in this.fields) { if (Object.prototype.hasOwnProperty.call(this.fields, field)) { remoteFields.push(this.fields[field]); } } this.getEditorControlView('activecampaign_fields_map').updateMap(remoteFields); }, getActiveCampaignCache(type, action, cacheKey, requestArgs) { if (_.has(this.cache[type], cacheKey)) { var data = {}; data[type] = this.cache[type][cacheKey]; return jQuery.Deferred().resolve(data); } requestArgs = _.extend({}, requestArgs, { service: 'activecampaign', activecampaign_action: action, api_key: this.getEditorControlView('activecampaign_api_key').getControlValue(), api_url: this.getEditorControlView('activecampaign_api_url').getControlValue(), api_cred: this.getEditorControlView('activecampaign_api_credentials_source').getControlValue() }); return this.fetchCache(type, cacheKey, requestArgs); } }); /***/ }, /***/ "../modules/forms/assets/js/editor/integrations/base.js" /*!**************************************************************!*\ !*** ../modules/forms/assets/js/editor/integrations/base.js ***! \**************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; __webpack_require__(/*! core-js/modules/es.json.stringify.js */ "../node_modules/core-js/modules/es.json.stringify.js"); var ElementEditorModule = __webpack_require__(/*! elementor-pro/editor/element-editor-module */ "../assets/dev/js/editor/element-editor-module.js"); module.exports = ElementEditorModule.extend({ __construct() { this.cache = {}; ElementEditorModule.prototype.__construct.apply(this, arguments); }, getName() { return ''; }, getCacheKey(args) { return JSON.stringify({ service: this.getName(), data: args }); }, fetchCache(type, cacheKey, requestArgs, immediately = false) { return elementorPro.ajax.addRequest('forms_panel_action_data', { unique_id: 'integrations_' + this.getName(), data: requestArgs, success: data => { this.cache[type] = _.extend({}, this.cache[type]); this.cache[type][cacheKey] = data[type]; } }, immediately); }, onInit() { this.addSectionListener('section_' + this.getName(), this.onSectionActive); }, onSectionActive() { this.onApiUpdate(); }, onApiUpdate() {} }); /***/ }, /***/ "../modules/forms/assets/js/editor/integrations/convertkit.js" /*!********************************************************************!*\ !*** ../modules/forms/assets/js/editor/integrations/convertkit.js ***! \********************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"]; var BaseIntegrationModule = __webpack_require__(/*! ./base */ "../modules/forms/assets/js/editor/integrations/base.js"); module.exports = BaseIntegrationModule.extend({ getName() { return 'convertkit'; }, onElementChange(setting) { switch (setting) { case 'convertkit_api_key_source': case 'convertkit_custom_api_key': this.onApiUpdate(); break; case 'convertkit_form': this.onListUpdate(); break; } }, onApiUpdate() { var self = this, apiKeyControlView = self.getEditorControlView('convertkit_api_key_source'), customApikeyControlView = self.getEditorControlView('convertkit_custom_api_key'); if ('default' !== apiKeyControlView.getControlValue() && '' === customApikeyControlView.getControlValue()) { self.updateOptions('convertkit_form', []); self.getEditorControlView('convertkit_form').setValue(''); return; } self.addControlSpinner('convertkit_form'); const cacheKey = this.getCacheKey({ type: 'data', controls: [apiKeyControlView.getControlValue(), customApikeyControlView.getControlValue()] }); self.getConvertKitCache('data', 'convertkit_get_forms', cacheKey).done(function (data) { self.updateOptions('convertkit_form', data.data.forms); self.updateOptions('convertkit_tags', data.data.tags); }); }, onListUpdate() { this.updateFieldsMapping(); }, updateFieldsMapping() { var controlView = this.getEditorControlView('convertkit_form'); if (!controlView.getControlValue()) { return; } var remoteFields = [{ remote_label: __('Email', 'elementor-pro'), remote_type: 'email', remote_id: 'email', remote_required: true }, { remote_label: __('First Name', 'elementor-pro'), remote_type: 'text', remote_id: 'first_name', remote_required: false }]; this.getEditorControlView('convertkit_fields_map').updateMap(remoteFields); }, getConvertKitCache(type, action, cacheKey, requestArgs) { if (_.has(this.cache[type], cacheKey)) { var data = {}; data[type] = this.cache[type][cacheKey]; return jQuery.Deferred().resolve(data); } requestArgs = _.extend({}, requestArgs, { service: 'convertkit', convertkit_action: action, api_key: this.getEditorControlView('convertkit_api_key_source').getControlValue(), custom_api_key: this.getEditorControlView('convertkit_custom_api_key').getControlValue() }); return this.fetchCache(type, cacheKey, requestArgs); } }); /***/ }, /***/ "../modules/forms/assets/js/editor/integrations/drip.js" /*!**************************************************************!*\ !*** ../modules/forms/assets/js/editor/integrations/drip.js ***! \**************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"]; var BaseIntegrationModule = __webpack_require__(/*! ./base */ "../modules/forms/assets/js/editor/integrations/base.js"); module.exports = BaseIntegrationModule.extend({ getName() { return 'drip'; }, onElementChange(setting) { switch (setting) { case 'drip_api_token_source': case 'drip_custom_api_token': this.onApiUpdate(); break; case 'drip_account': this.onDripAccountsUpdate(); break; } }, onApiUpdate() { var self = this, controlView = self.getEditorControlView('drip_api_token_source'), customControlView = self.getEditorControlView('drip_custom_api_token'); if ('default' !== controlView.getControlValue() && '' === customControlView.getControlValue()) { self.updateOptions('drip_account', []); self.getEditorControlView('drip_account').setValue(''); return; } self.addControlSpinner('drip_account'); this.getCacheKey({ type: 'accounts', controls: [controlView.getControlValue(), customControlView.getControlValue()] }); self.getDripCache('accounts', 'accounts', controlView.getControlValue()).done(function (data) { self.updateOptions('drip_account', data.accounts); }); }, onDripAccountsUpdate() { this.updateFieldsMapping(); }, updateFieldsMapping() { var controlView = this.getEditorControlView('drip_account'); if (!controlView.getControlValue()) { return; } var remoteFields = { remote_label: __('Email', 'elementor-pro'), remote_type: 'email', remote_id: 'email', remote_required: true }; this.getEditorControlView('drip_fields_map').updateMap([remoteFields]); }, getDripCache(type, action, cacheKey, requestArgs) { if (_.has(this.cache[type], cacheKey)) { var data = {}; data[type] = this.cache[type][cacheKey]; return jQuery.Deferred().resolve(data); } requestArgs = _.extend({}, requestArgs, { service: 'drip', drip_action: action, api_token: this.getEditorControlView('drip_api_token_source').getControlValue(), custom_api_token: this.getEditorControlView('drip_custom_api_token').getControlValue() }); return this.fetchCache(type, cacheKey, requestArgs); } }); /***/ }, /***/ "../modules/forms/assets/js/editor/integrations/getresponse.js" /*!*********************************************************************!*\ !*** ../modules/forms/assets/js/editor/integrations/getresponse.js ***! \*********************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var BaseIntegrationModule = __webpack_require__(/*! ./base */ "../modules/forms/assets/js/editor/integrations/base.js"); module.exports = BaseIntegrationModule.extend({ getName() { return 'getresponse'; }, onElementChange(setting) { switch (setting) { case 'getresponse_custom_api_key': case 'getresponse_api_key_source': this.onApiUpdate(); break; case 'getresponse_list': this.onGetResonseListUpdate(); break; } }, onApiUpdate() { var self = this, controlView = self.getEditorControlView('getresponse_api_key_source'), customControlView = self.getEditorControlView('getresponse_custom_api_key'); if ('default' !== controlView.getControlValue() && '' === customControlView.getControlValue()) { self.updateOptions('getresponse_list', []); self.getEditorControlView('getresponse_list').setValue(''); return; } self.addControlSpinner('getresponse_list'); const cacheKey = this.getCacheKey({ type: 'lists', controls: [controlView.getControlValue(), customControlView.getControlValue()] }); self.getCache('lists', 'lists', cacheKey).done(function (data) { self.updateOptions('getresponse_list', data.lists); }); }, onGetResonseListUpdate() { this.updatGetResonseList(); }, updatGetResonseList() { var self = this, controlView = self.getEditorControlView('getresponse_list'); if (!controlView.getControlValue()) { return; } self.addControlSpinner('getresponse_fields_map'); const cacheKey = this.getCacheKey({ type: 'fields', controls: [controlView.getControlValue()] }); self.getCache('fields', 'get_fields', cacheKey, { getresponse_list: controlView.getControlValue() }).done(function (data) { self.getEditorControlView('getresponse_fields_map').updateMap(data.fields); }); }, getCache(type, action, cacheKey, requestArgs) { if (_.has(this.cache[type], cacheKey)) { var data = {}; data[type] = this.cache[type][cacheKey]; return jQuery.Deferred().resolve(data); } requestArgs = _.extend({}, requestArgs, { service: 'getresponse', getresponse_action: action, api_key: this.getEditorControlView('getresponse_api_key_source').getControlValue(), custom_api_key: this.getEditorControlView('getresponse_custom_api_key').getControlValue() }); return this.fetchCache(type, cacheKey, requestArgs); }, onSectionActive() { BaseIntegrationModule.prototype.onSectionActive.apply(this, arguments); this.updatGetResonseList(); } }); /***/ }, /***/ "../modules/forms/assets/js/editor/integrations/mailchimp.js" /*!*******************************************************************!*\ !*** ../modules/forms/assets/js/editor/integrations/mailchimp.js ***! \*******************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var BaseIntegrationModule = __webpack_require__(/*! ./base */ "../modules/forms/assets/js/editor/integrations/base.js"); module.exports = BaseIntegrationModule.extend({ getName() { return 'mailchimp'; }, onElementChange(setting) { switch (setting) { case 'mailchimp_api_key_source': case 'mailchimp_api_key': this.onApiUpdate(); break; case 'mailchimp_list': this.onMailchimpListUpdate(); break; } }, onApiUpdate() { var self = this, controlView = self.getEditorControlView('mailchimp_api_key'), GlobalApiKeycontrolView = self.getEditorControlView('mailchimp_api_key_source'); if ('default' !== GlobalApiKeycontrolView.getControlValue() && '' === controlView.getControlValue()) { self.updateOptions('mailchimp_list', []); self.getEditorControlView('mailchimp_list').setValue(''); return; } // Add a spinner to the `Audience` list control. self.resetControlIndicators('mailchimp_list'); self.addControlSpinner('mailchimp_list'); const cacheKey = this.getCacheKey({ type: 'lists', controls: [controlView.getControlValue(), GlobalApiKeycontrolView.getControlValue()] }); // Fetch data self.getMailchimpCache('lists', 'lists', cacheKey).done(function (data) { self.updateOptions('mailchimp_list', data.lists); self.updatMailchimpList(); }).fail(function (error) { self.addControlError('mailchimp_list', error); }).always(function () { self.removeControlSpinner('mailchimp_list'); }); }, onMailchimpListUpdate() { this.updateOptions('mailchimp_groups', []); this.getEditorControlView('mailchimp_groups').setValue(''); this.updatMailchimpList(); }, updatMailchimpList() { var self = this, controlView = self.getEditorControlView('mailchimp_list'); if (!controlView.getControlValue()) { return; } // Add a spinner to the groups select box. self.resetControlIndicators('mailchimp_groups'); self.addControlSpinner('mailchimp_groups'); this.getCacheKey({ type: 'list_details', controls: [controlView.getControlValue()] }); // Fetch The data self.getMailchimpCache('list_details', 'list_details', controlView.getControlValue(), { mailchimp_list: controlView.getControlValue() }).done(function (data) { self.updateOptions('mailchimp_groups', data.list_details.groups); self.getEditorControlView('mailchimp_fields_map').updateMap(data.list_details.fields); }).fail(function (error) { self.addControlError('mailchimp_groups', error); }).always(function () { self.removeControlSpinner('mailchimp_groups'); }); // Get list fields. // The requests needed to be executed immediately in order to fill the `Field Mapping` select-boxes // without waiting for other requests to finish. const args = { type: 'fields', action: 'fields', cacheKey: controlView.getControlValue(), args: { mailchimp_list: controlView.getControlValue() }, immediately: true }; self.getMailchimpCache(...Object.values(args)).done(function (data) { self.getEditorControlView('mailchimp_fields_map').updateMap(data.fields); }); }, getMailchimpCache(type, action, cacheKey, requestArgs, immediately = false) { if (_.has(this.cache[type], cacheKey)) { var data = {}; data[type] = this.cache[type][cacheKey]; return jQuery.Deferred().resolve(data); } requestArgs = _.extend({}, requestArgs, { service: 'mailchimp', mailchimp_action: action, api_key: this.getEditorControlView('mailchimp_api_key').getControlValue(), use_global_api_key: this.getEditorControlView('mailchimp_api_key_source').getControlValue() }); return this.fetchCache(type, cacheKey, requestArgs, immediately); }, onSectionActive() { BaseIntegrationModule.prototype.onSectionActive.apply(this, arguments); this.onApiUpdate(); } }); /***/ }, /***/ "../modules/forms/assets/js/editor/integrations/mailerlite.js" /*!********************************************************************!*\ !*** ../modules/forms/assets/js/editor/integrations/mailerlite.js ***! \********************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"]; __webpack_require__(/*! core-js/modules/es.array.push.js */ "../node_modules/core-js/modules/es.array.push.js"); const BaseIntegrationModule = __webpack_require__(/*! ./base */ "../modules/forms/assets/js/editor/integrations/base.js"); module.exports = BaseIntegrationModule.extend({ fields: {}, getName() { return 'mailerlite'; }, onElementChange(setting) { switch (setting) { case 'mailerlite_api_key_source': case 'mailerlite_custom_api_key': this.onMailerliteApiKeyUpdate(); break; case 'mailerlite_group': this.updateFieldsMapping(); break; } }, onMailerliteApiKeyUpdate() { var self = this, controlView = self.getEditorControlView('mailerlite_custom_api_key'), GlobalApiKeycontrolView = self.getEditorControlView('mailerlite_api_key_source'); if ('default' !== GlobalApiKeycontrolView.getControlValue() && '' === controlView.getControlValue()) { self.updateOptions('mailerlite_group', []); self.getEditorControlView('mailerlite_group').setValue(''); return; } self.addControlSpinner('mailerlite_group'); const cacheKey = this.getCacheKey({ type: 'groups', controls: [controlView.getControlValue(), GlobalApiKeycontrolView.getControlValue()] }); self.getMailerliteCache('groups', 'groups', cacheKey).done(function (data) { self.updateOptions('mailerlite_group', data.groups); self.fields = data.fields; }); }, updateFieldsMapping() { const controlView = this.getEditorControlView('mailerlite_group'); if (!controlView.getControlValue()) { return; } const remoteFields = [{ remote_label: __('Email', 'elementor-pro'), remote_type: 'email', remote_id: 'email', remote_required: true }, { remote_label: __('Name', 'elementor-pro'), remote_type: 'text', remote_id: 'name', remote_required: false }, { remote_label: __('Last Name', 'elementor-pro'), remote_type: 'text', remote_id: 'last_name', remote_required: false }, { remote_label: __('Company', 'elementor-pro'), remote_type: 'text', remote_id: 'company', remote_required: false }, { remote_label: __('Phone', 'elementor-pro'), remote_type: 'text', remote_id: 'phone', remote_required: false }, { remote_label: __('Country', 'elementor-pro'), remote_type: 'text', remote_id: 'country', remote_required: false }, { remote_label: __('State', 'elementor-pro'), remote_type: 'text', remote_id: 'state', remote_required: false }, { remote_label: __('City', 'elementor-pro'), remote_type: 'text', remote_id: 'city', remote_required: false }, { remote_label: __('Zip', 'elementor-pro'), remote_type: 'text', remote_id: 'zip', remote_required: false }]; for (const field in this.fields) { if (Object.prototype.hasOwnProperty.call(this.fields, field)) { remoteFields.push(this.fields[field]); } } this.getEditorControlView('mailerlite_fields_map').updateMap(remoteFields); }, getMailerliteCache(type, action, cacheKey, requestArgs) { if (_.has(this.cache[type], cacheKey)) { const data = {}; data[type] = this.cache[type][cacheKey]; return jQuery.Deferred().resolve(data); } requestArgs = _.extend({}, requestArgs, { service: 'mailerlite', mailerlite_action: action, custom_api_key: this.getEditorControlView('mailerlite_custom_api_key').getControlValue(), api_key: this.getEditorControlView('mailerlite_api_key_source').getControlValue() }); return this.fetchCache(type, cacheKey, requestArgs); }, onSectionActive() { BaseIntegrationModule.prototype.onSectionActive.apply(this, arguments); this.onMailerliteApiKeyUpdate(); } }); /***/ }, /***/ "../modules/forms/assets/js/editor/module.js" /*!***************************************************!*\ !*** ../modules/forms/assets/js/editor/module.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 _component = _interopRequireDefault(__webpack_require__(/*! ./component */ "../modules/forms/assets/js/editor/component.js")); class FormsModule extends elementorModules.editor.utils.Module { onElementorInit() { const ReplyToField = __webpack_require__(/*! ./reply-to-field */ "../modules/forms/assets/js/editor/reply-to-field.js"), Recaptcha = __webpack_require__(/*! ./recaptcha */ "../modules/forms/assets/js/editor/recaptcha.js"), MailerLite = __webpack_require__(/*! ./integrations/mailerlite */ "../modules/forms/assets/js/editor/integrations/mailerlite.js"), Mailchimp = __webpack_require__(/*! ./integrations/mailchimp */ "../modules/forms/assets/js/editor/integrations/mailchimp.js"), Drip = __webpack_require__(/*! ./integrations/drip */ "../modules/forms/assets/js/editor/integrations/drip.js"), ActiveCampaign = __webpack_require__(/*! ./integrations/activecampaign */ "../modules/forms/assets/js/editor/integrations/activecampaign.js"), GetResponse = __webpack_require__(/*! ./integrations/getresponse */ "../modules/forms/assets/js/editor/integrations/getresponse.js"), ConvertKit = __webpack_require__(/*! ./integrations/convertkit */ "../modules/forms/assets/js/editor/integrations/convertkit.js"), EmailDeliverability = __webpack_require__(/*! ./hints/email-deliverability */ "../modules/forms/assets/js/editor/hints/email-deliverability.js"); this.replyToField = new ReplyToField(); this.mailchimp = new Mailchimp('form'); this.recaptcha = new Recaptcha('form'); this.drip = new Drip('form'); this.activecampaign = new ActiveCampaign('form'); this.getresponse = new GetResponse('form'); this.convertkit = new ConvertKit('form'); this.mailerlite = new MailerLite('form'); // Form fields const TimeField = __webpack_require__(/*! ./fields/time */ "../modules/forms/assets/js/editor/fields/time.js"), DateField = __webpack_require__(/*! ./fields/date */ "../modules/forms/assets/js/editor/fields/date.js"), AcceptanceField = __webpack_require__(/*! ./fields/acceptance */ "../modules/forms/assets/js/editor/fields/acceptance.js"), UploadField = __webpack_require__(/*! ./fields/upload */ "../modules/forms/assets/js/editor/fields/upload.js"), TelField = __webpack_require__(/*! ./fields/tel */ "../modules/forms/assets/js/editor/fields/tel.js"); this.Fields = { time: new TimeField('form'), date: new DateField('form'), tel: new TelField('form'), acceptance: new AcceptanceField('form'), upload: new UploadField('form') }; elementor.addControlView('Fields_map', __webpack_require__(/*! ./fields-map-control */ "../modules/forms/assets/js/editor/fields-map-control.js")); elementor.addControlView('form-fields-repeater', __webpack_require__(/*! ./fields-repeater-control */ "../modules/forms/assets/js/editor/fields-repeater-control.js")); const AtomicFormPromotion = __webpack_require__(/*! ./hints/atomic-form-promotion */ "../modules/forms/assets/js/editor/hints/atomic-form-promotion.js"); this.hints = { emailDeliverability: new EmailDeliverability(), atomicFormPromotion: new AtomicFormPromotion() }; } onElementorInitComponents() { $e.components.register(new _component.default({ manager: this })); } } exports["default"] = FormsModule; /***/ }, /***/ "../modules/forms/assets/js/editor/recaptcha.js" /*!******************************************************!*\ !*** ../modules/forms/assets/js/editor/recaptcha.js ***! \******************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ "../node_modules/core-js/modules/esnext.iterator.constructor.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.find.js */ "../node_modules/core-js/modules/esnext.iterator.find.js"); module.exports = elementorModules.editor.utils.Module.extend({ enqueueRecaptchaJs(url, type) { if (!elementorFrontend.elements.$body.find('[src="' + url + '"]').length) { elementorFrontend.elements.$body.append(''); } }, renderField(inputField, item) { inputField += '
'; inputField += this.getDataSettings(item); inputField += '
'; return inputField; }, getDataSettings(item) { const config = elementorPro.config.forms[item.field_type], srcURL = 'https://www.google.com/recaptcha/api.js?render=explicit'; if (!config.enabled) { return '
' + config.setup_message + '
'; } let recaptchaData = 'data-sitekey="' + config.site_key + '" data-type="' + config.type + '"'; switch (config.type) { case 'v3': recaptchaData += ' data-action="form" data-size="invisible" data-badge="' + item.recaptcha_badge + '"'; break; case 'v2_checkbox': recaptchaData += ' data-theme="' + item.recaptcha_style + '"'; recaptchaData += ' data-size="' + item.recaptcha_size + '"'; break; } this.enqueueRecaptchaJs(srcURL, config.type); return '
'; }, filterItem(item) { if ('recaptcha' === item.field_type) { item.field_label = false; } return item; }, onInit() { elementor.hooks.addFilter('elementor_pro/forms/content_template/item', this.filterItem); elementor.hooks.addFilter('elementor_pro/forms/content_template/field/recaptcha', this.renderField, 10, 2); elementor.hooks.addFilter('elementor_pro/forms/content_template/field/recaptcha_v3', this.renderField, 10, 2); } }); /***/ }, /***/ "../modules/forms/assets/js/editor/reply-to-field.js" /*!***********************************************************!*\ !*** ../modules/forms/assets/js/editor/reply-to-field.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")["__"]; __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ "../node_modules/core-js/modules/esnext.iterator.constructor.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.map.js */ "../node_modules/core-js/modules/esnext.iterator.map.js"); module.exports = function () { var editor, editedModel, replyToControl; var setReplyToControl = function () { replyToControl = editor.collection.findWhere({ name: 'email_reply_to' }); }; var getReplyToView = function () { return editor.children.findByModelCid(replyToControl.cid); }; var refreshReplyToElement = function () { var replyToView = getReplyToView(); if (replyToView) { replyToView.render(); } }; var updateReplyToOptions = function () { var settingsModel = editedModel.get('settings'), emailModels = settingsModel.get('form_fields').where({ field_type: 'email' }), emailFields; emailModels = _.reject(emailModels, { field_label: '' }); emailFields = _.map(emailModels, function (model) { return { id: model.get('custom_id'), label: sprintf(/* translators: %s: Field label. */ __('%s Field', 'elementor-pro'), model.get('field_label')) }; }); replyToControl.set('options', { '': replyToControl.get('options')[''] }); _.each(emailFields, function (emailField) { replyToControl.get('options')[emailField.id] = emailField.label; }); refreshReplyToElement(); }; var updateDefaultReplyTo = function (settingsModel) { replyToControl.get('options')[''] = settingsModel.get('email_from'); refreshReplyToElement(); }; var onFormFieldsChange = function (changedModel) { // If it's repeater field if (changedModel.get('custom_id')) { if ('email' === changedModel.get('field_type')) { updateReplyToOptions(); } } if (changedModel.changed.email_from) { updateDefaultReplyTo(changedModel); } }; var onPanelShow = function (panel, model) { editor = panel.getCurrentPageView(); editedModel = model; setReplyToControl(); var settingsModel = editedModel.get('settings'); settingsModel.on('change', onFormFieldsChange); updateDefaultReplyTo(settingsModel); updateReplyToOptions(); }; var init = function () { elementor.hooks.addAction('panel/open_editor/widget/form', onPanelShow); }; init(); }; /***/ }, /***/ "../modules/global-widget/assets/js/editor/commands-data/index.js" /*!************************************************************************!*\ !*** ../modules/global-widget/assets/js/editor/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 () { return _templates.Templates; } })); var _templates = __webpack_require__(/*! ./templates */ "../modules/global-widget/assets/js/editor/commands-data/templates.js"); /***/ }, /***/ "../modules/global-widget/assets/js/editor/commands-data/templates.js" /*!****************************************************************************!*\ !*** ../modules/global-widget/assets/js/editor/commands-data/templates.js ***! \****************************************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = exports.Templates = void 0; __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ "../node_modules/core-js/modules/esnext.iterator.constructor.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.for-each.js */ "../node_modules/core-js/modules/esnext.iterator.for-each.js"); /** * Data command: 'document/global/templates', accessing 'global-widget/templates' remote endpoint. * Used to get global templates from the backend/cache. */ class Templates extends $e.modules.CommandData { static getEndpointFormat() { return 'global-widget/templates'; } onAfterApply(args = {}, result) { // TODO: Remove - Manually handling of cache - This behavior should be automatically handled by passed `options` to $e.data. $e.data.deleteCache(this.component, 'document/global/global-widget/templates', args.query); Object.entries(result.data).forEach(([templateID, data]) => { $e.data.setCache(this.component, `document/global/global-widget/templates/${templateID}`, {}, data); }); } } exports.Templates = Templates; var _default = exports["default"] = Templates; /***/ }, /***/ "../modules/global-widget/assets/js/editor/commands-internal/index.js" /*!****************************************************************************!*\ !*** ../modules/global-widget/assets/js/editor/commands-internal/index.js ***! \****************************************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "SaveTemplates", ({ enumerable: true, get: function () { return _saveTemplates.SaveTemplates; } })); var _saveTemplates = __webpack_require__(/*! ./save-templates */ "../modules/global-widget/assets/js/editor/commands-internal/save-templates.js"); /***/ }, /***/ "../modules/global-widget/assets/js/editor/commands-internal/save-templates.js" /*!*************************************************************************************!*\ !*** ../modules/global-widget/assets/js/editor/commands-internal/save-templates.js ***! \*************************************************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = exports.SaveTemplates = void 0; __webpack_require__(/*! core-js/modules/es.array.push.js */ "../node_modules/core-js/modules/es.array.push.js"); __webpack_require__(/*! core-js/modules/es.json.stringify.js */ "../node_modules/core-js/modules/es.json.stringify.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ "../node_modules/core-js/modules/esnext.iterator.constructor.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.for-each.js */ "../node_modules/core-js/modules/esnext.iterator.for-each.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.map.js */ "../node_modules/core-js/modules/esnext.iterator.map.js"); /** * The command should run over all changed global widgets and * update the settings of the `document/global/global-widget/templates`, * And save cache templates according to the widget(s) which are under the save process. */ class SaveTemplates extends $e.modules.CommandInternalBase { apply() { const templateModels = this.getCurrentTemplatesModels(this.component.changedContainersId); if (!templateModels.length) { return; } return new Promise((resolve, reject) => { elementorCommon.ajax.addRequest('update_templates', { data: { templates: templateModels.map(templateModel => { // Map it to backend format. return { id: templateModel.get('id'), content: JSON.stringify([templateModel.toJSON()]), source: 'local', type: 'widget' }; }) }, error: reject, success: () => { /** * Since is used `document/global/global-widget/templates` to hold all globals template data. * And currently there are no request to update template data on each update of global widget, * editing the template will be not synced with The real latest data. * In other words, if dont update templates on each save, * Then the new created template will be different with the actual (saved) one, so updating the globals template * according to saved global widget is the solution. */ // Clear changed containers. this.component.changedContainersId = {}; templateModels.forEach(template => { const settings = template.get('settings'); $e.data.setCache(this.component, `document/global/global-widget/templates/${template.id}`, {}, { settings }); }); resolve(templateModels); } }); }); } getCurrentTemplatesModels(changedContainersId) { const templatesData = []; Object.entries(changedContainersId).forEach(([templateID, containerId]) => { const templateData = $e.data.getCache(this.component, `document/global/global-widget/templates/${templateID}`); if (!templateData) { if ($e.devTools) { $e.devTools.log.warn(`$e.data.getCache( component, \`document/global/global-widget/templates/${templateID}\` ) - not found.`); } } const container = elementor.getContainer(containerId); if (!container) { return; } templatesData.push(new Backbone.Model({ id: templateID, elType: 'widget', widgetType: container.model.get('widgetType'), settings: container.settings.toJSON({ remove: 'default' }), templateID })); }); return templatesData; } } exports.SaveTemplates = SaveTemplates; var _default = exports["default"] = SaveTemplates; /***/ }, /***/ "../modules/global-widget/assets/js/editor/commands/index.js" /*!*******************************************************************!*\ !*** ../modules/global-widget/assets/js/editor/commands/index.js ***! \*******************************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "Link", ({ enumerable: true, get: function () { return _link.Link; } })); Object.defineProperty(exports, "Unlink", ({ enumerable: true, get: function () { return _unlink.Unlink; } })); var _link = __webpack_require__(/*! ./link */ "../modules/global-widget/assets/js/editor/commands/link.js"); var _unlink = __webpack_require__(/*! ./unlink */ "../modules/global-widget/assets/js/editor/commands/unlink.js"); /***/ }, /***/ "../modules/global-widget/assets/js/editor/commands/link.js" /*!******************************************************************!*\ !*** ../modules/global-widget/assets/js/editor/commands/link.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["default"] = exports.Link = void 0; __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ "../node_modules/core-js/modules/esnext.iterator.constructor.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.for-each.js */ "../node_modules/core-js/modules/esnext.iterator.for-each.js"); class Link extends $e.modules.editor.document.CommandHistoryBase { validateArgs(args) { this.requireContainer(args); this.requireArgumentConstructor('data', Object, args); const { containers = [args.container] } = args; containers.forEach((/* Container */container) => { if ('global' === container.model.get('widgetType')) { throw Error(`Invalid container, id: '${container.id}' is already global.`); } }); } getHistory(args) { const { data } = args; return { title: elementor.widgetsCache[data.widgetType].title, subTitle: data.title, type: __('Linked to Global', 'elementor-pro') }; } apply(args) { const { data, containers = [args.container] } = args; containers.forEach((/** Container */container) => { const widgetModel = container.model, widgetModelIndex = widgetModel.collection.indexOf(widgetModel); data.elType = data.type; data.settings = widgetModel.get('settings').attributes; data.widgetType = widgetModel.get('widgetType'); const elementModel = elementorPro.modules.globalWidget.addGlobalWidget(data.template_id, data), elementModelAttributes = elementModel.attributes; $e.data.setCache(this.component, `document/global/global-widget/templates/${data.template_id}`, {}, data); $e.run('document/elements/create', { container: container.parent, model: { id: elementorCommon.helpers.getUniqueId(), elType: elementModelAttributes.elType, widgetType: elementModelAttributes.widgetType, templateID: data.template_id }, options: { at: widgetModelIndex } }); $e.run('document/elements/delete', { container }); }); $e.route('panel/elements/global'); } } exports.Link = Link; var _default = exports["default"] = Link; /***/ }, /***/ "../modules/global-widget/assets/js/editor/commands/unlink.js" /*!********************************************************************!*\ !*** ../modules/global-widget/assets/js/editor/commands/unlink.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["default"] = exports.Unlink = void 0; __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ "../node_modules/core-js/modules/esnext.iterator.constructor.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.for-each.js */ "../node_modules/core-js/modules/esnext.iterator.for-each.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.map.js */ "../node_modules/core-js/modules/esnext.iterator.map.js"); class Unlink extends $e.modules.editor.document.CommandHistoryBase { validateArgs(args) { this.requireContainer(args); } getHistory(args) { const { containers = [args.container] } = args; return { title: elementor.helpers.getModelLabel(containers[0].model), // TODO: add support multi containers. type: __('Unlink Widget', 'elementor-pro') }; } async apply(args) { const { containers = [args.container] } = args; const ids = containers.map((/** Container */container) => container.model.get('templateID')); const { data } = await $e.data.get('document/global/templates', { ids }); containers.forEach((/** Container */container) => { const id = container.model.get('templateID'), elementModel = elementorPro.modules.globalWidget.createGlobalModel(id, data[id]); $e.run('document/elements/create', { container: container.parent, model: { id: elementorCommon.helpers.getUniqueId(), elType: 'widget', widgetType: elementModel.get('widgetType'), settings: elementorCommon.helpers.cloneObject(elementModel.get('settings').attributes), defaultEditSettings: elementorCommon.helpers.cloneObject(elementModel.get('editSettings').attributes) }, options: { at: container.model.collection.indexOf(container.model), edit: true } }); $e.run('document/elements/delete', { container }); }); } } exports.Unlink = Unlink; var _default = exports["default"] = Unlink; /***/ }, /***/ "../modules/global-widget/assets/js/editor/component.js" /*!**************************************************************!*\ !*** ../modules/global-widget/assets/js/editor/component.js ***! \**************************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ "../node_modules/core-js/modules/esnext.iterator.constructor.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.for-each.js */ "../node_modules/core-js/modules/esnext.iterator.for-each.js"); var commands = _interopRequireWildcard(__webpack_require__(/*! ./commands/ */ "../modules/global-widget/assets/js/editor/commands/index.js")); var commandsInternal = _interopRequireWildcard(__webpack_require__(/*! ./commands-internal/ */ "../modules/global-widget/assets/js/editor/commands-internal/index.js")); var commandsData = _interopRequireWildcard(__webpack_require__(/*! ./commands-data/ */ "../modules/global-widget/assets/js/editor/commands-data/index.js")); var hooks = _interopRequireWildcard(__webpack_require__(/*! ./hooks/ */ "../modules/global-widget/assets/js/editor/hooks/index.js")); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (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 (const 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); } class Component extends $e.modules.ComponentBase { /** * Holds all the template ids, which not available due they simply not exist in document data. * Those templates will be loaded later after requesting 'panel/elements/global' (global elements panel). * * @type {Array} */ notLoadedTemplatesIds = []; /** * Last changed global widget(s). * * @type {null | Array} Container[] */ lastChangedContainers = null; /** * Hold unsaved changed container id for each template id. * * Each settings command that run over global widget, this logic is applied: * `changedContainersId[ templateId ] = containerId`. * * @type {{}} */ changedContainersId = {}; registerAPI() { super.registerAPI(); // TODO: Remove when route hooks are available. $e.routes.on('run:after', (component, route) => { if ('panel/elements/global' === route) { this.onRoutePanelElementsGlobal(); } }); } getNamespace() { return 'document/global'; } defaultCommands() { return this.importCommands(commands); } defaultCommandsInternal() { return this.importCommands(commandsInternal); } defaultData() { return this.importCommands(commandsData); } defaultHooks() { return this.importHooks(hooks); } onRoutePanelElementsGlobal() { if (this.notLoadedTemplatesIds.length) { $e.data.get('document/global/templates', { ids: this.notLoadedTemplatesIds }).then(() => { // Clear. this.notLoadedTemplatesIds = []; }); } } /** * Update each 'Backbone.Model' will handle issue when the global widget saved only in draft. * Scenario for better understanding the issue: * - Have global widget save with custom color, refresh the editor. * - Change it to global global color and save as draft (no update template). * - Create another global-widget from same template. * - Update one of first global widget that saved in draft to use custom color. * - By dependency of only 'container.settings' the new template will have the new custom color, * but new custom color will unseen (since it has global). * * @param {Object} targetContainer Container class */ updateGlobalsRecursive(targetContainer) { const modelsToUpdate = ['dynamic', 'globals', 'settings']; elementor.getPreviewContainer().forEachChildrenRecursive(container => { // Will skip self. if (targetContainer !== container && parseInt(container.model.get('templateID')) === parseInt(targetContainer.model.get('templateID'))) { modelsToUpdate.forEach(modelName => { const model = targetContainer[modelName]; if (model instanceof Backbone.Model) { const accordingTo = 'settings' === modelName ? targetContainer.settings.attributes : model.changed; Object.entries(accordingTo).forEach(([key, setting]) => { container[modelName].set(key, setting); }); } }); container.render(); } }); } } exports["default"] = Component; /***/ }, /***/ "../modules/global-widget/assets/js/editor/hooks/data/base-global-widget-prepare-update.js" /*!*************************************************************************************************!*\ !*** ../modules/global-widget/assets/js/editor/hooks/data/base-global-widget-prepare-update.js ***! \*************************************************************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = exports.BaseGlobalWidgetPrepareUpdate = void 0; __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ "../node_modules/core-js/modules/esnext.iterator.constructor.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.filter.js */ "../node_modules/core-js/modules/esnext.iterator.filter.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.for-each.js */ "../node_modules/core-js/modules/esnext.iterator.for-each.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.map.js */ "../node_modules/core-js/modules/esnext.iterator.map.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.some.js */ "../node_modules/core-js/modules/esnext.iterator.some.js"); /** * Hook is responsible for saving last changed global widget and update * which containers are needed for updating the template. */ class BaseGlobalWidgetPrepareUpdate extends $e.modules.hookData.After { getConditions(args) { const { containers = [args.container] } = args; // When the container is repeater item it should add the global repeater itself to the `lastChangedContainers` and not the repeater item return containers.some(container => container.renderer?.model?.get('templateID')); } apply(args) { const { containers = [args.container] } = args, component = $e.components.get('document/global'); // Filter only the containers that are global widgets. (Can pass multiple containers that some of them global widgets and some of them not). const globalWidgetContainers = containers.filter(container => container.renderer?.model?.get('templateID')); component.lastChangedContainers = globalWidgetContainers.map(container => container.renderer); globalWidgetContainers.forEach(container => { component.changedContainersId[container.renderer.model.get('templateID')] = container.renderer.id; }); } } exports.BaseGlobalWidgetPrepareUpdate = BaseGlobalWidgetPrepareUpdate; var _default = exports["default"] = BaseGlobalWidgetPrepareUpdate; /***/ }, /***/ "../modules/global-widget/assets/js/editor/hooks/data/document/elements/set-settings/global-widget-prepare-update-element-set-settings.js" /*!************************************************************************************************************************************************!*\ !*** ../modules/global-widget/assets/js/editor/hooks/data/document/elements/set-settings/global-widget-prepare-update-element-set-settings.js ***! \************************************************************************************************************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = exports.GlobalWidgetPrepareUpdateElementSetSettings = void 0; var _baseGlobalWidgetPrepareUpdate = __webpack_require__(/*! ../../../base-global-widget-prepare-update */ "../modules/global-widget/assets/js/editor/hooks/data/base-global-widget-prepare-update.js"); /** * Hook is responsible for saving last changed global widget and update * which containers are needed for updating the template. */ class GlobalWidgetPrepareUpdateElementSetSettings extends _baseGlobalWidgetPrepareUpdate.BaseGlobalWidgetPrepareUpdate { getCommand() { return 'document/elements/set-settings'; } getId() { return 'elementor-pro-global-widget-prepare-update-element-set-settings'; } } exports.GlobalWidgetPrepareUpdateElementSetSettings = GlobalWidgetPrepareUpdateElementSetSettings; var _default = exports["default"] = GlobalWidgetPrepareUpdateElementSetSettings; /***/ }, /***/ "../modules/global-widget/assets/js/editor/hooks/data/document/history/end-log/global-widget-do-update.js" /*!****************************************************************************************************************!*\ !*** ../modules/global-widget/assets/js/editor/hooks/data/document/history/end-log/global-widget-do-update.js ***! \****************************************************************************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = exports.GlobalWidgetDoUpdate = void 0; __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ "../node_modules/core-js/modules/esnext.iterator.constructor.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.for-each.js */ "../node_modules/core-js/modules/esnext.iterator.for-each.js"); /** * On after all `document/elements/set-settings` has stop, the history mechanism will call to * `document/history/end-log` the hook will update all other global widgets according to this last change. */ class GlobalWidgetDoUpdate extends $e.modules.hookData.After { getCommand() { return 'document/history/end-log'; } getId() { return 'elementor-pro-global-widget-do-update'; } getConditions() { return $e.components.get('document/global').lastChangedContainers; } apply() { const component = $e.components.get('document/global'), containers = component.lastChangedContainers; containers.forEach(container => component.updateGlobalsRecursive(container)); component.lastChangedContainers = null; } } exports.GlobalWidgetDoUpdate = GlobalWidgetDoUpdate; var _default = exports["default"] = GlobalWidgetDoUpdate; /***/ }, /***/ "../modules/global-widget/assets/js/editor/hooks/data/document/repeater/insert/global-widget-prepare-update-repeater-insert.js" /*!*************************************************************************************************************************************!*\ !*** ../modules/global-widget/assets/js/editor/hooks/data/document/repeater/insert/global-widget-prepare-update-repeater-insert.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.GlobalWidgetPrepareUpdateRepeaterInsert = void 0; var _baseGlobalWidgetPrepareUpdate = _interopRequireDefault(__webpack_require__(/*! ../../../base-global-widget-prepare-update */ "../modules/global-widget/assets/js/editor/hooks/data/base-global-widget-prepare-update.js")); /** * Hook is responsible for saving last changed global widget and update * which containers are needed for updating the template. */ class GlobalWidgetPrepareUpdateRepeaterInsert extends _baseGlobalWidgetPrepareUpdate.default { getCommand() { return 'document/repeater/insert'; } getId() { return 'elementor-pro-global-widget-prepare-update-repeater-insert'; } } exports.GlobalWidgetPrepareUpdateRepeaterInsert = GlobalWidgetPrepareUpdateRepeaterInsert; var _default = exports["default"] = GlobalWidgetPrepareUpdateRepeaterInsert; /***/ }, /***/ "../modules/global-widget/assets/js/editor/hooks/data/document/repeater/remove/global-widget-prepare-update-repeater-remove.js" /*!*************************************************************************************************************************************!*\ !*** ../modules/global-widget/assets/js/editor/hooks/data/document/repeater/remove/global-widget-prepare-update-repeater-remove.js ***! \*************************************************************************************************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = exports.GlobalWidgetPrepareUpdateRepeaterRemove = void 0; var _baseGlobalWidgetPrepareUpdate = __webpack_require__(/*! ../../../base-global-widget-prepare-update */ "../modules/global-widget/assets/js/editor/hooks/data/base-global-widget-prepare-update.js"); /** * Hook is responsible for saving last changed global widget and update * which containers are needed for updating the template. */ class GlobalWidgetPrepareUpdateRepeaterRemove extends _baseGlobalWidgetPrepareUpdate.BaseGlobalWidgetPrepareUpdate { getCommand() { return 'document/repeater/remove'; } getId() { return 'elementor-pro-global-widget-prepare-update-repeater-remove'; } } exports.GlobalWidgetPrepareUpdateRepeaterRemove = GlobalWidgetPrepareUpdateRepeaterRemove; var _default = exports["default"] = GlobalWidgetPrepareUpdateRepeaterRemove; /***/ }, /***/ "../modules/global-widget/assets/js/editor/hooks/data/document/save/save/global-widget-save-templates.js" /*!***************************************************************************************************************!*\ !*** ../modules/global-widget/assets/js/editor/hooks/data/document/save/save/global-widget-save-templates.js ***! \***************************************************************************************************************/ (__unused_webpack_module, exports) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = exports.GlobalWidgetSaveTemplates = void 0; /** * The hook is responsible for updating the global templates, on editor save, * hook will run 'document/global/save-templates' to handle the save. */ class GlobalWidgetSaveTemplates extends $e.modules.hookData.After { getCommand() { return 'document/save/save'; } getId() { return 'elementor-pro-global-widget-save-templates'; } getConditions(args) { if (!Object.keys($e.components.get('document/global').changedContainersId).length) { return false; } const { document = elementor.documents.getCurrent() } = args; return document.config.panel.has_elements && args.status && -1 !== ['private', 'publish'].indexOf(args.status); } apply() { $e.internal('document/global/save-templates'); } } exports.GlobalWidgetSaveTemplates = GlobalWidgetSaveTemplates; var _default = exports["default"] = GlobalWidgetSaveTemplates; /***/ }, /***/ "../modules/global-widget/assets/js/editor/hooks/data/editor/documents/attach-preview/global-widget-load-templates.js" /*!****************************************************************************************************************************!*\ !*** ../modules/global-widget/assets/js/editor/hooks/data/editor/documents/attach-preview/global-widget-load-templates.js ***! \****************************************************************************************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = exports.GlobalWidgetLoadTemplates = void 0; __webpack_require__(/*! core-js/modules/es.array.push.js */ "../node_modules/core-js/modules/es.array.push.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ "../node_modules/core-js/modules/esnext.iterator.constructor.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.for-each.js */ "../node_modules/core-js/modules/esnext.iterator.for-each.js"); /** * Hook responsible to load current active templates ( global widget that are in used ) to `$e.data.cache`, * also it tells the component which templates are not active and required to be loaded from the backend. */ class GlobalWidgetLoadTemplates extends $e.modules.hookData.After { /** * Since the hook called on each document load, but requires to run only the initial attach preview. * * @type {boolean} */ static calledOnce = false; initialize() { // Since 'initialize' called before the component is registered. // TODO: apply this logic at HookBase for '.initialize. setTimeout(() => { this.component = $e.components.get('document/global'); }); } getCommand() { return 'editor/documents/attach-preview'; } getId() { return 'elementor-pro-global-widget-load-templates'; } getConditions() { return !GlobalWidgetLoadTemplates.calledOnce; } apply() { GlobalWidgetLoadTemplates.calledOnce = true; Object.entries(elementorPro.config.widget_templates).forEach(([id, data]) => { elementorPro.modules.globalWidget.addGlobalWidget(id, data); this.addTemplateToCache(id); }); } addTemplateToCache(id) { const container = elementor.getPreviewContainer().children.findRecursive(i => parseInt(i.model.get('templateID')) === parseInt(id)); if (!container) { return this.component.notLoadedTemplatesIds.push(id); } const args = { id: container.model.get('templateID'), elType: 'widget', widgetType: container.model.get('widgetType'), settings: container.settings.toJSON({ remove: 'default' }), templateID: container.model.get('templateID') }; $e.data.setCache(this.component, `document/global/global-widget/templates/${id}`, {}, args); } } exports.GlobalWidgetLoadTemplates = GlobalWidgetLoadTemplates; var _default = exports["default"] = GlobalWidgetLoadTemplates; /***/ }, /***/ "../modules/global-widget/assets/js/editor/hooks/data/index.js" /*!*********************************************************************!*\ !*** ../modules/global-widget/assets/js/editor/hooks/data/index.js ***! \*********************************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "GlobalWidgetDoUpdate", ({ enumerable: true, get: function () { return _globalWidgetDoUpdate.GlobalWidgetDoUpdate; } })); Object.defineProperty(exports, "GlobalWidgetLoadTemplates", ({ enumerable: true, get: function () { return _globalWidgetLoadTemplates.GlobalWidgetLoadTemplates; } })); Object.defineProperty(exports, "GlobalWidgetPrepareUpdateElementSetSettings", ({ enumerable: true, get: function () { return _globalWidgetPrepareUpdateElementSetSettings.GlobalWidgetPrepareUpdateElementSetSettings; } })); Object.defineProperty(exports, "GlobalWidgetPrepareUpdateRepeaterInsert", ({ enumerable: true, get: function () { return _globalWidgetPrepareUpdateRepeaterInsert.GlobalWidgetPrepareUpdateRepeaterInsert; } })); Object.defineProperty(exports, "GlobalWidgetPrepareUpdateRepeaterRemove", ({ enumerable: true, get: function () { return _globalWidgetPrepareUpdateRepeaterRemove.GlobalWidgetPrepareUpdateRepeaterRemove; } })); Object.defineProperty(exports, "GlobalWidgetSaveTemplates", ({ enumerable: true, get: function () { return _globalWidgetSaveTemplates.GlobalWidgetSaveTemplates; } })); var _globalWidgetPrepareUpdateElementSetSettings = __webpack_require__(/*! ./document/elements/set-settings/global-widget-prepare-update-element-set-settings */ "../modules/global-widget/assets/js/editor/hooks/data/document/elements/set-settings/global-widget-prepare-update-element-set-settings.js"); var _globalWidgetPrepareUpdateRepeaterInsert = __webpack_require__(/*! ./document/repeater/insert/global-widget-prepare-update-repeater-insert */ "../modules/global-widget/assets/js/editor/hooks/data/document/repeater/insert/global-widget-prepare-update-repeater-insert.js"); var _globalWidgetPrepareUpdateRepeaterRemove = __webpack_require__(/*! ./document/repeater/remove/global-widget-prepare-update-repeater-remove */ "../modules/global-widget/assets/js/editor/hooks/data/document/repeater/remove/global-widget-prepare-update-repeater-remove.js"); var _globalWidgetDoUpdate = __webpack_require__(/*! ./document/history/end-log/global-widget-do-update */ "../modules/global-widget/assets/js/editor/hooks/data/document/history/end-log/global-widget-do-update.js"); var _globalWidgetSaveTemplates = __webpack_require__(/*! ./document/save/save/global-widget-save-templates */ "../modules/global-widget/assets/js/editor/hooks/data/document/save/save/global-widget-save-templates.js"); var _globalWidgetLoadTemplates = __webpack_require__(/*! ./editor/documents/attach-preview/global-widget-load-templates */ "../modules/global-widget/assets/js/editor/hooks/data/editor/documents/attach-preview/global-widget-load-templates.js"); /***/ }, /***/ "../modules/global-widget/assets/js/editor/hooks/index.js" /*!****************************************************************!*\ !*** ../modules/global-widget/assets/js/editor/hooks/index.js ***! \****************************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ "../node_modules/core-js/modules/esnext.iterator.constructor.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.for-each.js */ "../node_modules/core-js/modules/esnext.iterator.for-each.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); var _data = __webpack_require__(/*! ./data/ */ "../modules/global-widget/assets/js/editor/hooks/data/index.js"); Object.keys(_data).forEach(function (key) { if (key === "default" || key === "__esModule") return; if (key in exports && exports[key] === _data[key]) return; Object.defineProperty(exports, key, { enumerable: true, get: function () { return _data[key]; } }); }); var _ui = __webpack_require__(/*! ./ui/ */ "../modules/global-widget/assets/js/editor/hooks/ui/index.js"); Object.keys(_ui).forEach(function (key) { if (key === "default" || key === "__esModule") return; if (key in exports && exports[key] === _ui[key]) return; Object.defineProperty(exports, key, { enumerable: true, get: function () { return _ui[key]; } }); }); /***/ }, /***/ "../modules/global-widget/assets/js/editor/hooks/ui/document/elements/set-settings/global-widget-history-update.js" /*!*************************************************************************************************************************!*\ !*** ../modules/global-widget/assets/js/editor/hooks/ui/document/elements/set-settings/global-widget-history-update.js ***! \*************************************************************************************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = exports.GlobalWidgetHistoryUpdate = void 0; __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ "../node_modules/core-js/modules/esnext.iterator.constructor.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.for-each.js */ "../node_modules/core-js/modules/esnext.iterator.for-each.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.some.js */ "../node_modules/core-js/modules/esnext.iterator.some.js"); /** * Since editing of global widget applies changes to the all widgets with the same template id, * the same needs to be done on undo/redo. */ class GlobalWidgetHistoryUpdate extends $e.modules.hookUI.After { getCommand() { return 'document/elements/set-settings'; } getId() { return 'elementor-pro-global-widget-history-update'; } getContainerType() { return 'widget'; } getConditions(args) { const { containers = [args.container] } = args; return !elementor.documents.getCurrent().history.getActive() && containers.some(container => container.model.get('templateID')); } apply(args) { const { containers = [args.container] } = args; containers.forEach(container => $e.components.get('document/global').updateGlobalsRecursive(container)); } } exports.GlobalWidgetHistoryUpdate = GlobalWidgetHistoryUpdate; var _default = exports["default"] = GlobalWidgetHistoryUpdate; /***/ }, /***/ "../modules/global-widget/assets/js/editor/hooks/ui/index.js" /*!*******************************************************************!*\ !*** ../modules/global-widget/assets/js/editor/hooks/ui/index.js ***! \*******************************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "GlobalWidgetHistoryUpdate", ({ enumerable: true, get: function () { return _globalWidgetHistoryUpdate.GlobalWidgetHistoryUpdate; } })); var _globalWidgetHistoryUpdate = __webpack_require__(/*! ./document/elements/set-settings/global-widget-history-update */ "../modules/global-widget/assets/js/editor/hooks/ui/document/elements/set-settings/global-widget-history-update.js"); /***/ }, /***/ "../modules/global-widget/assets/js/editor/module.js" /*!***********************************************************!*\ !*** ../modules/global-widget/assets/js/editor/module.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 _component = _interopRequireDefault(__webpack_require__(/*! ./component */ "../modules/global-widget/assets/js/editor/component.js")); class Module extends elementorModules.editor.utils.Module { panelWidgets = new Backbone.Collection(); addGlobalWidget(templateId, templateData) { return this.panelWidgets.add(this.createGlobalModel(templateId, templateData)); } createGlobalModel(templateId, templateData) { templateData = Object.assign({}, templateData, { id: templateId, categories: [], icon: elementor.widgetsCache[templateData.widgetType].icon, widgetType: templateData.widgetType, custom: { templateID: templateId } }); const elementModel = new elementor.modules.elements.models.Element(templateData); elementModel.set('id', templateId); return elementModel; } setWidgetType() { elementor.hooks.addFilter('element/view', function (DefaultView, model) { if (model.get('templateID')) { return (__webpack_require__(/*! ./widget/view */ "../modules/global-widget/assets/js/editor/widget/view.js")["default"]); } return DefaultView; }); elementor.hooks.addFilter('element/model', function (DefaultModel, attrs) { if (attrs.templateID) { return (__webpack_require__(/*! ./widget/model */ "../modules/global-widget/assets/js/editor/widget/model.js")["default"]); } return DefaultModel; }); } registerTemplateType() { elementor.templates.registerTemplateType('widget', { showInLibrary: false, saveDialog: { title: __('Save your widget as a global widget', 'elementor-pro'), description: __('You\'ll be able to add this global widget to multiple areas on your site, and edit it from one single place.', 'elementor-pro') }, prepareSavedData(data) { data.widgetType = data.content[0].widgetType; return data; }, ajaxParams: { success: this.onWidgetTemplateSaved.bind(this) } }); } addPanelPage() { elementor.getPanelView().addPage('globalWidget', { view: __webpack_require__(/*! ./views/panel-page */ "../modules/global-widget/assets/js/editor/views/panel-page.js") }); } /** * @param {string} id - The ID. * @deprecated since 3.5.0, use `$e.data.getCache( `document/global/global-widget/templates/${ id }` )` instead. */ getGlobalModels(id) { elementorDevTools.deprecation.deprecated('elementorPro.modules.globalWidget.getGlobalModels( id )', '3.5.0', '$e.data.getCache( `document/global/global-widget/templates/${ id }` )'); return $e.data.getCache(this.component, `document/global/global-widget/templates/${id}`); } /** * @deprecated since 3.5.0, use `$e.internal( 'document/global/save-templates' )` instead. */ saveTemplates() { elementorDevTools.deprecation.deprecated('elementorPro.modules.globalWidget.saveTemplates()', '3.5.0', "$e.internal( 'document/global/save-templates' )"); $e.internal('document/global/save-templates'); } /** * @param {*} globalModel - global model. * @param {Function} callback - A callback function. * @deprecated since 3.5.0, use `$e.data.get( 'document/global/templates' )` instead. */ requestGlobalModelSettings(globalModel, callback) { elementorDevTools.deprecation.deprecated('elementorPro.modules.globalWidget.requestGlobalModelSettings()', '3.5.0', "$e.data.get( 'document/global/templates' )"); $e.data.get('document/global/templates', { ids: globalModel.id }).then(data => { callback(data); }); } setWidgetContextMenuSaveAction() { elementor.hooks.addFilter('elements/widget/contextMenuGroups', (groups, widget) => { const saveGroup = _.findWhere(groups, { name: 'save' }); if (!saveGroup) { return groups; } const saveAction = _.findWhere(saveGroup.actions, { name: 'save' }); if (elementorPro.config.should_show_promotion) { const iconLink = '' + ''; saveAction.shortcut = jQuery(iconLink); saveAction.isEnabled = () => false; delete saveAction.callback; return groups; } saveAction.callback = widget.save.bind(widget); delete saveAction.shortcut; return groups; }); } filterRegionViews(regionViews) { if (elementorPro.config.should_show_promotion) { _.extend(regionViews.global, { view: __webpack_require__(/*! ./views/promotion */ "../modules/global-widget/assets/js/editor/views/promotion.js"), options: {} }); return regionViews; } _.extend(regionViews.global, { view: __webpack_require__(/*! ./views/global-templates-view */ "../modules/global-widget/assets/js/editor/views/global-templates-view.js"), options: { collection: this.panelWidgets } }); return regionViews; } onElementorInit() { elementor.on('panel:init', () => { elementor.hooks.addFilter('panel/elements/regionViews', this.filterRegionViews.bind(this)); }); this.registerTemplateType(); this.setWidgetContextMenuSaveAction(); this.setWidgetType(); } onElementorInitComponents() { $e.components.register(new _component.default()); $e.data.get('document/global/templates', {}, { refresh: true }); } onElementorPreviewLoaded(isFirst) { if (!isFirst) { return; } this.addPanelPage(); $e.routes.register('panel/editor', 'global', args => { elementor.getPanelView().setPage('globalWidget', 'Global Editing', { editedView: args.view }); }); } onWidgetTemplateSaved(data) { elementor.templates.layout.hideModal(); const container = elementor.getContainer(elementor.templates.layout.modalContent.currentView.model.id); $e.run('document/global/link', { container, data }); } } exports["default"] = Module; /***/ }, /***/ "../modules/global-widget/assets/js/editor/views/global-templates-view.js" /*!********************************************************************************!*\ !*** ../modules/global-widget/assets/js/editor/views/global-templates-view.js ***! \********************************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; module.exports = elementor.modules.layouts.panel.pages.elements.views.Elements.extend({ id: 'elementor-global-templates', getEmptyView() { if (this.collection.length) { return null; } return __webpack_require__(/*! ./no-templates */ "../modules/global-widget/assets/js/editor/views/no-templates.js"); }, onFilterEmpty() {} }); /***/ }, /***/ "../modules/global-widget/assets/js/editor/views/no-templates.js" /*!***********************************************************************!*\ !*** ../modules/global-widget/assets/js/editor/views/no-templates.js ***! \***********************************************************************/ (module) { "use strict"; var GlobalWidgetsView = elementor.modules.layouts.panel.pages.elements.views.Global; module.exports = GlobalWidgetsView.extend({ template: '#tmpl-elementor-panel-global-widget-no-templates', id: 'elementor-panel-global-widget-no-templates', className: 'elementor-nerd-box elementor-panel-nerd-box e-responsive-panel-stretch' }); /***/ }, /***/ "../modules/global-widget/assets/js/editor/views/panel-page.js" /*!*********************************************************************!*\ !*** ../modules/global-widget/assets/js/editor/views/panel-page.js ***! \*********************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"]; module.exports = Marionette.ItemView.extend({ id: 'elementor-panel-global-widget', template: '#tmpl-elementor-panel-global-widget', ui: { editButton: '#elementor-global-widget-locked-edit .elementor-button', unlinkButton: '#elementor-global-widget-locked-unlink .elementor-button', loading: '#elementor-global-widget-loading' }, events: { 'click @ui.editButton': 'onEditButtonClick', 'click @ui.unlinkButton': 'onUnlinkButtonClick' }, initialize() { this.initUnlinkDialog(); }, buildUnlinkDialog() { var self = this; return elementorCommon.dialogsManager.createWidget('confirm', { id: 'elementor-global-widget-unlink-dialog', headerMessage: __('Unlink Widget', 'elementor-pro'), message: __('This will make the widget stop being global. It\'ll be reverted into being just a regular widget.', 'elementor-pro'), position: { my: 'center center', at: 'center center' }, strings: { confirm: __('Unlink', 'elementor-pro'), cancel: __('Cancel', 'elementor-pro') }, onConfirm() { self.getOption('editedView').unlink(); } }); }, initUnlinkDialog() { var dialog; this.getUnlinkDialog = function () { if (!dialog) { dialog = this.buildUnlinkDialog(); } return dialog; }; }, editGlobalModel() { var editedView = this.getOption('editedView'); $e.run('document/elements/select', { container: editedView.getContainer() }); }, onEditButtonClick() { this.editGlobalModel(); }, onUnlinkButtonClick() { this.getUnlinkDialog().show(); } }); /***/ }, /***/ "../modules/global-widget/assets/js/editor/views/promotion.js" /*!********************************************************************!*\ !*** ../modules/global-widget/assets/js/editor/views/promotion.js ***! \********************************************************************/ (module) { "use strict"; var GlobalWidgetsView = elementor.modules.layouts.panel.pages.elements.views.Global; module.exports = GlobalWidgetsView.extend({ template: '#tmpl-elementor-promotion', id: 'tmpl-elementor-promotion', className: 'elementor-nerd-box elementor-panel-nerd-box e-responsive-panel-stretch' }); /***/ }, /***/ "../modules/global-widget/assets/js/editor/widget/model.js" /*!*****************************************************************!*\ !*** ../modules/global-widget/assets/js/editor/widget/model.js ***! \*****************************************************************/ (__unused_webpack_module, exports) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; const ElementModel = elementor.modules.elements.models.Element; class Model extends ElementModel { initSettings() { // If global widget is created, the settings should come from recent template. // The widget that's hold the panel may not have the recent data, the template can be changed during the editing. if ($e.commands.is('document/elements/create')) { return this.initSettingsFromTemplate(); } super.initSettings(); } initEditSettings() { super.initEditSettings(); // Set default edit tab. this.get('editSettings').set('editTab', 'global'); } initSettingsFromTemplate() { const id = this.get('templateID'), component = $e.components.get('document/global'), data = $e.data.getCache(component, `document/global/global-widget/templates/${id}`) || this.attributes, elementModel = elementorPro.modules.globalWidget.createGlobalModel(id, data); this.set('settings', elementModel.get('settings')); elementorFrontend.config.elements.data[this.cid] = this.get('settings'); } } exports["default"] = Model; /***/ }, /***/ "../modules/global-widget/assets/js/editor/widget/view.js" /*!****************************************************************!*\ !*** ../modules/global-widget/assets/js/editor/widget/view.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["default"] = void 0; __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ "../node_modules/core-js/modules/esnext.iterator.constructor.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.filter.js */ "../node_modules/core-js/modules/esnext.iterator.filter.js"); const WidgetView = elementor.modules.elements.views.Widget; class View extends WidgetView { className() { return super.className() + ' elementor-global-widget elementor-global-' + this.model.get('templateID'); } addInlineEditingAttributes() { // See `this.removeInlineAddingAttributes` for more information. } unlink() { $e.run('document/global/unlink', { container: this.getContainer() }); } onEditRequest() { $e.route('panel/editor/global', { view: this }); } getContextMenuGroups() { // Remove 'Save as global' for global widget view. return super.getContextMenuGroups().filter(group => 'save' !== group.name); } getContainer() { if (this.container) { return this.container; } const container = super.getContainer(); container.label = container.label + ' (' + __('global', 'elementor-pro') + ')'; return container; } render() { super.render(); setTimeout(this.removeInlineAddingAttributes.bind(this)); } /** * The issue is complex: * 1. There is a mechanism in the editor which responsible for adding inline the method below: `addInlineEditingAttributes`. * 2. There is a mechanism in the backend that adds inline attributes for each widget most of the time. * its effect also the Global-Widget itself, in two ways: * 1. global-widget instance is calling to `$this->get_original_element_instance()->render_content();`. * It means that the mechanism in the backend with adds the inline attributes will be triggered. * 2. each time you 'leave the editing mode' for most of the widgets it triggers `renderRemoteServer()`, * which sends a request for `remoteRendering` for 'non-global widget' (the server doesn't know that it * was linked to a template), that will trigger the original widget without knowing it's a part of the * global mechanism. * eventually it will trigger the logic of the backend for adding the inline attributes. */ removeInlineAddingAttributes() { const globalWidgetElementDom = this.el.querySelector('.elementor-inline-editing'); if (globalWidgetElementDom) { globalWidgetElementDom.classList.remove('elementor-inline-editing'); } } } exports["default"] = View; /***/ }, /***/ "../modules/library/assets/js/editor.js" /*!**********************************************!*\ !*** ../modules/library/assets/js/editor.js ***! \**********************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; module.exports = elementorModules.editor.utils.Module.extend({ onElementorPreviewLoaded() { var EditButton = __webpack_require__(/*! ./editor/edit-button */ "../modules/library/assets/js/editor/edit-button.js"); this.editButton = new EditButton(); } }); /***/ }, /***/ "../modules/library/assets/js/editor/edit-button.js" /*!**********************************************************!*\ !*** ../modules/library/assets/js/editor/edit-button.js ***! \**********************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"]; __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ "../node_modules/core-js/modules/esnext.iterator.constructor.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.find.js */ "../node_modules/core-js/modules/esnext.iterator.find.js"); module.exports = function () { var self = this; self.onPanelShow = function (panel) { var model = panel.content.currentView.collection.findWhere({ name: 'template_id' }); self.templateIdView = panel.content.currentView.children.findByModelCid(model.cid); // Change Edit link on render & on change template. self.templateIdView.elementSettingsModel.on('change', self.onTemplateIdChange); self.templateIdView.on('render', self.onTemplateIdChange); }; self.onTemplateIdChange = function () { var templateID = self.templateIdView.elementSettingsModel.get('template_id'), $editButton = self.templateIdView.$el.find('.elementor-edit-template'); if (!templateID) { $editButton.remove(); return; } var editUrl = ElementorConfig.home_url + '?p=' + templateID + '&elementor'; if ($editButton.length) { $editButton.prop('href', editUrl); } else { $editButton = jQuery('', { target: '_blank', class: 'elementor-button elementor-edit-template', href: editUrl, html: '' + __('Edit Template', 'elementor-pro') }); self.templateIdView.$el.find('.elementor-control-input-wrapper').after($editButton); } }; self.init = function () { elementor.hooks.addAction('panel/open_editor/widget/template', self.onPanelShow); }; self.init(); }; /***/ }, /***/ "../modules/loop-builder/assets/js/editor/behavior.js" /*!************************************************************!*\ !*** ../modules/loop-builder/assets/js/editor/behavior.js ***! \************************************************************/ (__unused_webpack_module, exports) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; class LoopBuilderBehavior extends Marionette.Behavior { ui() { return { postSourceControlSelector: '[data-setting="post_taxonomy_query_post_type"]', productSourceControlSelector: '[data-setting="product_taxonomy_query_post_type"]' }; } events() { return { 'change @ui.postSourceControlSelector': 'onApplySourceChange', 'change @ui.productSourceControlSelector': 'onApplySourceChange' }; } onApplySourceChange(event) { const sourceType = event.target?.value || this.getDefaultSourceType(); this.getOption('updateTaxonomyTabsIdControls')(sourceType, true); } onRender() { const postType = this.getOption('getSourceControlValue')(); this.getOption('updateTaxonomyTabsIdControls')(postType); } getDefaultSourceType() { const skinType = this.getOption('getSkinType')(); return this.getOption('getDefaultSourceType')(skinType); } } exports["default"] = LoopBuilderBehavior; /***/ }, /***/ "../modules/loop-builder/assets/js/editor/component.js" /*!*************************************************************!*\ !*** ../modules/loop-builder/assets/js/editor/component.js ***! \*************************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; var hooks = _interopRequireWildcard(__webpack_require__(/*! ./hooks/ */ "../modules/loop-builder/assets/js/editor/hooks/index.js")); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (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 (const 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); } class LoopBuilderComponent extends $e.modules.ComponentBase { getNamespace() { return 'document/loop'; } defaultHooks() { return this.importHooks(hooks); } } exports["default"] = LoopBuilderComponent; /***/ }, /***/ "../modules/loop-builder/assets/js/editor/hooks/index.js" /*!***************************************************************!*\ !*** ../modules/loop-builder/assets/js/editor/hooks/index.js ***! \***************************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "LoopBuilderAddLibraryTab", ({ enumerable: true, get: function () { return _addLoopBuildersTab.LoopBuilderAddLibraryTab; } })); Object.defineProperty(exports, "LoopBuilderRemoveLibraryTab", ({ enumerable: true, get: function () { return _removeLoopBuildersTab.LoopBuilderRemoveLibraryTab; } })); var _addLoopBuildersTab = __webpack_require__(/*! ./ui/editor/documents/open/add-loop-builders-tab */ "../modules/loop-builder/assets/js/editor/hooks/ui/editor/documents/open/add-loop-builders-tab.js"); var _removeLoopBuildersTab = __webpack_require__(/*! ./ui/editor/documents/close/remove-loop-builders-tab */ "../modules/loop-builder/assets/js/editor/hooks/ui/editor/documents/close/remove-loop-builders-tab.js"); /***/ }, /***/ "../modules/loop-builder/assets/js/editor/hooks/ui/editor/documents/close/remove-loop-builders-tab.js" /*!************************************************************************************************************!*\ !*** ../modules/loop-builder/assets/js/editor/hooks/ui/editor/documents/close/remove-loop-builders-tab.js ***! \************************************************************************************************************/ (__unused_webpack_module, exports) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = exports.LoopBuilderRemoveLibraryTab = void 0; class LoopBuilderRemoveLibraryTab extends $e.modules.hookUI.After { getCommand() { return 'editor/documents/unload'; } getId() { return 'elementor-loop-items-remove-library-tab'; } getConditions(args) { const { document } = args; return 'loop-item' === document?.config?.type; } apply() { $e.components.get('library').removeTab('templates/loop-items'); $e.components.get('library').addTab('templates/blocks'); $e.components.get('library').addTab('templates/pages'); } } exports.LoopBuilderRemoveLibraryTab = LoopBuilderRemoveLibraryTab; var _default = exports["default"] = LoopBuilderRemoveLibraryTab; /***/ }, /***/ "../modules/loop-builder/assets/js/editor/hooks/ui/editor/documents/open/add-loop-builders-tab.js" /*!********************************************************************************************************!*\ !*** ../modules/loop-builder/assets/js/editor/hooks/ui/editor/documents/open/add-loop-builders-tab.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["default"] = exports.LoopBuilderAddLibraryTab = void 0; class LoopBuilderAddLibraryTab extends $e.modules.hookUI.After { getCommand() { return 'editor/documents/open'; } getId() { return 'elementor-loop-items-add-library-tab'; } getConditions(args) { const document = elementor.documents?.get(args.id); return 'loop-item' === document?.config?.type; } apply() { $e.components.get('library').addTab('templates/loop-items', { title: __('Loop', 'elementor-pro'), filter: { source: 'remote', type: 'lb', subtype: elementor.config.document.settings.settings.source } }, 0); $e.components.get('library').removeTab('templates/blocks'); $e.components.get('library').removeTab('templates/pages'); } } exports.LoopBuilderAddLibraryTab = LoopBuilderAddLibraryTab; var _default = exports["default"] = LoopBuilderAddLibraryTab; /***/ }, /***/ "../modules/loop-builder/assets/js/editor/module.js" /*!**********************************************************!*\ !*** ../modules/loop-builder/assets/js/editor/module.js ***! \**********************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); __webpack_require__(/*! core-js/modules/es.array.includes.js */ "../node_modules/core-js/modules/es.array.includes.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ "../node_modules/core-js/modules/esnext.iterator.constructor.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.find.js */ "../node_modules/core-js/modules/esnext.iterator.find.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.for-each.js */ "../node_modules/core-js/modules/esnext.iterator.for-each.js"); var _documentHandle = _interopRequireWildcard(__webpack_require__(/*! elementor-pro/preview/utils/document-handle */ "../assets/dev/js/preview/utils/document-handle.js")); var _component = _interopRequireDefault(__webpack_require__(/*! ./component */ "../modules/loop-builder/assets/js/editor/component.js")); var _behavior = _interopRequireDefault(__webpack_require__(/*! ./behavior */ "../modules/loop-builder/assets/js/editor/behavior.js")); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (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 (const 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); } class loopBuilderModule extends elementorModules.editor.utils.Module { taxonomyQueryOptions = ['post_taxonomy', 'product_taxonomy']; onElementorFrontendInit() { elementor.hooks.addFilter('controls/base/behaviors', this.registerControlBehavior); elementorFrontend.elements.$body.on('click', '.e-loop-empty-view__box-cta', () => { this.createTemplate(); }); this.createDocumentSaveHandles(); elementor.on('document:loaded', this.createDocumentSaveHandles.bind(this)); } registerControlBehavior = (behaviors = {}, view) => { const taxonomyQueryOptions = ['post_taxonomy_query_post_type', 'product_taxonomy_query_post_type']; if (!taxonomyQueryOptions.includes(view.options.model.get('name'))) { return behaviors; } behaviors.loopBuilder = { behaviorClass: _behavior.default, getSourceControlValue: this.getSourceControlValue, updateTaxonomyTabsIdControls: this.updateTaxonomyTabsIdControls }; return behaviors; }; createTemplate() { setTimeout(() => { elementor.getPanelView().getCurrentPageView().activateSection('section_layout')._renderChildren(); this.getEditorControlView('template_id').createTemplate(); }); } createDocumentSaveHandles() { Object.entries(elementorFrontend.config?.elements?.data).forEach(([cid, element]) => { const elementData = elementor.getElementData(element); if (!elementData?.is_loop) { return; } const templateId = element.attributes.template_id; if (!templateId) { return; } const widgetSelector = `.elementor-element[data-model-cid="${cid}"]`, editHandleSelector = `[data-elementor-type="loop-item"].elementor-${templateId}`, editHandleElement = elementorFrontend.elements.$body.find(`${widgetSelector} ${editHandleSelector}`).first()[0]; if (editHandleElement) { (0, _documentHandle.default)({ element: editHandleElement, id: 0, title: '& Back' }, _documentHandle.SAVE_CONTEXT, null, '.elementor-' + elementor.config.initial_document.id); } }); } onElementorLoaded() { elementor.on('document:loaded', this.onDocumentLoaded.bind(this)); elementor.on('document:unload', this.onDocumentUnloaded.bind(this)); this.component = $e.components.register(new _component.default({ manager: this })); } onDocumentLoaded = document => { if (!document.config.theme_builder) { return; } elementor.channels.editor.on('elementorLoopBuilder:ApplySourceChange', this.onApplySourceChange); }; onDocumentUnloaded = document => { if (!document.config.theme_builder) { return; } elementor.channels.editor.off('elementorLoopBuilder:ApplySourceChange', this.onApplySourceChange); }; onApplySourceChange = () => { this.saveAndRefresh().then(() => { location.reload(); }); }; async saveAndRefresh() { await $e.run('document/save/update', { force: true }); } getCtaStyles = () => { const ctaStyle = document.createElement('link'); ctaStyle.setAttribute('rel', 'stylesheet'); ctaStyle.setAttribute('href', `${elementorAppProConfig.baseUrl}/assets/css/modules/loop-grid-cta.min.css`); return ctaStyle; }; getCtaContent = widgetName => { const ctaContent = document.createElement('div'); ctaContent.classList.add('e-loop-empty-view__container', 'elementor-grid', widgetName); ctaContent.innerHTML = Marionette.Renderer.render('#tmpl-' + widgetName + '-cta'); return ctaContent; }; getSourceControlValue = () => { const skinType = this.getSkinType(), controlView = this.getEditorControlView(`${skinType}_query_post_type`); if (!controlView) { return skinType.includes('product') ? 'product_cat' : 'category'; } return controlView.getControlValue(); }; getSkinType = () => { const sectionLayout = this.getEditorControlView('section_layout'); return sectionLayout.options.container.settings.get('_skin'); }; getTemplateType = templateKey => { return templateKey.split('_')[0]; }; onApplySkinChange = () => { const skinType = this.getSkinType(); if (!this.taxonomyQueryOptions.includes(skinType)) { return; } const postType = this.getDefaultSourceType(skinType); this.updateTaxonomyTabsIdControls(postType, true); }; getDefaultSourceType = skinType => { const defaultSourceTypes = { post: 'post', product: 'product', post_taxonomy: 'category', product_taxonomy: 'product_cat' }; return defaultSourceTypes[skinType]; }; updateTaxonomyTabsIdControls = (postType, shouldResetControlValues = false) => { const skinType = this.getSkinType(); if (!this.taxonomyQueryOptions.includes(skinType)) { return; } const querySectionView = elementorPro.modules.loopBuilder.getEditorControlView('section_query'), includeIds = querySectionView.model.collection.findWhere({ name: `${skinType}_posts_ids` }), excludeIds = querySectionView.model.collection.findWhere({ name: `${skinType}_exclude_ids` }); [includeIds, excludeIds].forEach(control => { const controlView = elementor.getPanelView()?.getCurrentPageView()?.children?.findByModel(control); this.updateControlQuery({ control, controlView, postType, shouldResetControlValues }); }); }; updateControlQuery = ({ control, controlView, postType, shouldResetControlValues }) => { control.set({ autocomplete: { object: 'tax', query: { taxonomy: postType } } }); if (controlView && shouldResetControlValues) { controlView.setValue([]); controlView.applySavedValue(); } }; } module.exports = loopBuilderModule; /***/ }, /***/ "../modules/motion-fx/assets/js/editor/editor.js" /*!*******************************************************!*\ !*** ../modules/motion-fx/assets/js/editor/editor.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["default"] = void 0; class _default extends elementorModules.editor.utils.Module { onElementorInit() { elementor.on('navigator:init', this.onNavigatorInit.bind(this)); } onNavigatorInit() { elementor.navigator.indicators.motionFX = { icon: 'flash', title: __('Motion Effects', 'elementor-pro'), settingKeys: ['motion_fx_motion_fx_scrolling', 'motion_fx_motion_fx_mouse', 'background_motion_fx_motion_fx_scrolling', 'background_motion_fx_motion_fx_mouse'], section: 'section_effects' }; } } exports["default"] = _default; /***/ }, /***/ "../modules/notes/assets/js/notes-context-menu.js" /*!********************************************************!*\ !*** ../modules/notes/assets/js/notes-context-menu.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.notesContextMenu = exports["default"] = void 0; class notesContextMenu { constructor() { const elTypes = ['widget', 'section', 'column', 'container']; elTypes.forEach(type => { elementor.hooks.addFilter(`elements/${type}/contextMenuGroups`, this.notesContextMenuAddGroup); }); } /** * Enable the 'Notes' context menu item * * @since 3.8.0 * * @param {Array} groups * @return {Array} The updated groups. */ notesContextMenuAddGroup(groups) { const notesGroup = _.findWhere(groups, { name: 'notes' }), notesGroupIndex = groups.indexOf(notesGroup), notesActionItem = { name: 'open_notes', title: __('Notes', 'elementor-pro'), shortcut: '⇧+C', isEnabled: () => true, callback: () => $e.route('notes') }; if (elementorPro.config.should_show_promotion) { const iconLink = '' + ''; notesActionItem.shortcut = jQuery(iconLink); notesActionItem.isEnabled = () => false; delete notesActionItem.callback; } // Create the Notes group if it doesn't exist if (-1 === notesGroupIndex) { const deleteGroup = _.findWhere(groups, { name: 'delete' }), deleteGroupIndex = groups.indexOf(deleteGroup), newGroupPosition = -1 !== deleteGroupIndex ? deleteGroupIndex : groups.length; groups.splice(newGroupPosition, 0, { name: 'notes', actions: [notesActionItem] }); return groups; } const openNotesAction = _.findWhere(notesGroup.actions, { name: 'open_notes' }), openNotesActionIndex = notesGroup.actions.indexOf(openNotesAction); groups[notesGroupIndex].actions[openNotesActionIndex] = notesActionItem; return groups; } } exports.notesContextMenu = notesContextMenu; var _default = exports["default"] = notesContextMenu; /***/ }, /***/ "../modules/page-transitions/assets/js/editor/commands/animate.js" /*!************************************************************************!*\ !*** ../modules/page-transitions/assets/js/editor/commands/animate.js ***! \************************************************************************/ (__unused_webpack_module, exports) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = exports.Animate = void 0; class Animate extends $e.modules.CommandBase { /** * Animate the Page Transition element. * * @return {void} */ apply() { const pageTransition = elementor.$previewContents[0].querySelector('e-page-transition'); if (!pageTransition) { return; } pageTransition.animate(); } } exports.Animate = Animate; var _default = exports["default"] = Animate; /***/ }, /***/ "../modules/page-transitions/assets/js/editor/commands/index.js" /*!**********************************************************************!*\ !*** ../modules/page-transitions/assets/js/editor/commands/index.js ***! \**********************************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "Animate", ({ enumerable: true, get: function () { return _animate.Animate; } })); var _animate = __webpack_require__(/*! ./animate */ "../modules/page-transitions/assets/js/editor/commands/animate.js"); /***/ }, /***/ "../modules/page-transitions/assets/js/editor/component.js" /*!*****************************************************************!*\ !*** ../modules/page-transitions/assets/js/editor/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 commands = _interopRequireWildcard(__webpack_require__(/*! ./commands/ */ "../modules/page-transitions/assets/js/editor/commands/index.js")); var hooks = _interopRequireWildcard(__webpack_require__(/*! ./hooks/ */ "../modules/page-transitions/assets/js/editor/hooks/index.js")); var _pageTransitionPreview = _interopRequireDefault(__webpack_require__(/*! ./hooks/routes/page-transition-preview */ "../modules/page-transitions/assets/js/editor/hooks/routes/page-transition-preview.js")); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (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 (const 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); } class Component extends $e.modules.ComponentBase { /** * Initialize the component. * * @return {void} */ constructor() { super(); this.routesHooks = {}; this.initRouteHooks(); } /** * Add route hooks & listen to route changes. * * @return {void} */ initRouteHooks() { // TODO: Remove when route hooks are available. this.routesHooks.pageTransitionPreview = new _pageTransitionPreview.default(); $e.routes.on('run:after', (component, route) => { this.routesHooks.pageTransitionPreview.run(component, route); }); } /** * Get the component namespace. * * @return {string} - Component namespace. */ getNamespace() { return 'page-transitions'; } /** * Get the component hooks. * * @return {Object} - Component hooks. */ defaultHooks() { return this.importHooks(hooks); } /** * Get the component commands. * * @return {Object} - Component commands. */ defaultCommands() { return this.importCommands(commands); } } exports["default"] = Component; /***/ }, /***/ "../modules/page-transitions/assets/js/editor/hooks/data/animate-page-transition.js" /*!******************************************************************************************!*\ !*** ../modules/page-transitions/assets/js/editor/hooks/data/animate-page-transition.js ***! \******************************************************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = exports.AnimatePageTransition = void 0; __webpack_require__(/*! core-js/modules/es.array.includes.js */ "../node_modules/core-js/modules/es.array.includes.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ "../node_modules/core-js/modules/esnext.iterator.constructor.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.some.js */ "../node_modules/core-js/modules/esnext.iterator.some.js"); /** * Data hook that animates the Page Transition component when entrance / exit animations are changed. */ class AnimatePageTransition extends $e.modules.hookData.After { // Page Transitions settings prefix. prefix = 'settings_page_transitions_'; // Controls that the hook should listen to. settings = ['entrance_animation', 'exit_animation']; getCommand() { return 'document/elements/settings'; } getId() { return 'animate-page-transitions--document/elements/settings'; } getContainerType() { return 'document'; } getConditions(args) { // Execute only for specific settings. return Object.keys(args.settings).some(key => { key = key.replace(this.prefix, ''); return this.settings.includes(key); }); } apply() { $e.run('page-transitions/animate'); } } exports.AnimatePageTransition = AnimatePageTransition; var _default = exports["default"] = AnimatePageTransition; /***/ }, /***/ "../modules/page-transitions/assets/js/editor/hooks/data/index.js" /*!************************************************************************!*\ !*** ../modules/page-transitions/assets/js/editor/hooks/data/index.js ***! \************************************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "AnimatePageTransition", ({ enumerable: true, get: function () { return _animatePageTransition.AnimatePageTransition; } })); Object.defineProperty(exports, "ReRenderPageTransition", ({ enumerable: true, get: function () { return _reRenderPageTransition.ReRenderPageTransition; } })); var _animatePageTransition = __webpack_require__(/*! ./animate-page-transition */ "../modules/page-transitions/assets/js/editor/hooks/data/animate-page-transition.js"); var _reRenderPageTransition = __webpack_require__(/*! ./re-render-page-transition */ "../modules/page-transitions/assets/js/editor/hooks/data/re-render-page-transition.js"); /***/ }, /***/ "../modules/page-transitions/assets/js/editor/hooks/data/re-render-page-transition.js" /*!********************************************************************************************!*\ !*** ../modules/page-transitions/assets/js/editor/hooks/data/re-render-page-transition.js ***! \********************************************************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = exports.ReRenderPageTransition = void 0; __webpack_require__(/*! core-js/modules/es.array.includes.js */ "../node_modules/core-js/modules/es.array.includes.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ "../node_modules/core-js/modules/esnext.iterator.constructor.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.some.js */ "../node_modules/core-js/modules/esnext.iterator.some.js"); var _utils = __webpack_require__(/*! ../utils */ "../modules/page-transitions/assets/js/editor/hooks/utils.js"); /** * Data hook that passes the new settings from the panel as attributes to the Page Transition component, in order to re-render it. */ class ReRenderPageTransition extends $e.modules.hookData.After { // Page Transitions settings prefix. prefix = 'settings_page_transitions_'; // Controls that the hook should listen to. settings = ['entrance_animation', 'preloader_type', 'preloader_icon', 'preloader_image', 'preloader_animation_type']; getCommand() { return 'document/elements/settings'; } getId() { return 're-render-page-transitions--document/elements/settings'; } getContainerType() { return 'document'; } getConditions(args) { // Execute only for specific settings. return Object.keys(args.settings).some(key => { key = key.replace(this.prefix, ''); return this.settings.includes(key); }); } apply(args) { (0, _utils.renderPageTransition)(args.container); } } exports.ReRenderPageTransition = ReRenderPageTransition; var _default = exports["default"] = ReRenderPageTransition; /***/ }, /***/ "../modules/page-transitions/assets/js/editor/hooks/index.js" /*!*******************************************************************!*\ !*** ../modules/page-transitions/assets/js/editor/hooks/index.js ***! \*******************************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ "../node_modules/core-js/modules/esnext.iterator.constructor.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.for-each.js */ "../node_modules/core-js/modules/esnext.iterator.for-each.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); var _data = __webpack_require__(/*! ./data */ "../modules/page-transitions/assets/js/editor/hooks/data/index.js"); Object.keys(_data).forEach(function (key) { if (key === "default" || key === "__esModule") return; if (key in exports && exports[key] === _data[key]) return; Object.defineProperty(exports, key, { enumerable: true, get: function () { return _data[key]; } }); }); /***/ }, /***/ "../modules/page-transitions/assets/js/editor/hooks/routes/page-transition-preview.js" /*!********************************************************************************************!*\ !*** ../modules/page-transitions/assets/js/editor/hooks/routes/page-transition-preview.js ***! \********************************************************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; var _utils = __webpack_require__(/*! ../utils */ "../modules/page-transitions/assets/js/editor/hooks/utils.js"); /** * A route hook that listens to route changes in the panel and change the preview mode for * the Page Transitions feature when navigating to the `Site Settings -> Page Transitions` tab. * * TODO: Convert to `$e.modules.hookRoute.After` when available. */ class PageTransitionPreview { /** * Run the hook. * * @param {Object} component * @param {string} route * * @return {void} */ run(component, route) { if ('panel/global/settings-page-transitions' === route) { (0, _utils.renderPageTransition)(elementor.documents.getCurrent().container); this.togglePageTransitionPreview(true); } else { this.togglePageTransitionPreview(false); } } /** * Toggle the Page Transition state to show or hide preview. * * @param {boolean} on * * @return {void} */ togglePageTransitionPreview(on = true) { const className = 'e-page-transition--preview', pageTransition = elementor.$previewContents[0].body.querySelector('e-page-transition'); if (!pageTransition) { return; } pageTransition.classList.toggle(className, on); } } exports["default"] = PageTransitionPreview; /***/ }, /***/ "../modules/page-transitions/assets/js/editor/hooks/utils.js" /*!*******************************************************************!*\ !*** ../modules/page-transitions/assets/js/editor/hooks/utils.js ***! \*******************************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.getPageTransitionSettings = getPageTransitionSettings; exports.renderPageTransition = renderPageTransition; __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ "../node_modules/core-js/modules/esnext.iterator.constructor.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.filter.js */ "../node_modules/core-js/modules/esnext.iterator.filter.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.for-each.js */ "../node_modules/core-js/modules/esnext.iterator.for-each.js"); const prefix = 'settings_page_transitions_'; /** * Get only the Page Transitions controls' values from a Container. * * @param {Object} container * * @return {Object} - Controls' values. */ function getPageTransitionSettings(container) { // Filter only the Page Transitions controls which doesn't change CSS values. // (since they shouldn't affect the render) const controls = Object.entries(container.settings.getActiveControls()).filter(([key, control]) => { return key.startsWith(prefix) && !control.selectors; }); const settings = {}; controls.forEach(([control]) => { settings[control] = container.settings.get(control); }); return settings; } /** * Live render the Page Transition element, based on settings from the user. * * @param {Object} container - The container to get the settings from. * * @return {void} */ function renderPageTransition(container) { let pageTransition = elementor.$previewContents[0].querySelector('e-page-transition'); const hasEntranceAnimation = !!container.settings.get(`${prefix}entrance_animation`), hasPreloader = !!container.settings.get(`${prefix}preloader_type`), shouldRender = hasEntranceAnimation || hasPreloader; // Create the Page Transition element if it doesn't exist. if (!pageTransition) { pageTransition = document.createElement('e-page-transition'); pageTransition.classList.add('e-page-transition--preview'); elementor.$previewContents[0].body.append(pageTransition); } // Disable the Page Transition if needed. pageTransition.toggleAttribute('disabled', !shouldRender); const settings = getPageTransitionSettings(container); // Iterate over the settings and set them as attributes. Object.entries(settings).forEach(([key, value]) => { key = key.replace(prefix, ''); key = key.replaceAll('_', '-'); if (!value) { pageTransition.removeAttribute(key); return; } if ('string' === typeof value) { pageTransition.setAttribute(key, value); return; } // For object values (e.g. image control). Object.entries(value).forEach(([subKey, subValue]) => { let newKey = key; // Append the sub key only if it's not `value` (e.g. `url`), in order to avoid weird // attributes like `preloader-icon-value`. if (subKey !== 'value') { newKey = `${key}-${subKey}`; } pageTransition.setAttribute(newKey, subValue); }); }); } /***/ }, /***/ "../modules/page-transitions/assets/js/editor/module.js" /*!**************************************************************!*\ !*** ../modules/page-transitions/assets/js/editor/module.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 _component = _interopRequireDefault(__webpack_require__(/*! ./component */ "../modules/page-transitions/assets/js/editor/component.js")); class _default extends elementorModules.editor.utils.Module { /** * Register the component & bind events on init. * * @return {void} */ onInit() { $e.components.register(new _component.default()); this.bindEvents(); } /** * Listen to Page Transition event. * * @return {void} */ bindEvents() { // Make sure that `window.elementor` is initialized. // TODO: Find a better solution. It's caused because of the dynamic import. if (window.elementor) { this.onAnimateButtonClick(); return; } jQuery(window).on('elementor:init', () => this.onAnimateButtonClick()); } /** * Listen to `animate` button click event and animate the Page Transition. * * @return {void} */ onAnimateButtonClick() { elementor.channels.editor.on('elementorPageTransitions:animate', () => { $e.run('page-transitions/animate'); }); } } exports["default"] = _default; /***/ }, /***/ "../modules/payments/assets/js/editor/module.js" /*!******************************************************!*\ !*** ../modules/payments/assets/js/editor/module.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 _stripe = _interopRequireDefault(__webpack_require__(/*! ./stripe */ "../modules/payments/assets/js/editor/stripe.js")); class StripeModule extends elementorModules.editor.utils.Module { onElementorInit() { this.stripeButton = new _stripe.default('stripe-button'); } } exports["default"] = StripeModule; /***/ }, /***/ "../modules/payments/assets/js/editor/stripe.js" /*!******************************************************!*\ !*** ../modules/payments/assets/js/editor/stripe.js ***! \******************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; const ElementEditorModule = __webpack_require__(/*! elementor-pro/editor/element-editor-module */ "../assets/dev/js/editor/element-editor-module.js"); module.exports = ElementEditorModule.extend({ __construct() { ElementEditorModule.prototype.__construct.apply(this, arguments); }, getName() { return 'stripe-button'; }, onInit() { elementor.channels.editor.on('editor:widget:stripe-button:section_stripe_account:activated', this.onSectionActive); }, onSectionActive() { return elementorPro.ajax.addRequest('get_stripe_tax_rates', { success: data => { this.updateOptions('stripe_test_env_tax_rates_list', data.test_api_key); this.updateOptions('stripe_live_env_tax_rates_list', data.live_api_key); } }, true); } }); /***/ }, /***/ "../modules/popup/assets/js/editor/component.js" /*!******************************************************!*\ !*** ../modules/popup/assets/js/editor/component.js ***! \******************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; var hooks = _interopRequireWildcard(__webpack_require__(/*! ./hooks/ */ "../modules/popup/assets/js/editor/hooks/index.js")); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (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 (const 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); } class PopupComponent extends $e.modules.ComponentBase { /** * @type {null|Function} */ onPageSettingsCloseHandler = null; getNamespace() { return 'document/popup'; } defaultHooks() { return this.importHooks(hooks); } } exports["default"] = PopupComponent; /***/ }, /***/ "../modules/popup/assets/js/editor/controls/display-settings.js" /*!**********************************************************************!*\ !*** ../modules/popup/assets/js/editor/controls/display-settings.js ***! \**********************************************************************/ (__unused_webpack_module, exports) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; class _default extends elementorModules.editor.views.ControlsStack { constructor(...args) { super(...args); this.template = _.noop; this.activeTab = 'content'; this.listenTo(this.model, 'change', this.onModelChange); } getNamespaceArray() { return ['popup', 'display-settings']; } className() { return super.className() + ' elementor-popup__display-settings'; } toggleGroup(groupName, $groupElement) { $groupElement.toggleClass('elementor-active', !!this.model.get(groupName)); } onRenderTemplate() { this.activateFirstSection(); } onRender() { const name = this.getOption('name'); let $groupWrapper; this.children.each(child => { const type = child.model.get('type'); if ('heading' !== type) { if ($groupWrapper) { $groupWrapper.append(child.$el); } return; } const groupName = child.model.get('name').replace('_heading', ''); $groupWrapper = jQuery('
', { id: `elementor-popup__${name}-controls-group--${groupName}`, class: 'elementor-popup__display-settings_controls_group' }); const $imageWrapper = jQuery('
', { class: 'elementor-popup__display-settings_controls_group__icon' }), $image = jQuery('', { src: elementorPro.config.urls.modules + `popup/assets/images/${name}/${groupName}.svg` }); $imageWrapper.html($image); $groupWrapper.html($imageWrapper); child.$el.before($groupWrapper); $groupWrapper.append(child.$el); this.toggleGroup(groupName, $groupWrapper); }); } onModelChange() { const changedControlName = Object.keys(this.model.changed)[0], changedControlView = this.getControlViewByName(changedControlName); if ('switcher' !== changedControlView.model.get('type')) { return; } this.toggleGroup(changedControlName, changedControlView.$el.parent()); } } exports["default"] = _default; /***/ }, /***/ "../modules/popup/assets/js/editor/hooks/data/index.js" /*!*************************************************************!*\ !*** ../modules/popup/assets/js/editor/hooks/data/index.js ***! \*************************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "PopupSave", ({ enumerable: true, get: function () { return _save.PopupSave; } })); var _save = __webpack_require__(/*! ./save */ "../modules/popup/assets/js/editor/hooks/data/save.js"); /***/ }, /***/ "../modules/popup/assets/js/editor/hooks/data/save.js" /*!************************************************************!*\ !*** ../modules/popup/assets/js/editor/hooks/data/save.js ***! \************************************************************/ (__unused_webpack_module, exports) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = exports.PopupSave = void 0; class PopupSave extends $e.modules.hookData.After { getCommand() { return 'document/save/save'; } getId() { return 'elementor-pro-popup-save'; } getConditions() { return 'popup' === elementor.config.document.type; } apply() { const settings = {}; jQuery.each(elementorPro.modules.popup.displaySettingsTypes, (type, data) => { settings[type] = data.model.toJSON({ remove: ['default'] }); }); elementorPro.ajax.addRequest('popup_save_display_settings', { data: { settings } }); } } exports.PopupSave = PopupSave; var _default = exports["default"] = PopupSave; /***/ }, /***/ "../modules/popup/assets/js/editor/hooks/index.js" /*!********************************************************!*\ !*** ../modules/popup/assets/js/editor/hooks/index.js ***! \********************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ "../node_modules/core-js/modules/esnext.iterator.constructor.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.for-each.js */ "../node_modules/core-js/modules/esnext.iterator.for-each.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); var _data = __webpack_require__(/*! ./data/ */ "../modules/popup/assets/js/editor/hooks/data/index.js"); Object.keys(_data).forEach(function (key) { if (key === "default" || key === "__esModule") return; if (key in exports && exports[key] === _data[key]) return; Object.defineProperty(exports, key, { enumerable: true, get: function () { return _data[key]; } }); }); var _ui = __webpack_require__(/*! ./ui/ */ "../modules/popup/assets/js/editor/hooks/ui/index.js"); Object.keys(_ui).forEach(function (key) { if (key === "default" || key === "__esModule") return; if (key in exports && exports[key] === _ui[key]) return; Object.defineProperty(exports, key, { enumerable: true, get: function () { return _ui[key]; } }); }); /***/ }, /***/ "../modules/popup/assets/js/editor/hooks/ui/editor/documents/close/remove-library-tab.js" /*!***********************************************************************************************!*\ !*** ../modules/popup/assets/js/editor/hooks/ui/editor/documents/close/remove-library-tab.js ***! \***********************************************************************************************/ (__unused_webpack_module, exports) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = exports.PopupRemoveLibraryTab = void 0; class PopupRemoveLibraryTab extends $e.modules.hookUI.After { getCommand() { return 'editor/documents/unload'; } getId() { return 'elementor-pro-popup-remove-library-tab'; } getConditions(args) { const { document } = args; return 'popup' === document.config.type; } apply() { $e.components.get('library').removeTab('templates/popups'); } } exports.PopupRemoveLibraryTab = PopupRemoveLibraryTab; var _default = exports["default"] = PopupRemoveLibraryTab; /***/ }, /***/ "../modules/popup/assets/js/editor/hooks/ui/editor/documents/close/remove-triggers.js" /*!********************************************************************************************!*\ !*** ../modules/popup/assets/js/editor/hooks/ui/editor/documents/close/remove-triggers.js ***! \********************************************************************************************/ (__unused_webpack_module, exports) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = exports.PopupRemoveTriggers = void 0; class PopupRemoveTriggers extends $e.modules.hookUI.After { getCommand() { return 'editor/documents/unload'; } getId() { return 'elementor-pro-popup-remove-triggers'; } getConditions(args) { const { document } = args; return 'popup' === document.config.type; } apply() { this.removePanelFooterSubmenuItems(); this.removePublishTabs(); } removePanelFooterSubmenuItems() { const displaySettingsTypes = elementorPro.modules.popup.displaySettingsTypes; jQuery.each(displaySettingsTypes, type => { elementor.getPanelView().footer.currentView.removeSubMenuItem('saver-options', { name: type }); }); } removePublishTabs() { const component = $e.components.get('theme-builder-publish'), displaySettingsTypes = elementorPro.modules.popup.displaySettingsTypes; jQuery.each(displaySettingsTypes, type => { component.removeTab(type); }); } } exports.PopupRemoveTriggers = PopupRemoveTriggers; var _default = exports["default"] = PopupRemoveTriggers; /***/ }, /***/ "../modules/popup/assets/js/editor/hooks/ui/editor/documents/open/add-library-tab.js" /*!*******************************************************************************************!*\ !*** ../modules/popup/assets/js/editor/hooks/ui/editor/documents/open/add-library-tab.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["default"] = exports.PopupAddLibraryTab = void 0; class PopupAddLibraryTab extends $e.modules.hookUI.After { getCommand() { return 'editor/documents/open'; } getId() { return 'elementor-pro-popup-add-library-tab'; } getConditions(args) { const document = elementor.documents.get(args.id); return 'popup' === document.config.type; } apply() { $e.components.get('library').addTab('templates/popups', { title: __('Popups', 'elementor-pro'), filter: { source: 'remote', type: 'popup' } }, 1); } } exports.PopupAddLibraryTab = PopupAddLibraryTab; var _default = exports["default"] = PopupAddLibraryTab; /***/ }, /***/ "../modules/popup/assets/js/editor/hooks/ui/editor/documents/open/add-triggers.js" /*!****************************************************************************************!*\ !*** ../modules/popup/assets/js/editor/hooks/ui/editor/documents/open/add-triggers.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.PopupAddTriggers = void 0; var _displaySettings = _interopRequireDefault(__webpack_require__(/*! modules/popup/assets/js/editor/controls/display-settings */ "../modules/popup/assets/js/editor/controls/display-settings.js")); class PopupAddTriggers extends $e.modules.hookUI.After { getCommand() { return 'editor/documents/open'; } getId() { return 'elementor-pro-popup-add-triggers'; } getConditions(args) { const document = elementor.documents.get(args.id); return 'popup' === document.config.type; } apply() { if (elementor.panel) { this.addUI(); } else { // First open, the panel is not available yet. elementor.once('preview:loaded', this.addUI.bind(this)); } } addUI() { // Since 'addUI' can be called each document load, if 'theme-builder-publish/triggers' exists, the UI already exist. if ($e.routes.commands['theme-builder-publish/triggers']) { return; } this.addPanelFooterSubmenuItems(); this.addPublishTabs(); } addPublishTabs() { const config = elementor.config.document.displaySettings, component = $e.components.get('theme-builder-publish'), module = elementorPro.modules.popup; jQuery.each(module.displaySettingsTypes, (type, data) => { // Init models for editor save. data.model = new elementorModules.editor.elements.models.BaseSettings(config[type].settings, { controls: config[type].controls }); component.addTab(type, { View: _displaySettings.default, viewOptions: { name: type, id: `elementor-popup-${type}__controls`, model: data.model, controls: data.model.controls }, name: type, title: data.title, description: data.publishScreenDescription, image: elementorPro.config.urls.modules + `popup/assets/images/${type}-tab.svg` }); }); } addPanelFooterSubmenuItems() { const component = $e.components.get('theme-builder-publish'), displaySettingsTypes = elementorPro.modules.popup.displaySettingsTypes; jQuery.each(displaySettingsTypes, (type, data) => { elementor.getPanelView().footer.currentView.addSubMenuItem('saver-options', { before: 'save-template', name: type, icon: data.icon, title: data.title, callback: () => $e.route(component.getTabRoute(type)) }); }); } } exports.PopupAddTriggers = PopupAddTriggers; var _default = exports["default"] = PopupAddTriggers; /***/ }, /***/ "../modules/popup/assets/js/editor/hooks/ui/index.js" /*!***********************************************************!*\ !*** ../modules/popup/assets/js/editor/hooks/ui/index.js ***! \***********************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "PopupAddLibraryTab", ({ enumerable: true, get: function () { return _addLibraryTab.PopupAddLibraryTab; } })); Object.defineProperty(exports, "PopupAddTriggers", ({ enumerable: true, get: function () { return _addTriggers.PopupAddTriggers; } })); Object.defineProperty(exports, "PopupRemoveLibraryTab", ({ enumerable: true, get: function () { return _removeLibraryTab.PopupRemoveLibraryTab; } })); Object.defineProperty(exports, "PopupRemoveTriggers", ({ enumerable: true, get: function () { return _removeTriggers.PopupRemoveTriggers; } })); var _addLibraryTab = __webpack_require__(/*! ./editor/documents/open/add-library-tab */ "../modules/popup/assets/js/editor/hooks/ui/editor/documents/open/add-library-tab.js"); var _addTriggers = __webpack_require__(/*! ./editor/documents/open/add-triggers */ "../modules/popup/assets/js/editor/hooks/ui/editor/documents/open/add-triggers.js"); var _removeLibraryTab = __webpack_require__(/*! ./editor/documents/close/remove-library-tab */ "../modules/popup/assets/js/editor/hooks/ui/editor/documents/close/remove-library-tab.js"); var _removeTriggers = __webpack_require__(/*! ./editor/documents/close/remove-triggers */ "../modules/popup/assets/js/editor/hooks/ui/editor/documents/close/remove-triggers.js"); /***/ }, /***/ "../modules/popup/assets/js/editor/module.js" /*!***************************************************!*\ !*** ../modules/popup/assets/js/editor/module.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 _component = _interopRequireDefault(__webpack_require__(/*! ./component */ "../modules/popup/assets/js/editor/component.js")); class PopupModule extends elementorModules.editor.utils.Module { constructor(...args) { super(...args); this.displaySettingsTypes = { triggers: { icon: 'eicon-click', title: __('Triggers', 'elementor-pro'), publishScreenDescription: __('What action the user needs to do for the popup to open.', 'elementor-pro') }, timing: { icon: 'eicon-cog', title: __('Advanced Rules', 'elementor-pro'), publishScreenDescription: __('Requirements that have to be met for the popup to open.', 'elementor-pro') } }; } onElementorLoaded() { this.component = $e.components.register(new _component.default({ manager: this })); } } module.exports = PopupModule; /***/ }, /***/ "../modules/query-control/assets/js/editor.js" /*!****************************************************!*\ !*** ../modules/query-control/assets/js/editor.js ***! \****************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; module.exports = elementorModules.editor.utils.Module.extend({ onElementorPreviewLoaded() { elementor.addControlView('Query', __webpack_require__(/*! ./editor/query-control */ "../modules/query-control/assets/js/editor/query-control.js")); __webpack_require__.e(/*! import() */ "modules_query-control_assets_js_editor_template-query-control_js").then(__webpack_require__.bind(__webpack_require__, /*! ./editor/template-query-control */ "../modules/query-control/assets/js/editor/template-query-control.js")).then(({ default: TemplateQueryControl }) => elementor.addControlView('template_query', TemplateQueryControl)); } }); /***/ }, /***/ "../modules/query-control/assets/js/editor/query-control.js" /*!******************************************************************!*\ !*** ../modules/query-control/assets/js/editor/query-control.js ***! \******************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"]; __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ "../node_modules/core-js/modules/esnext.iterator.constructor.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.find.js */ "../node_modules/core-js/modules/esnext.iterator.find.js"); module.exports = elementor.modules.controls.Select2.extend({ cache: null, isTitlesReceived: false, getSelect2Placeholder() { return { id: '', text: __('All', 'elementor-pro') }; }, getControlValueByName(controlName) { const name = this.model.get('group_prefix') + controlName; return this.elementSettingsModel.attributes[name]; }, getQueryDataDeprecated() { return { filter_type: this.model.get('filter_type'), object_type: this.model.get('object_type'), include_type: this.model.get('include_type'), query: this.model.get('query') }; }, getQueryData() { // Use a clone to keep model data unchanged: const autocomplete = elementorCommon.helpers.cloneObject(this.model.get('autocomplete')); if (_.isEmpty(autocomplete.query)) { autocomplete.query = {}; } // Specific for Group_Control_Query if ('cpt_tax' === autocomplete.object) { autocomplete.object = 'tax'; if (_.isEmpty(autocomplete.query) || _.isEmpty(autocomplete.query.post_type)) { autocomplete.query.post_type = this.getControlValueByName('post_type'); } } return { autocomplete }; }, getSelect2DefaultOptions() { const self = this; return jQuery.extend(elementor.modules.controls.Select2.prototype.getSelect2DefaultOptions.apply(this, arguments), { ajax: { transport(params, success, failure) { const bcFormat = !_.isEmpty(self.model.get('filter_type')); let data = {}, action = 'panel_posts_control_filter_autocomplete'; if (bcFormat) { data = self.getQueryDataDeprecated(); action = 'panel_posts_control_filter_autocomplete_deprecated'; } else { data = self.getQueryData(); } data.q = params.data.q; return elementorPro.ajax.addRequest(action, { data, success, error: failure }); }, data(params) { return { q: params.term, page: params.page }; }, cache: true }, escapeMarkup(markup) { return markup; }, minimumInputLength: 1 }); }, getValueTitles() { const self = this, data = {}, bcFormat = !_.isEmpty(this.model.get('filter_type')); let ids = this.getControlValue(), action = 'query_control_value_titles', filterTypeName = 'autocomplete', filterType = {}; if (bcFormat) { filterTypeName = 'filter_type'; filterType = this.model.get(filterTypeName).object; data.filter_type = filterType; data.object_type = self.model.get('object_type'); data.include_type = self.model.get('include_type'); data.unique_id = '' + self.cid + filterType; action = 'query_control_value_titles_deprecated'; } else { filterType = this.model.get(filterTypeName).object; data.get_titles = self.getQueryData().autocomplete; data.unique_id = '' + self.cid + filterType; } if (!ids || !filterType) { return; } if (!_.isArray(ids)) { ids = [ids]; } elementorCommon.ajax.loadObjects({ action, ids, data, before() { self.addControlSpinner(); }, success(ajaxData) { self.isTitlesReceived = true; self.model.set('options', ajaxData); self.render(); } }); }, addControlSpinner() { this.ui.select.prop('disabled', true); this.$el.find('.elementor-control-title').after('  '); }, onReady() { if (!this.isTitlesReceived) { this.getValueTitles(); } } }); /***/ }, /***/ "../modules/screenshots/assets/js/editor/component.js" /*!************************************************************!*\ !*** ../modules/screenshots/assets/js/editor/component.js ***! \************************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; var dataHooks = _interopRequireWildcard(__webpack_require__(/*! ./hooks/data */ "../modules/screenshots/assets/js/editor/hooks/data/index.js")); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (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 (const 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); } class _default extends $e.modules.ComponentBase { getNamespace() { return 'screenshots'; } defaultHooks() { return this.importHooks(dataHooks); } } exports["default"] = _default; /***/ }, /***/ "../modules/screenshots/assets/js/editor/hooks/data/document/save/save/delete-screenshot.js" /*!**************************************************************************************************!*\ !*** ../modules/screenshots/assets/js/editor/hooks/data/document/save/save/delete-screenshot.js ***! \**************************************************************************************************/ (__unused_webpack_module, exports) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = exports.DeleteScreenshot = void 0; class DeleteScreenshot extends $e.modules.hookData.After { getCommand() { return 'document/save/save'; } getConditions(args) { const { status } = args, config = elementor.documents.getCurrent().config; return 'publish' === status && config.support_site_editor; } getId() { return 'document/save/save::delete-screenshot'; } apply() { const postId = elementor.documents.getCurrent().id; return elementorCommon.ajax.addRequest('screenshot_delete', { unique_id: `delete_screenshot_${postId}`, data: { post_id: postId } }); } } exports.DeleteScreenshot = DeleteScreenshot; var _default = exports["default"] = DeleteScreenshot; /***/ }, /***/ "../modules/screenshots/assets/js/editor/hooks/data/index.js" /*!*******************************************************************!*\ !*** ../modules/screenshots/assets/js/editor/hooks/data/index.js ***! \*******************************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "DeleteScreenshot", ({ enumerable: true, get: function () { return _deleteScreenshot.DeleteScreenshot; } })); var _deleteScreenshot = __webpack_require__(/*! ./document/save/save/delete-screenshot */ "../modules/screenshots/assets/js/editor/hooks/data/document/save/save/delete-screenshot.js"); /***/ }, /***/ "../modules/screenshots/assets/js/editor/module.js" /*!*********************************************************!*\ !*** ../modules/screenshots/assets/js/editor/module.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 _component = _interopRequireDefault(__webpack_require__(/*! ./component */ "../modules/screenshots/assets/js/editor/component.js")); class Module extends elementorModules.editor.utils.Module { onElementorInit() { $e.components.register(new _component.default()); } } exports["default"] = Module; /***/ }, /***/ "../modules/scroll-snap/assets/js/editor/component.js" /*!************************************************************!*\ !*** ../modules/scroll-snap/assets/js/editor/component.js ***! \************************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; var hooks = _interopRequireWildcard(__webpack_require__(/*! ./hooks/ui */ "../modules/scroll-snap/assets/js/editor/hooks/ui/index.js")); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (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 (const 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); } class ScrollSnapComponent extends $e.modules.ComponentBase { getNamespace() { return 'scroll-snap'; } defaultHooks() { return this.importHooks(hooks); } } exports["default"] = ScrollSnapComponent; /***/ }, /***/ "../modules/scroll-snap/assets/js/editor/hooks/ui/document/elements/settings/focus-preview.js" /*!****************************************************************************************************!*\ !*** ../modules/scroll-snap/assets/js/editor/hooks/ui/document/elements/settings/focus-preview.js ***! \****************************************************************************************************/ (__unused_webpack_module, exports) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = exports.FocusPreview = void 0; class FocusPreview extends $e.modules.hookData.After { getCommand() { return 'document/elements/settings'; } getId() { return 'focus-preview--document/elements/settings'; } getConditions(args) { return args.settings.scroll_snap_padding?.size !== ''; } apply() { setTimeout(() => { elementor.$preview[0].contentWindow.scrollBy(0, 0); }, 100); } } exports.FocusPreview = FocusPreview; var _default = exports["default"] = FocusPreview; /***/ }, /***/ "../modules/scroll-snap/assets/js/editor/hooks/ui/index.js" /*!*****************************************************************!*\ !*** ../modules/scroll-snap/assets/js/editor/hooks/ui/index.js ***! \*****************************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "FocusPreview", ({ enumerable: true, get: function () { return _focusPreview.FocusPreview; } })); var _focusPreview = __webpack_require__(/*! ./document/elements/settings/focus-preview */ "../modules/scroll-snap/assets/js/editor/hooks/ui/document/elements/settings/focus-preview.js"); /***/ }, /***/ "../modules/scroll-snap/assets/js/editor/module.js" /*!*********************************************************!*\ !*** ../modules/scroll-snap/assets/js/editor/module.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 _component = _interopRequireDefault(__webpack_require__(/*! ./component */ "../modules/scroll-snap/assets/js/editor/component.js")); class Module extends elementorModules.editor.utils.Module { /** * Init */ onInit() { super.onInit(); $e.components.register(new _component.default()); } } exports["default"] = Module; /***/ }, /***/ "../modules/share-buttons/assets/js/editor/editor.js" /*!***********************************************************!*\ !*** ../modules/share-buttons/assets/js/editor/editor.js ***! \***********************************************************/ (module) { "use strict"; module.exports = elementorModules.editor.utils.Module.extend({ config: elementorPro.config.shareButtonsNetworks, networksClassDictionary: { google: 'fab fa-google-plus', pocket: 'fab fa-get-pocket', email: 'fas fa-envelope', print: 'fas fa-print' }, getNetworkClass(networkName) { let networkClass = this.networksClassDictionary[networkName] || 'fab fa-' + networkName; if (elementor.config.icons_update_needed) { networkClass = 'fa ' + networkClass; } return networkClass; }, getNetworkTitle(buttonSettings) { // BC for items that are already selected and have been removed from the options list. return buttonSettings.text || this.getNetworkData(buttonSettings)?.title; }, getNetworkData(buttonSettings) { return this.config[buttonSettings.button]; }, hasCounter(networkName, settings) { return 'icon' !== settings.view && 'yes' === settings.show_counter && this.config[networkName].has_counter; } }); /***/ }, /***/ "../modules/theme-builder/assets/js/editor/conditions/repeater-row.js" /*!****************************************************************************!*\ !*** ../modules/theme-builder/assets/js/editor/conditions/repeater-row.js ***! \****************************************************************************/ (module) { "use strict"; module.exports = elementor.modules.controls.RepeaterRow.extend({ template: '#tmpl-elementor-theme-builder-conditions-repeater-row', childViewContainer: '.elementor-theme-builder-conditions-repeater-row-controls', conflictCheckedOnFirstRender: false, id() { return 'elementor-condition-id-' + this.model.get('_id'); }, onBeforeRender() { var subNameModel = this.collection.findWhere({ name: 'sub_name' }), subIdModel = this.collection.findWhere({ name: 'sub_id' }), subConditionConfig = this.config.conditions[this.model.attributes.sub_name]; subNameModel.attributes.groups = this.getOptions(); if (subConditionConfig && subConditionConfig.controls) { _(subConditionConfig.controls).each(function (control) { subIdModel.set(control); subIdModel.set('name', 'sub_id'); }); } }, initialize() { elementor.modules.controls.RepeaterRow.prototype.initialize.apply(this, arguments); this.config = elementor.config.document.theme_builder; }, updateOptions() { if (this.model.changed.name) { this.model.set({ sub_name: '', sub_id: '' }); } if (this.model.changed.name || this.model.changed.sub_name) { this.model.set('sub_id', '', { silent: true }); var subIdModel = this.collection.findWhere({ name: 'sub_id' }); subIdModel.set({ type: 'select', options: { '': 'All' } }); this.render(); } if (this.model.changed.type) { this.setTypeAttribute(); } }, getOptions() { var self = this, conditionConfig = self.config.conditions[this.model.get('name')]; if (!conditionConfig) { return; } var options = { '': conditionConfig.all_label }; _(conditionConfig.sub_conditions).each(function (conditionId, conditionIndex) { var subConditionConfig = self.config.conditions[conditionId], group; if (!subConditionConfig) { return; } if (subConditionConfig.sub_conditions.length) { group = { label: subConditionConfig.label, options: {} }; group.options[conditionId] = subConditionConfig.all_label; _(subConditionConfig.sub_conditions).each(function (subConditionId) { group.options[subConditionId] = self.config.conditions[subConditionId].label; }); // Use a sting key - to keep order options['key' + conditionIndex] = group; } else { options[conditionId] = subConditionConfig.label; } }); return options; }, setTypeAttribute() { var typeView = this.children.findByModel(this.collection.findWhere({ name: 'type' })); typeView.$el.attr('data-elementor-condition-type', typeView.getControlValue()); }, // Moved from `modules/theme-builder/assets/js/editor/conditions/repeater.js`. checkConflicts() { var modelId = this.model.get('_id'), rowId = 'elementor-condition-id-' + modelId, errorMessageId = 'elementor-conditions-conflict-message-' + modelId, $error = jQuery('#' + errorMessageId); // On render - the row isn't exist, so don't cache it. jQuery('#' + rowId).removeClass('elementor-error'); $error.remove(); elementorPro.ajax.addRequest('theme_builder_conditions_check_conflicts', { unique_id: rowId, data: { condition: this.model.toJSON() }, success(data) { if (!_.isEmpty(data)) { jQuery('#' + rowId).addClass('elementor-error').after('
' + data + '
'); } } }); }, onRender() { var nameModel = this.collection.findWhere({ name: 'name' }), subNameModel = this.collection.findWhere({ name: 'sub_name' }), subIdModel = this.collection.findWhere({ name: 'sub_id' }), nameView = this.children.findByModel(nameModel), subNameView = this.children.findByModel(subNameModel), subIdView = this.children.findByModel(subIdModel), conditionConfig = this.config.conditions[this.model.attributes.name], subConditionConfig = this.config.conditions[this.model.attributes.sub_name], typeConfig = this.config.types[this.config.settings.template_type]; if (typeConfig.condition_type === nameView.getControlValue() && 'general' !== nameView.getControlValue() && !_.isEmpty(conditionConfig.sub_conditions)) { nameView.$el.hide(); } if (!conditionConfig || _.isEmpty(conditionConfig.sub_conditions) && _.isEmpty(conditionConfig.controls) || !nameView.getControlValue() || 'general' === nameView.getControlValue()) { subNameView.$el.hide(); } if (!subConditionConfig || _.isEmpty(subConditionConfig.controls) || !subNameView.getControlValue()) { subIdView.$el.hide(); } // Avoid set a `single` for a-l-l singular types. (conflicted with 404 & custom cpt like Shops and Events plugins). if ('singular' === typeConfig.condition_type) { if ('' === subNameView.getControlValue()) { subNameView.setValue('post'); } } this.setTypeAttribute(); if (!this.conflictCheckedOnFirstRender) { this.checkConflicts(); this.conflictCheckedOnFirstRender = true; } }, onModelChange() { this.updateOptions(); this.checkConflicts(); } }); /***/ }, /***/ "../modules/theme-builder/assets/js/editor/conditions/repeater.js" /*!************************************************************************!*\ !*** ../modules/theme-builder/assets/js/editor/conditions/repeater.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 _repeaterRow = _interopRequireDefault(__webpack_require__(/*! ./repeater-row */ "../modules/theme-builder/assets/js/editor/conditions/repeater-row.js")); module.exports = elementor.modules.controls.Repeater.extend({ childView: _repeaterRow.default, updateActiveRow() {}, initialize() { elementor.modules.controls.Repeater.prototype.initialize.apply(this, arguments); this.config = elementor.config.document.theme_builder; this.updateConditionsOptions(this.config.settings.template_type); }, updateConditionsOptions(templateType) { var self = this, conditionType = self.config.types[templateType].condition_type, options = {}; _([conditionType]).each(function (conditionId, conditionIndex) { var conditionConfig = self.config.conditions[conditionId], group = { label: conditionConfig.label, options: {} }; group.options[conditionId] = conditionConfig.all_label; _(conditionConfig.sub_conditions).each(function (subConditionId) { group.options[subConditionId] = self.config.conditions[subConditionId].label; }); options[conditionIndex] = group; }); var fields = this.model.get('fields'); fields[1].default = conditionType; if ('general' === conditionType) { fields[1].groups = options; } else { fields[2].groups = options; } }, onRender() { this.ui.btnAddRow.text(__('Add condition', 'elementor-pro')); } }); /***/ }, /***/ "../modules/theme-builder/assets/js/editor/conditions/view.js" /*!********************************************************************!*\ !*** ../modules/theme-builder/assets/js/editor/conditions/view.js ***! \********************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var inlineControlsStack = __webpack_require__(/*! elementor-pro/editor/inline-controls-stack.js */ "../assets/dev/js/editor/inline-controls-stack.js"); module.exports = inlineControlsStack.extend({ id: 'elementor-theme-builder-conditions-view', template: '#tmpl-elementor-theme-builder-conditions-view', childViewContainer: '#elementor-theme-builder-conditions-controls', childViewOptions() { return { elementSettingsModel: this.model }; } }); /***/ }, /***/ "../modules/theme-builder/assets/js/editor/hooks/data/document/elements/settings/index.js" /*!************************************************************************************************!*\ !*** ../modules/theme-builder/assets/js/editor/hooks/data/document/elements/settings/index.js ***! \************************************************************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "ThemeBuilderSaveAndReload", ({ enumerable: true, get: function () { return _saveAndReload.ThemeBuilderSaveAndReload; } })); Object.defineProperty(exports, "ThemeBuilderUpdatePreviewOptions", ({ enumerable: true, get: function () { return _updatePreviewOptions.ThemeBuilderUpdatePreviewOptions; } })); var _saveAndReload = __webpack_require__(/*! ./save-and-reload */ "../modules/theme-builder/assets/js/editor/hooks/data/document/elements/settings/save-and-reload.js"); var _updatePreviewOptions = __webpack_require__(/*! ./update-preview-options */ "../modules/theme-builder/assets/js/editor/hooks/data/document/elements/settings/update-preview-options.js"); /***/ }, /***/ "../modules/theme-builder/assets/js/editor/hooks/data/document/elements/settings/save-and-reload.js" /*!**********************************************************************************************************!*\ !*** ../modules/theme-builder/assets/js/editor/hooks/data/document/elements/settings/save-and-reload.js ***! \**********************************************************************************************************/ (__unused_webpack_module, exports) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = exports.ThemeBuilderSaveAndReload = void 0; /** * Hook fired when template: 'single' page layout changed. */ class ThemeBuilderSaveAndReload extends $e.modules.hookData.After { getCommand() { return 'document/elements/settings'; } getId() { return 'elementor-pro-theme-builder-save-and-reload'; } getContainerType() { return 'document'; } getConditions(args) { return args.settings && args.settings.page_template; } apply() { $e.run('document/save/auto', { force: true, onSuccess: () => { elementor.reloadPreview(); elementor.once('preview:loaded', () => { $e.route('panel/page-settings/settings'); }); } }); } } exports.ThemeBuilderSaveAndReload = ThemeBuilderSaveAndReload; var _default = exports["default"] = ThemeBuilderSaveAndReload; /***/ }, /***/ "../modules/theme-builder/assets/js/editor/hooks/data/document/elements/settings/update-preview-options.js" /*!*****************************************************************************************************************!*\ !*** ../modules/theme-builder/assets/js/editor/hooks/data/document/elements/settings/update-preview-options.js ***! \*****************************************************************************************************************/ (__unused_webpack_module, exports) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = exports.ThemeBuilderUpdatePreviewOptions = void 0; class ThemeBuilderUpdatePreviewOptions extends $e.modules.hookData.After { getCommand() { return 'document/elements/settings'; } getId() { return 'elementor-pro-theme-builder-update-preview-options'; } getContainerType() { return 'document'; } getConditions(args) { return args.settings && args.settings.preview_type; } apply(args) { const { containers = [args.container] } = args, { themeBuilder } = elementorPro.modules; $e.run('document/elements/settings', { containers, settings: { preview_id: '', preview_search_term: '' } }); if ($e.routes.is('panel/page-settings/settings')) { themeBuilder.updatePreviewIdOptions(true); } } } exports.ThemeBuilderUpdatePreviewOptions = ThemeBuilderUpdatePreviewOptions; var _default = exports["default"] = ThemeBuilderUpdatePreviewOptions; /***/ }, /***/ "../modules/theme-builder/assets/js/editor/hooks/data/document/save/save-conditions.js" /*!*********************************************************************************************!*\ !*** ../modules/theme-builder/assets/js/editor/hooks/data/document/save/save-conditions.js ***! \*********************************************************************************************/ (__unused_webpack_module, exports) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = exports.ThemeBuilderSaveConditions = void 0; class ThemeBuilderSaveConditions extends $e.modules.hookData.After { getCommand() { return 'document/save/save'; } getId() { return 'elementor-pro-theme-builder-save-conditions'; } getConditions() { return !!elementor.config.document.theme_builder; } apply() { const { conditionsModel } = elementorPro.modules.themeBuilder; elementorPro.ajax.addRequest('theme_builder_save_conditions', { data: conditionsModel.toJSON({ remove: ['default'] }), success: () => { elementor.config.document.theme_builder.settings.conditions = conditionsModel.get('conditions'); } }); } } exports.ThemeBuilderSaveConditions = ThemeBuilderSaveConditions; var _default = exports["default"] = ThemeBuilderSaveConditions; /***/ }, /***/ "../modules/theme-builder/assets/js/editor/hooks/data/document/save/show-conditions.js" /*!*********************************************************************************************!*\ !*** ../modules/theme-builder/assets/js/editor/hooks/data/document/save/show-conditions.js ***! \*********************************************************************************************/ (__unused_webpack_module, exports) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = exports.ThemeBuilderShowConditions = void 0; class ThemeBuilderShowConditions extends $e.modules.hookData.Dependency { getCommand() { return 'document/save/default'; } getId() { return 'elementor-pro-theme-builder-show-conditions'; } getConditions(args) { const { force = false } = args; // If force save, do not show conditions. if (force) { return false; } let showConditions = false; const themeBuilder = elementor.config.document.theme_builder; if (themeBuilder) { const hasConditions = themeBuilder.settings.conditions.length, hasLocation = themeBuilder.settings.location, isDraft = 'draft' === elementor.settings.page.model.get('post_status'); if (hasLocation && (!hasConditions || isDraft)) { showConditions = true; } } return showConditions; } apply() { $e.route('theme-builder-publish/conditions'); return false; // HookBreak. } } exports.ThemeBuilderShowConditions = ThemeBuilderShowConditions; var _default = exports["default"] = ThemeBuilderShowConditions; /***/ }, /***/ "../modules/theme-builder/assets/js/editor/hooks/data/editor/documents/preview/preview-break.js" /*!******************************************************************************************************!*\ !*** ../modules/theme-builder/assets/js/editor/hooks/data/editor/documents/preview/preview-break.js ***! \******************************************************************************************************/ (__unused_webpack_module, exports) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = exports.ThemeBuilderPreviewBreak = void 0; class ThemeBuilderPreviewBreak extends $e.modules.hookData.Dependency { getCommand() { return 'editor/documents/preview'; } getId() { return 'elementor-pro-theme-builder-preview-break'; } getConditions(args) { // If preview is forced, do not break it. if (args.force) { return false; } return !!elementor.documents.get(args.id).config.theme_builder; } apply() { return false; // HookBreak. } } exports.ThemeBuilderPreviewBreak = ThemeBuilderPreviewBreak; var _default = exports["default"] = ThemeBuilderPreviewBreak; /***/ }, /***/ "../modules/theme-builder/assets/js/editor/hooks/data/index.js" /*!*********************************************************************!*\ !*** ../modules/theme-builder/assets/js/editor/hooks/data/index.js ***! \*********************************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ "../node_modules/core-js/modules/esnext.iterator.constructor.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.for-each.js */ "../node_modules/core-js/modules/esnext.iterator.for-each.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); var _exportNames = { ThemeBuilderSaveConditions: true, ThemeBuilderShowConditions: true, ThemeBuilderPreviewBreak: true }; Object.defineProperty(exports, "ThemeBuilderPreviewBreak", ({ enumerable: true, get: function () { return _previewBreak.ThemeBuilderPreviewBreak; } })); Object.defineProperty(exports, "ThemeBuilderSaveConditions", ({ enumerable: true, get: function () { return _saveConditions.ThemeBuilderSaveConditions; } })); Object.defineProperty(exports, "ThemeBuilderShowConditions", ({ enumerable: true, get: function () { return _showConditions.ThemeBuilderShowConditions; } })); var _settings = __webpack_require__(/*! ./document/elements/settings */ "../modules/theme-builder/assets/js/editor/hooks/data/document/elements/settings/index.js"); Object.keys(_settings).forEach(function (key) { if (key === "default" || key === "__esModule") return; if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; if (key in exports && exports[key] === _settings[key]) return; Object.defineProperty(exports, key, { enumerable: true, get: function () { return _settings[key]; } }); }); var _saveConditions = __webpack_require__(/*! ./document/save/save-conditions */ "../modules/theme-builder/assets/js/editor/hooks/data/document/save/save-conditions.js"); var _showConditions = __webpack_require__(/*! ./document/save/show-conditions */ "../modules/theme-builder/assets/js/editor/hooks/data/document/save/show-conditions.js"); var _previewBreak = __webpack_require__(/*! ./editor/documents/preview/preview-break */ "../modules/theme-builder/assets/js/editor/hooks/data/editor/documents/preview/preview-break.js"); /***/ }, /***/ "../modules/theme-builder/assets/js/editor/hooks/index.js" /*!****************************************************************!*\ !*** ../modules/theme-builder/assets/js/editor/hooks/index.js ***! \****************************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ "../node_modules/core-js/modules/esnext.iterator.constructor.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.for-each.js */ "../node_modules/core-js/modules/esnext.iterator.for-each.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); var _data = __webpack_require__(/*! ./data/ */ "../modules/theme-builder/assets/js/editor/hooks/data/index.js"); Object.keys(_data).forEach(function (key) { if (key === "default" || key === "__esModule") return; if (key in exports && exports[key] === _data[key]) return; Object.defineProperty(exports, key, { enumerable: true, get: function () { return _data[key]; } }); }); var _ui = __webpack_require__(/*! ./ui/ */ "../modules/theme-builder/assets/js/editor/hooks/ui/index.js"); Object.keys(_ui).forEach(function (key) { if (key === "default" || key === "__esModule") return; if (key in exports && exports[key] === _ui[key]) return; Object.defineProperty(exports, key, { enumerable: true, get: function () { return _ui[key]; } }); }); /***/ }, /***/ "../modules/theme-builder/assets/js/editor/hooks/ui/editor/document/elements/settings/toggle-menu-conditions.js" /*!**********************************************************************************************************************!*\ !*** ../modules/theme-builder/assets/js/editor/hooks/ui/editor/document/elements/settings/toggle-menu-conditions.js ***! \**********************************************************************************************************************/ (__unused_webpack_module, exports) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = exports.ThemeBuilderToggleMenuConditions = void 0; class ThemeBuilderToggleMenuConditions extends $e.modules.hookUI.After { getCommand() { return 'document/elements/settings'; } getId() { return 'elementor-pro-theme-builder-toggle-menu-conditions'; } getContainerType() { return 'document'; } getConditions(args) { return args.settings && args.settings.location; } apply() { const { themeBuilder } = elementorPro.modules; themeBuilder.ui.menuConditions.toggle(!!elementor.config.document.theme_builder.settings.location); } } exports.ThemeBuilderToggleMenuConditions = ThemeBuilderToggleMenuConditions; var _default = exports["default"] = ThemeBuilderToggleMenuConditions; /***/ }, /***/ "../modules/theme-builder/assets/js/editor/hooks/ui/editor/documents/close/remove-editor-ui.js" /*!*****************************************************************************************************!*\ !*** ../modules/theme-builder/assets/js/editor/hooks/ui/editor/documents/close/remove-editor-ui.js ***! \*****************************************************************************************************/ (__unused_webpack_module, exports) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = exports.ThemeBuilderRemoveEditorUI = void 0; class ThemeBuilderRemoveEditorUI extends $e.modules.hookUI.After { getCommand() { return 'editor/documents/unload'; } getId() { return 'elementor-pro-theme-builder-remove-editor-ui'; } getConditions(args) { const { document } = args; return document.config.theme_builder; } apply() { this.removePanelFooterSubmenuItems(); this.removePublishTabs(); } removePanelFooterSubmenuItems() { const footerView = elementor.getPanelView().footer.currentView, behavior = footerView._behaviors[Object.keys(footerView.behaviors()).indexOf('saver')]; elementor.getPanelView().footer.currentView.removeSubMenuItem('saver-options', { name: 'conditions' }); behavior.ui.buttonPreview.tipsy('enable').removeClass('elementor-panel-footer-theme-builder-buttons-wrapper elementor-toggle-state'); } removePublishTabs() { const component = $e.components.get('theme-builder-publish'); component.removeTab('conditions'); } } exports.ThemeBuilderRemoveEditorUI = ThemeBuilderRemoveEditorUI; var _default = exports["default"] = ThemeBuilderRemoveEditorUI; /***/ }, /***/ "../modules/theme-builder/assets/js/editor/hooks/ui/editor/documents/open/add-editor-ui.js" /*!*************************************************************************************************!*\ !*** ../modules/theme-builder/assets/js/editor/hooks/ui/editor/documents/open/add-editor-ui.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.ThemeBuilderAddEditorUI = void 0; var _view = _interopRequireDefault(__webpack_require__(/*! ../../../../../conditions/view */ "../modules/theme-builder/assets/js/editor/conditions/view.js")); class ThemeBuilderAddEditorUI extends $e.modules.hookUI.After { getCommand() { return 'editor/documents/open'; } getId() { return 'elementor-pro-theme-builder-add-editor-ui'; } getConditions(args) { return elementor.documents.get(args.id).config.theme_builder; } apply() { if (elementor.panel) { this.addUI(); } else { // First open, the panel is not available yet. elementor.once('preview:loaded', this.addUI.bind(this)); } } addUI() { this.addRepeaterControlView(); this.addPanelFooterSubmenuItems(); this.addPublishTabs(); } addRepeaterControlView() { elementor.addControlView('Conditions_repeater', __webpack_require__(/*! ../../../../../conditions/repeater */ "../modules/theme-builder/assets/js/editor/conditions/repeater.js")); } addPublishTabs() { const component = $e.components.get('theme-builder-publish'), themeBuilderModuleConfig = elementor.config.document.theme_builder, settings = themeBuilderModuleConfig.settings; component.manager.conditionsModel = new elementorModules.editor.elements.models.BaseSettings(settings, { controls: themeBuilderModuleConfig.template_conditions.controls }); component.addTab('conditions', { title: __('Conditions', 'elementor-pro'), View: _view.default, viewOptions: { model: component.manager.conditionsModel, controls: component.manager.conditionsModel.controls }, name: 'conditions', description: __('Apply current template to these pages.', 'elementor-pro'), image: elementorPro.config.urls.modules + 'theme-builder/assets/images/conditions-tab.svg' }); } addPanelFooterSubmenuItems() { const footerView = elementor.getPanelView().footer.currentView, behavior = footerView._behaviors[Object.keys(footerView.behaviors()).indexOf('saver')]; footerView.ui.menuConditions = footerView.addSubMenuItem('saver-options', { before: 'save-template', name: 'conditions', icon: 'eicon-flow', title: __('Display Conditions', 'elementor-pro'), callback: () => $e.route('theme-builder-publish/conditions') }); footerView.ui.menuConditions.toggle(!!elementor.config.document.theme_builder.settings.location); behavior.ui.buttonPreview.tipsy('disable').html(jQuery('#tmpl-elementor-theme-builder-button-preview').html()).addClass('elementor-panel-footer-theme-builder-buttons-wrapper elementor-toggle-state'); } } exports.ThemeBuilderAddEditorUI = ThemeBuilderAddEditorUI; var _default = exports["default"] = ThemeBuilderAddEditorUI; /***/ }, /***/ "../modules/theme-builder/assets/js/editor/hooks/ui/index.js" /*!*******************************************************************!*\ !*** ../modules/theme-builder/assets/js/editor/hooks/ui/index.js ***! \*******************************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "ThemeBuilderAddEditorUI", ({ enumerable: true, get: function () { return _addEditorUi.ThemeBuilderAddEditorUI; } })); Object.defineProperty(exports, "ThemeBuilderFooterSaverAfterSave", ({ enumerable: true, get: function () { return _after.ThemeBuilderFooterSaverAfterSave; } })); Object.defineProperty(exports, "ThemeBuilderRemoveEditorUI", ({ enumerable: true, get: function () { return _removeEditorUi.ThemeBuilderRemoveEditorUI; } })); Object.defineProperty(exports, "ThemeBuilderToggleMenuConditions", ({ enumerable: true, get: function () { return _toggleMenuConditions.ThemeBuilderToggleMenuConditions; } })); var _addEditorUi = __webpack_require__(/*! ./editor/documents/open/add-editor-ui */ "../modules/theme-builder/assets/js/editor/hooks/ui/editor/documents/open/add-editor-ui.js"); var _removeEditorUi = __webpack_require__(/*! ./editor/documents/close/remove-editor-ui */ "../modules/theme-builder/assets/js/editor/hooks/ui/editor/documents/close/remove-editor-ui.js"); var _toggleMenuConditions = __webpack_require__(/*! ./editor/document/elements/settings/toggle-menu-conditions */ "../modules/theme-builder/assets/js/editor/hooks/ui/editor/document/elements/settings/toggle-menu-conditions.js"); var _after = __webpack_require__(/*! ./save/after */ "../modules/theme-builder/assets/js/editor/hooks/ui/save/after.js"); /***/ }, /***/ "../modules/theme-builder/assets/js/editor/hooks/ui/save/after.js" /*!************************************************************************!*\ !*** ../modules/theme-builder/assets/js/editor/hooks/ui/save/after.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.ThemeBuilderFooterSaverAfterSave = void 0; class ThemeBuilderFooterSaverAfterSave extends $e.modules.hookUI.After { getCommand() { return 'document/save/save'; } getId() { return 'theme-builder-footer-saver-after-save'; } getConditions() { return elementor.config.document.support_site_editor; } apply(args, result) { const { status } = args; if (result.statusChanged) { this.onPageStatusChange(status); } } onPageStatusChange(newStatus) { if ('publish' !== newStatus) { return; } const options = { classes: 'e-theme-builder-save-toaster', message: elementor.config.document.panel.messages.publish_notification, buttons: [{ name: 'open_site_editor', text: '' + __('Open Site Editor', 'elementor-pro') + '', callback() { $e.run('app/open'); } }, { name: 'view_live_site', text: '' + __('View Live Site', 'elementor-pro') + '', callback() { open(elementor.config.document.urls.permalink); } }] }; elementor.notifications.showToast(options); } } exports.ThemeBuilderFooterSaverAfterSave = ThemeBuilderFooterSaverAfterSave; /***/ }, /***/ "../modules/theme-builder/assets/js/editor/module.js" /*!***********************************************************!*\ !*** ../modules/theme-builder/assets/js/editor/module.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; __webpack_require__(/*! core-js/modules/es.array.includes.js */ "../node_modules/core-js/modules/es.array.includes.js"); var _component = _interopRequireDefault(__webpack_require__(/*! ./publish/component */ "../modules/theme-builder/assets/js/editor/publish/component.js")); class ThemeBuilderModule extends elementorModules.editor.utils.Module { __construct(...args) { super.__construct(...args); Object.defineProperty(elementorPro.config, 'theme_builder', { get() { elementorDevTools.deprecation.deprecated('theme_builder', '2.9.0', 'elementor.config.document.theme_builder'); return elementor.config.document.theme_builder; } }); } onElementorLoaded() { this.component = $e.components.register(new _component.default({ manager: this })); elementor.on('document:loaded', this.onDocumentLoaded.bind(this)); elementor.on('document:unload', this.onDocumentUnloaded.bind(this)); this.onApplyPreview = this.onApplyPreview.bind(this); this.onSectionPreviewSettingsActive = this.onSectionPreviewSettingsActive.bind(this); elementor.channels.editor.on('elementorProSiteLogo:change', this.openSiteIdentity); } onDocumentLoaded(document) { if (!document.config.theme_builder) { return; } elementor.getPanelView().on('set:page:page_settings', this.updatePreviewIdOptions); elementor.channels.editor.on('elementorThemeBuilder:ApplyPreview', this.onApplyPreview); elementor.channels.editor.on('page_settings:preview_settings:activated', this.onSectionPreviewSettingsActive); } onDocumentUnloaded(document) { if (!document.config.theme_builder) { return; } elementor.getPanelView().off('set:page:page_settings', this.updatePreviewIdOptions); elementor.channels.editor.off('elementorThemeBuilder:ApplyPreview', this.onApplyPreview); elementor.channels.editor.off('page_settings:preview_settings:activated', this.onSectionPreviewSettingsActive); } saveAndReload() { $e.run('document/save/auto', { force: true, onSuccess: () => { elementor.dynamicTags.cleanCache(); const isInitialDocument = elementor.config.initial_document.id === elementor.documents.getCurrentId(); if (isInitialDocument) { // Page templates (e.g. single) with header/footer requires a full reload in order // to change the main query also for them. elementor.reloadPreview(); } else { $e.internal('editor/documents/attach-preview'); } } }); } onApplyPreview() { this.saveAndReload(); } onSectionPreviewSettingsActive() { this.updatePreviewIdOptions(true); } updatePreviewIdOptions = render => { let previewType = elementor.settings.page.model.get('preview_type'); if (!previewType) { return; } previewType = previewType.split('/'); const currentView = elementor.getPanelView().getCurrentPageView(), controlModel = currentView.collection.findWhere({ name: 'preview_id' }); const templateType = previewType[0], sourceType = previewType[1]; if ('author' === previewType[1]) { controlModel.set({ autocomplete: { object: 'author' } }); } else if (this.isTemplateTypeTaxonomyLoop(templateType)) { controlModel.set({ autocomplete: { object: 'tax', query: { taxonomy: sourceType } } }); } else if ('single' === templateType) { controlModel.set({ autocomplete: { object: 'post', query: { post_type: sourceType } } }); } else { controlModel.set({ autocomplete: { object: '' } }); } if (true === render) { // Can be model. const controlView = currentView.children.findByModel(controlModel); controlView.render(); controlView.$el.toggle(!!controlModel.get('autocomplete').object); } }; isTemplateTypeTaxonomyLoop(templateType) { return ['post_taxonomy', 'product_taxonomy'].includes(templateType); } async openSiteIdentity() { await $e.run('panel/global/open'); $e.route('panel/global/settings-site-identity'); } } exports["default"] = ThemeBuilderModule; /***/ }, /***/ "../modules/theme-builder/assets/js/editor/publish/component.js" /*!**********************************************************************!*\ !*** ../modules/theme-builder/assets/js/editor/publish/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 _content = _interopRequireDefault(__webpack_require__(/*! ./content */ "../modules/theme-builder/assets/js/editor/publish/content.js")); var _layout = _interopRequireDefault(__webpack_require__(/*! ./layout */ "../modules/theme-builder/assets/js/editor/publish/layout.js")); var hooks = _interopRequireWildcard(__webpack_require__(/*! ../hooks */ "../modules/theme-builder/assets/js/editor/hooks/index.js")); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (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 (const 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); } class Component extends $e.modules.ComponentModalBase { getNamespace() { // TODO: should be 'theme-builder/publish'. return 'theme-builder-publish'; } getModalLayout() { return _layout.default; } defaultCommands() { return { next: () => { const tabs = Object.keys(this.tabs), next = tabs[this.currentTabIndex + 1]; if (next) { $e.route(this.getTabRoute(next)); } }, save: () => { $e.run('document/save/default', { force: true }); this.layout.hideModal(); }, 'preview-settings': () => { // TODO: This is function is not part of this component. const panel = elementor.getPanelView(); $e.route('panel/page-settings/settings'); panel.getCurrentPageView().activateSection('preview_settings')._renderChildren(); } }; } defaultHooks() { return this.importHooks(hooks); } getTabsWrapperSelector() { return '#elementor-publish__tabs'; } renderTab(tab) { const tabs = this.getTabs(), keys = Object.keys(tabs), tabArgs = tabs[tab]; this.currentTabIndex = keys.indexOf(tab); const isLastTab = !keys[this.currentTabIndex + 1]; this.layout.modalContent.currentView.screen.show(new tabArgs.View(tabArgs.viewOptions)); this.layout.modal.getElements('next').toggle(!isLastTab); this.layout.modal.getElements('publish').toggleClass('e-primary', isLastTab); } activateTab(tab) { $e.routes.saveState(this.getNamespace()); super.activateTab(tab); } open() { super.open(); if (!this.layoutContent) { this.layout.showLogo(); this.layout.modalContent.show(new _content.default({ component: this })); this.layoutContent = true; } return true; } } exports["default"] = Component; /***/ }, /***/ "../modules/theme-builder/assets/js/editor/publish/content.js" /*!********************************************************************!*\ !*** ../modules/theme-builder/assets/js/editor/publish/content.js ***! \********************************************************************/ (__unused_webpack_module, exports) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; class _default extends Marionette.LayoutView { id() { return 'elementor-publish'; } getTemplate() { return Marionette.TemplateCache.get('#tmpl-elementor-component-publish'); } regions() { return { screen: '#elementor-publish__screen' }; } templateHelpers() { return { tabs: this.getOption('component').getTabs() }; } } exports["default"] = _default; /***/ }, /***/ "../modules/theme-builder/assets/js/editor/publish/layout.js" /*!*******************************************************************!*\ !*** ../modules/theme-builder/assets/js/editor/publish/layout.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["default"] = void 0; class _default extends elementorModules.common.views.modal.Layout { getModalOptions() { return { id: 'elementor-publish__modal', hide: { onButtonClick: false } }; } getLogoOptions() { return { title: __('Publish Settings', 'elementor-pro') }; } initModal() { super.initModal(); this.modal.addButton({ name: 'publish', text: __('Save & Close', 'elementor-pro'), callback: () => $e.run('theme-builder-publish/save') }); this.modal.getElements('publish').addClass('e-btn-txt'); this.modal.addButton({ name: 'next', text: __('Next', 'elementor-pro'), callback: () => $e.run('theme-builder-publish/next') }); const $publishButton = this.modal.getElements('publish'); this.modal.getElements('next').addClass('e-primary').add($publishButton).addClass('elementor-button').removeClass('dialog-button'); } } exports["default"] = _default; /***/ }, /***/ "../modules/theme-elements/assets/js/editor/comments-skin.js" /*!*******************************************************************!*\ !*** ../modules/theme-elements/assets/js/editor/comments-skin.js ***! \*******************************************************************/ (module) { "use strict"; module.exports = function () { var self = this; self.onPanelShow = function (panel, model) { var settingsModel = model.get('settings'); // If no skins - set the skin to `theme_comments`. if (!settingsModel.controls._skin.default) { settingsModel.set('_skin', 'theme_comments'); } }; self.init = function () { elementor.hooks.addAction('panel/open_editor/widget/post-comments', self.onPanelShow); }; self.init(); }; /***/ }, /***/ "../modules/theme-elements/assets/js/editor/editor.js" /*!************************************************************!*\ !*** ../modules/theme-elements/assets/js/editor/editor.js ***! \************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; module.exports = elementorModules.editor.utils.Module.extend({ onElementorPreviewLoaded() { var CommentsSkin = __webpack_require__(/*! ./comments-skin */ "../modules/theme-elements/assets/js/editor/comments-skin.js"); this.commentsSkin = new CommentsSkin(); } }); /***/ }, /***/ "../modules/video-playlist/assets/js/editor/component.js" /*!***************************************************************!*\ !*** ../modules/video-playlist/assets/js/editor/component.js ***! \***************************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; var hooks = _interopRequireWildcard(__webpack_require__(/*! ./hooks/ui */ "../modules/video-playlist/assets/js/editor/hooks/ui/index.js")); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (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 (const 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); } class VideoPlaylistComponent extends $e.modules.ComponentBase { getNamespace() { return 'video-playlist'; } defaultHooks() { return this.importHooks(hooks); } } exports["default"] = VideoPlaylistComponent; /***/ }, /***/ "../modules/video-playlist/assets/js/editor/hooks/ui/document/elements/settings/active-tab.js" /*!****************************************************************************************************!*\ !*** ../modules/video-playlist/assets/js/editor/hooks/ui/document/elements/settings/active-tab.js ***! \****************************************************************************************************/ (__unused_webpack_module, exports) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = exports.ActiveTab = void 0; /** * Hook fired when template: 'single' page layout changed. */ class ActiveTab extends $e.modules.hookData.After { getCommand() { return 'document/elements/settings'; } getId() { return 'active-tab--document/elements/settings'; } getContainerType() { return 'repeater'; } getConditions(args) { return args.settings.inner_tab_content_1 || args.settings.inner_tab_content_2; } apply(args) { if (args.settings.inner_tab_content_1) { args.container.view.model.get('editSettings').set('innerActiveIndex', 0); } else if (args.settings.inner_tab_content_2) { args.container.view.model.get('editSettings').set('innerActiveIndex', 1); } } } exports.ActiveTab = ActiveTab; var _default = exports["default"] = ActiveTab; /***/ }, /***/ "../modules/video-playlist/assets/js/editor/hooks/ui/index.js" /*!********************************************************************!*\ !*** ../modules/video-playlist/assets/js/editor/hooks/ui/index.js ***! \********************************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "ActiveTab", ({ enumerable: true, get: function () { return _activeTab.ActiveTab; } })); var _activeTab = __webpack_require__(/*! ./document/elements/settings/active-tab */ "../modules/video-playlist/assets/js/editor/hooks/ui/document/elements/settings/active-tab.js"); /***/ }, /***/ "../modules/video-playlist/assets/js/editor/module.js" /*!************************************************************!*\ !*** ../modules/video-playlist/assets/js/editor/module.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 _component = _interopRequireDefault(__webpack_require__(/*! ./component */ "../modules/video-playlist/assets/js/editor/component.js")); class Module extends elementorModules.editor.utils.Module { /** * Init */ onInit() { super.onInit(); $e.components.register(new _component.default()); } onElementorLoaded() { elementor.channels.editor.on('elementorPlaylistWidget:setVideoData', e => { $e.run('document/elements/settings', { container: e.container, settings: { thumbnail: { url: e.currentItem.thumbnail ? e.currentItem.thumbnail.url : '' }, title: e.currentItem.video_title ? e.currentItem.video_title : '', duration: e.currentItem.duration ? e.currentItem.duration : '' }, options: { external: true } }); }); } } exports["default"] = Module; /***/ }, /***/ "../modules/woocommerce/assets/js/editor/component.js" /*!************************************************************!*\ !*** ../modules/woocommerce/assets/js/editor/component.js ***! \************************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; var hooks = _interopRequireWildcard(__webpack_require__(/*! ./hooks/ */ "../modules/woocommerce/assets/js/editor/hooks/index.js")); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (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 (const 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); } class Component extends $e.modules.ComponentBase { getNamespace() { return 'woocommerce'; } defaultHooks() { return this.importHooks(hooks); } } exports["default"] = Component; /***/ }, /***/ "../modules/woocommerce/assets/js/editor/hooks/data/create-widget-activate-settings-modal.js" /*!***************************************************************************************************!*\ !*** ../modules/woocommerce/assets/js/editor/hooks/data/create-widget-activate-settings-modal.js ***! \***************************************************************************************************/ (__unused_webpack_module, exports) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.WoocommerceCreateWidgetActivateSettingsModal = void 0; class WoocommerceCreateWidgetActivateSettingsModal extends $e.modules.hookData.After { getCommand() { return 'document/elements/create'; } getId() { return 'elementor-pro-woocommerce-create-widget-activate-settings-modal'; } getContainerType() { return 'column'; } getConditions(args, container) { return Object.prototype.hasOwnProperty.call(elementorPro.modules.woocommerce.pageSettingsWidgets, container.model.get('widgetType')); } apply(args, container) { elementorPro.modules.woocommerce.onCreateWidget(container); } } exports.WoocommerceCreateWidgetActivateSettingsModal = WoocommerceCreateWidgetActivateSettingsModal; /***/ }, /***/ "../modules/woocommerce/assets/js/editor/hooks/data/delete-widget-deactivate-settings-modal.js" /*!*****************************************************************************************************!*\ !*** ../modules/woocommerce/assets/js/editor/hooks/data/delete-widget-deactivate-settings-modal.js ***! \*****************************************************************************************************/ (__unused_webpack_module, exports) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.WoocommerceDeleteWidgetDeactivateSettingsModal = void 0; class WoocommerceDeleteWidgetDeactivateSettingsModal extends $e.modules.hookData.After { getCommand() { return 'document/elements/delete'; } getId() { return 'elementor-pro-woocommerce-delete-widget-deactivate-settings-modal'; } getContainerType() { return 'widget'; } getConditions(args, container) { return Object.prototype.hasOwnProperty.call(elementorPro.modules.woocommerce.pageSettingsWidgets, container.model.get('widgetType')); } apply(args, container) { elementorPro.modules.woocommerce.onDeleteWidget(container); } } exports.WoocommerceDeleteWidgetDeactivateSettingsModal = WoocommerceDeleteWidgetDeactivateSettingsModal; /***/ }, /***/ "../modules/woocommerce/assets/js/editor/hooks/data/index.js" /*!*******************************************************************!*\ !*** ../modules/woocommerce/assets/js/editor/hooks/data/index.js ***! \*******************************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "WoocommerceCreateWidgetActivateSettingsModal", ({ enumerable: true, get: function () { return _createWidgetActivateSettingsModal.WoocommerceCreateWidgetActivateSettingsModal; } })); Object.defineProperty(exports, "WoocommerceDeleteWidgetDeactivateSettingsModal", ({ enumerable: true, get: function () { return _deleteWidgetDeactivateSettingsModal.WoocommerceDeleteWidgetDeactivateSettingsModal; } })); Object.defineProperty(exports, "WoocommerceNotices", ({ enumerable: true, get: function () { return _notices.WoocommerceNotices; } })); Object.defineProperty(exports, "WoocommerceSaveShowModal", ({ enumerable: true, get: function () { return _saveShowModal.WoocommerceSaveShowModal; } })); var _saveShowModal = __webpack_require__(/*! ./save-show-modal */ "../modules/woocommerce/assets/js/editor/hooks/data/save-show-modal.js"); var _createWidgetActivateSettingsModal = __webpack_require__(/*! ./create-widget-activate-settings-modal */ "../modules/woocommerce/assets/js/editor/hooks/data/create-widget-activate-settings-modal.js"); var _deleteWidgetDeactivateSettingsModal = __webpack_require__(/*! ./delete-widget-deactivate-settings-modal */ "../modules/woocommerce/assets/js/editor/hooks/data/delete-widget-deactivate-settings-modal.js"); var _notices = __webpack_require__(/*! ./notices */ "../modules/woocommerce/assets/js/editor/hooks/data/notices.js"); /***/ }, /***/ "../modules/woocommerce/assets/js/editor/hooks/data/notices.js" /*!*********************************************************************!*\ !*** ../modules/woocommerce/assets/js/editor/hooks/data/notices.js ***! \*********************************************************************/ (__unused_webpack_module, exports) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.WoocommerceNotices = void 0; class WoocommerceNotices extends $e.modules.hookData.After { getCommand() { return 'document/elements/settings'; } getId() { return 'woocommerce-notices'; } getConditions(args) { return 'kit' === elementor.documents.getCurrent().config.type && Array.isArray(args.settings.woocommerce_notices_elements); } apply(args) { const { woocommerce } = elementorPro.modules; woocommerce.renderMockNotices(args.settings.woocommerce_notices_elements); } } exports.WoocommerceNotices = WoocommerceNotices; /***/ }, /***/ "../modules/woocommerce/assets/js/editor/hooks/data/save-show-modal.js" /*!*****************************************************************************!*\ !*** ../modules/woocommerce/assets/js/editor/hooks/data/save-show-modal.js ***! \*****************************************************************************/ (__unused_webpack_module, exports) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.WoocommerceSaveShowModal = void 0; class WoocommerceSaveShowModal extends $e.modules.hookData.After { getCommand() { return 'document/save/save'; } getId() { return 'elementor-pro-woocommerce-save-show-modal'; } getConditions(args) { return args.status && -1 !== ['private', 'publish'].indexOf(args.status); } apply() { elementorPro.modules.woocommerce.onUpdateDocument(); } } exports.WoocommerceSaveShowModal = WoocommerceSaveShowModal; /***/ }, /***/ "../modules/woocommerce/assets/js/editor/hooks/index.js" /*!**************************************************************!*\ !*** ../modules/woocommerce/assets/js/editor/hooks/index.js ***! \**************************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ "../node_modules/core-js/modules/esnext.iterator.constructor.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.for-each.js */ "../node_modules/core-js/modules/esnext.iterator.for-each.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); var _data = __webpack_require__(/*! ./data/ */ "../modules/woocommerce/assets/js/editor/hooks/data/index.js"); Object.keys(_data).forEach(function (key) { if (key === "default" || key === "__esModule") return; if (key in exports && exports[key] === _data[key]) return; Object.defineProperty(exports, key, { enumerable: true, get: function () { return _data[key]; } }); }); /***/ }, /***/ "../modules/woocommerce/assets/js/editor/module.js" /*!*********************************************************!*\ !*** ../modules/woocommerce/assets/js/editor/module.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"); __webpack_require__(/*! core-js/modules/es.array.push.js */ "../node_modules/core-js/modules/es.array.push.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ "../node_modules/core-js/modules/esnext.iterator.constructor.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.find.js */ "../node_modules/core-js/modules/esnext.iterator.find.js"); var _component = _interopRequireDefault(__webpack_require__(/*! ./component */ "../modules/woocommerce/assets/js/editor/component.js")); class WoocommerceModule extends elementorModules.editor.utils.Module { constructor(...args) { super(...args); this.pageSettingsWidgets = { 'woocommerce-checkout-page': { headerMessage: __('Want to save this as your checkout page?', 'elementor-pro'), message: __('Changes you make here will override your existing WooCommerce settings.', 'elementor-pro'), confirmMessage: __('You\'ve updated your checkout page.', 'elementor-pro'), cancelMessage: __('

Set up a checkout page


Without a checkout page, visitors can\'t complete transactions on your site. To set one up, go to Site Settings.', 'elementor-pro'), failedMessage: __('

Sorry, something went wrong.


To define a checkout page for your site, head over to Site Settings.', 'elementor-pro'), optionName: 'woocommerce_checkout_page_id', woocommercePageName: 'checkout' }, 'woocommerce-cart': { headerMessage: __('Want to save this as your cart page?', 'elementor-pro'), message: __('Changes you make here will override your existing WooCommerce settings.', 'elementor-pro'), confirmMessage: __('You\'ve updated your cart page.', 'elementor-pro'), cancelMessage: __('

Set up a cart page


The cart page shows an order summary. To set one up, go to Site Settings.', 'elementor-pro'), failedMessage: __('

Sorry, something went wrong.


To define a cart page for your site, head over to Site Settings.', 'elementor-pro'), optionName: 'woocommerce_cart_page_id', woocommercePageName: 'cart' }, 'woocommerce-my-account': { headerMessage: __('Want to save this as your my account page?', 'elementor-pro'), message: __('Changes you make here will override your existing WooCommerce settings.', 'elementor-pro'), confirmMessage: __('You\'ve updated your my account page.', 'elementor-pro'), cancelMessage: __('

Set up a My Account page


Without it, customers can\'t update their billing details, review past orders, etc. To set up My Account, go to Site Settings.', 'elementor-pro'), failedMessage: __('

Sorry, something went wrong.


To define a my account page for your site, head over to Site Settings.', 'elementor-pro'), optionName: 'woocommerce_myaccount_page_id', woocommercePageName: 'myaccount' }, 'woocommerce-purchase-summary': { headerMessage: __('Want to save this as your purchase summary page?', 'elementor-pro'), message: __('Changes you make here will override your WooCommerce default purchase summary page.', 'elementor-pro'), confirmMessage: __('You\'ve updated your summary page.', 'elementor-pro'), cancelMessage: __('

Set up a purchase summary page


This page shows payment and order details. To set one up, go to Site Settings.', 'elementor-pro'), failedMessage: __('

Sorry, something went wrong.


To define a purchase summary page for your site, head over to Site Settings.', 'elementor-pro'), optionName: 'elementor_woocommerce_purchase_summary_page_id', woocommercePageName: 'summary' } }; this.createdPageSettingsWidgets = []; } addWooCommerceClassToLoopWrapper(LoopGridHandler) { LoopGridHandler.$element.addClass('woocommerce'); } onElementorInit() { elementor.hooks.addAction('editor/widgets/loop-grid/on-init', this.addWooCommerceClassToLoopWrapper); } onElementorFrontendInit() { elementorFrontend.elements.$body.on('added_to_cart', (e, data) => { // We do not want the page to reload in the Editor after we triggered the 'added_to_cart' event. if (this.didManuallyTriggerAddToCartEvent(data)) { return false; } }); if ('loop-item' === elementor.documents.currentDocument.config.type && 'product' === elementor.documents.currentDocument.config.settings.settings.source) { // Add the 'woocommerce' class to the Loop document wrapper only when editing a Product Loop Template in the // theme builder. elementor.on('document:loaded', () => { elementor.$previewContents[0].querySelector('.e-loop-item').classList.add('woocommerce'); }); } } didManuallyTriggerAddToCartEvent(data = null) { return data?.e_manually_triggered; } onElementorLoaded() { this.component = $e.components.register(new _component.default({ manager: this })); // WooCommerce Notice Settings. const noticeSections = ['section_woocommerce_notices', 'woocommerce_message_notices', 'woocommerce_info_notices', 'woocommerce_error_notices']; for (const section of noticeSections) { elementor.channels.editor.on('kit_settings:' + section + ':activated', () => { this.renderMockNotices(elementor.documents.getCurrent().container.settings.get('woocommerce_notices_elements')); }); } // Custom Empty Cart Template. elementor.channels.editor.on('editor:widget:woocommerce-cart:section_additional_options:activated', () => { this.onTemplateIdChange('additional_template_select'); }); // Custom My Account Dashboard Template elementor.channels.editor.on('editor:widget:woocommerce-my-account:section_additional_options:activated', () => { this.onTemplateIdChange('customize_dashboard_select'); }); } renderMockNotices(noticeElements) { const noticesWrapper = elementor.$previewContents.find('.woocommerce-notices-wrapper'); if (noticeElements.length <= 0) { noticesWrapper.remove(); return; } let noticesClass = ''; for (const notice of noticeElements) { const className = notice.replace('_', '-'); noticesClass += 'e-' + className + '-notice '; } elementorFrontend.elements.$body.addClass(noticesClass.trim()); noticesWrapper.addClass('elementor-loading'); // Wait for the Ajax call to finish before the select2 can be changed again. jQuery('.elementor-select2').attr('disabled', 'disabled'); elementorPro.ajax.addRequest('woocommerce_mock_notices', { data: { notice_elements: noticeElements }, success(data) { noticesWrapper.remove(); elementor.$previewContents.find('.elementor-editor-preview').prepend(data); noticesWrapper.removeClass('elementor-loading'); // Enable the select2 again. jQuery('.elementor-select2').removeAttr('disabled'); } }); } onTemplateIdChange(sectionActive) { const editor = elementor.getPanelView().getCurrentPageView(), model = editor.getOption('editedElementView').getEditModel(), settingsModel = model.get('settings'), templateID = settingsModel.get(sectionActive), $editButton = editor.$el.find('.elementor-edit-template'); if (!templateID) { $editButton.addClass('e-control-tool-disabled').hide(); } else { const editUrl = ElementorConfig.home_url + '?p=' + templateID + '&elementor'; $editButton.prop('href', editUrl).removeClass('e-control-tool-disabled').show(); } } onCreateWidget(container) { const widgetType = container.model.get('widgetType'); if (undefined === this.createdPageSettingsWidgets[widgetType]) { this.createdPageSettingsWidgets[widgetType] = 0; } this.createdPageSettingsWidgets[widgetType]++; } onDeleteWidget(container) { const widgetType = container.model.get('widgetType'); this.createdPageSettingsWidgets[widgetType]--; if (!this.createdPageSettingsWidgets[widgetType]) { delete this.createdPageSettingsWidgets[widgetType]; } } onUpdateDocument() { // On page Save trigger the 'added_to_cart' event so that the persistent cart cache can refresh so that the 'Preview' can be immediately updated without having to go and make a change in the Cart first. elementorFrontend.elements.$body.trigger('added_to_cart', [{ e_manually_triggered: true }]); const saveWoocommercePageSettingKeys = Object.keys(this.createdPageSettingsWidgets), lastWidgetCreated = saveWoocommercePageSettingKeys[saveWoocommercePageSettingKeys.length - 1], postId = elementor.documents.getCurrent().id; if (1 !== saveWoocommercePageSettingKeys.length) { return; } const lastWidgetCreatedOptions = this.pageSettingsWidgets[lastWidgetCreated]; // Bail if this page is already set as the corresponding WC page. if (postId === elementorPro.config.woocommerce.woocommercePages[lastWidgetCreatedOptions.woocommercePageName]) { return; } elementorCommon.dialogsManager.createWidget('confirm', { id: 'elementor-woocommerce-save-pages', className: 'e-global__confirm-add', headerMessage: lastWidgetCreatedOptions.headerMessage, message: lastWidgetCreatedOptions.message, position: { my: 'center center', at: 'center center' }, strings: { confirm: __('Save', 'elementor-pro'), cancel: __('No thanks', 'elementor-pro') }, onConfirm: () => this.onConfirmModal(lastWidgetCreatedOptions), onCancel: () => this.onCancelModal(lastWidgetCreatedOptions) }).show(); this.createdPageSettingsWidgets = []; } onConfirmModal(lastWidgetCreatedOptions) { elementorPro.ajax.addRequest('woocommerce_update_page_option', { data: { option_name: lastWidgetCreatedOptions.optionName }, success: () => { elementor.notifications.showToast({ message: lastWidgetCreatedOptions.confirmMessage }); }, error: () => this.showPagesSettingsToast(lastWidgetCreatedOptions.failedMessage) }); } onCancelModal(lastWidgetCreatedOptions) { this.showPagesSettingsToast(lastWidgetCreatedOptions.cancelMessage); } showPagesSettingsToast(message) { const buttons = []; elementor.notifications.initToast(); buttons.push({ name: 'take_me_there', text: __('Take me there', 'elementor-pro'), callback: () => this.openSiteSettingsTab('settings-woocommerce') }); elementor.notifications.showToast({ message, buttons }); } // TODO: Add this as a reusable core function - to be able to open any settings tab. openSiteSettingsTab(tabId = '', sectionId = '') { const isWPPreviewMode = elementorCommon.elements.$body.hasClass('elementor-editor-preview'); if (isWPPreviewMode) { elementor.exitPreviewMode(); } const isInSettingsPanelActive = 'panel/global/menu' === elementor.documents.currentDocument.config.panel.default_route; if (isInSettingsPanelActive) { $e.run('panel/global/close'); return; } $e.run('editor/documents/switch', { id: elementor.config.kit_id, mode: 'autosave' }).then(() => { if (tabId) { $e.route('panel/global/' + tabId); } }) // TODO: Replace with a standard routing solution once one is available .then(() => { if (sectionId) { const sectionElement = jQuery('.elementor-control-' + sectionId); if (sectionElement.length) { sectionElement.trigger('click'); } } }); } } module.exports = WoocommerceModule; /***/ }, /***/ "react" /*!************************!*\ !*** external "React" ***! \************************/ (module) { "use strict"; module.exports = React; /***/ }, /***/ "@wordpress/i18n" /*!**************************!*\ !*** external "wp.i18n" ***! \**************************/ (module) { "use strict"; module.exports = wp.i18n; /***/ }, /***/ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js" /*!***********************************************************************!*\ !*** ../node_modules/@babel/runtime/helpers/interopRequireDefault.js ***! \***********************************************************************/ (module) { function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; } module.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }, /***/ "../node_modules/core-js/internals/a-callable.js" /*!*******************************************************!*\ !*** ../node_modules/core-js/internals/a-callable.js ***! \*******************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var isCallable = __webpack_require__(/*! ../internals/is-callable */ "../node_modules/core-js/internals/is-callable.js"); var tryToString = __webpack_require__(/*! ../internals/try-to-string */ "../node_modules/core-js/internals/try-to-string.js"); var $TypeError = TypeError; // `Assert: IsCallable(argument) is true` module.exports = function (argument) { if (isCallable(argument)) return argument; throw new $TypeError(tryToString(argument) + ' is not a function'); }; /***/ }, /***/ "../node_modules/core-js/internals/add-to-unscopables.js" /*!***************************************************************!*\ !*** ../node_modules/core-js/internals/add-to-unscopables.js ***! \***************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "../node_modules/core-js/internals/well-known-symbol.js"); var create = __webpack_require__(/*! ../internals/object-create */ "../node_modules/core-js/internals/object-create.js"); var defineProperty = (__webpack_require__(/*! ../internals/object-define-property */ "../node_modules/core-js/internals/object-define-property.js").f); var UNSCOPABLES = wellKnownSymbol('unscopables'); var ArrayPrototype = Array.prototype; // Array.prototype[@@unscopables] // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables if (ArrayPrototype[UNSCOPABLES] === undefined) { defineProperty(ArrayPrototype, UNSCOPABLES, { configurable: true, value: create(null) }); } // add a key to Array.prototype[@@unscopables] module.exports = function (key) { ArrayPrototype[UNSCOPABLES][key] = true; }; /***/ }, /***/ "../node_modules/core-js/internals/an-instance.js" /*!********************************************************!*\ !*** ../node_modules/core-js/internals/an-instance.js ***! \********************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var isPrototypeOf = __webpack_require__(/*! ../internals/object-is-prototype-of */ "../node_modules/core-js/internals/object-is-prototype-of.js"); var $TypeError = TypeError; module.exports = function (it, Prototype) { if (isPrototypeOf(Prototype, it)) return it; throw new $TypeError('Incorrect invocation'); }; /***/ }, /***/ "../node_modules/core-js/internals/an-object.js" /*!******************************************************!*\ !*** ../node_modules/core-js/internals/an-object.js ***! \******************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var isObject = __webpack_require__(/*! ../internals/is-object */ "../node_modules/core-js/internals/is-object.js"); var $String = String; var $TypeError = TypeError; // `Assert: Type(argument) is Object` module.exports = function (argument) { if (isObject(argument)) return argument; throw new $TypeError($String(argument) + ' is not an object'); }; /***/ }, /***/ "../node_modules/core-js/internals/array-includes.js" /*!***********************************************************!*\ !*** ../node_modules/core-js/internals/array-includes.js ***! \***********************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ "../node_modules/core-js/internals/to-indexed-object.js"); var toAbsoluteIndex = __webpack_require__(/*! ../internals/to-absolute-index */ "../node_modules/core-js/internals/to-absolute-index.js"); var lengthOfArrayLike = __webpack_require__(/*! ../internals/length-of-array-like */ "../node_modules/core-js/internals/length-of-array-like.js"); // `Array.prototype.{ indexOf, includes }` methods implementation var createMethod = function (IS_INCLUDES) { return function ($this, el, fromIndex) { var O = toIndexedObject($this); var length = lengthOfArrayLike(O); if (length === 0) return !IS_INCLUDES && -1; var index = toAbsoluteIndex(fromIndex, length); var value; // Array#includes uses SameValueZero equality algorithm // eslint-disable-next-line no-self-compare -- NaN check if (IS_INCLUDES && el !== el) while (length > index) { value = O[index++]; // eslint-disable-next-line no-self-compare -- NaN check if (value !== value) return true; // Array#indexOf ignores holes, Array#includes - not } else for (;length > index; index++) { if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0; } return !IS_INCLUDES && -1; }; }; module.exports = { // `Array.prototype.includes` method // https://tc39.es/ecma262/#sec-array.prototype.includes includes: createMethod(true), // `Array.prototype.indexOf` method // https://tc39.es/ecma262/#sec-array.prototype.indexof indexOf: createMethod(false) }; /***/ }, /***/ "../node_modules/core-js/internals/array-set-length.js" /*!*************************************************************!*\ !*** ../node_modules/core-js/internals/array-set-length.js ***! \*************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "../node_modules/core-js/internals/descriptors.js"); var isArray = __webpack_require__(/*! ../internals/is-array */ "../node_modules/core-js/internals/is-array.js"); var $TypeError = TypeError; // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; // Safari < 13 does not throw an error in this case var SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () { // makes no sense without proper strict mode support if (this !== undefined) return true; try { // eslint-disable-next-line es/no-object-defineproperty -- safe Object.defineProperty([], 'length', { writable: false }).length = 1; } catch (error) { return error instanceof TypeError; } }(); module.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) { if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) { throw new $TypeError('Cannot set read only .length'); } return O.length = length; } : function (O, length) { return O.length = length; }; /***/ }, /***/ "../node_modules/core-js/internals/array-slice.js" /*!********************************************************!*\ !*** ../node_modules/core-js/internals/array-slice.js ***! \********************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "../node_modules/core-js/internals/function-uncurry-this.js"); module.exports = uncurryThis([].slice); /***/ }, /***/ "../node_modules/core-js/internals/call-with-safe-iteration-closing.js" /*!*****************************************************************************!*\ !*** ../node_modules/core-js/internals/call-with-safe-iteration-closing.js ***! \*****************************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var anObject = __webpack_require__(/*! ../internals/an-object */ "../node_modules/core-js/internals/an-object.js"); var iteratorClose = __webpack_require__(/*! ../internals/iterator-close */ "../node_modules/core-js/internals/iterator-close.js"); // call something on iterator step with safe closing on error module.exports = function (iterator, fn, value, ENTRIES) { try { return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value); } catch (error) { iteratorClose(iterator, 'throw', error); } }; /***/ }, /***/ "../node_modules/core-js/internals/classof-raw.js" /*!********************************************************!*\ !*** ../node_modules/core-js/internals/classof-raw.js ***! \********************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "../node_modules/core-js/internals/function-uncurry-this.js"); var toString = uncurryThis({}.toString); var stringSlice = uncurryThis(''.slice); module.exports = function (it) { return stringSlice(toString(it), 8, -1); }; /***/ }, /***/ "../node_modules/core-js/internals/classof.js" /*!****************************************************!*\ !*** ../node_modules/core-js/internals/classof.js ***! \****************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var TO_STRING_TAG_SUPPORT = __webpack_require__(/*! ../internals/to-string-tag-support */ "../node_modules/core-js/internals/to-string-tag-support.js"); var isCallable = __webpack_require__(/*! ../internals/is-callable */ "../node_modules/core-js/internals/is-callable.js"); var classofRaw = __webpack_require__(/*! ../internals/classof-raw */ "../node_modules/core-js/internals/classof-raw.js"); var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "../node_modules/core-js/internals/well-known-symbol.js"); var TO_STRING_TAG = wellKnownSymbol('toStringTag'); var $Object = Object; // ES3 wrong here var CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) === 'Arguments'; // fallback for IE11 Script Access Denied error var tryGet = function (it, key) { try { return it[key]; } catch (error) { /* empty */ } }; // getting tag from ES6+ `Object.prototype.toString` module.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) { var O, tag, result; return it === undefined ? 'Undefined' : it === null ? 'Null' // @@toStringTag case : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag // builtinTag case : CORRECT_ARGUMENTS ? classofRaw(O) // ES3 arguments fallback : (result = classofRaw(O)) === 'Object' && isCallable(O.callee) ? 'Arguments' : result; }; /***/ }, /***/ "../node_modules/core-js/internals/copy-constructor-properties.js" /*!************************************************************************!*\ !*** ../node_modules/core-js/internals/copy-constructor-properties.js ***! \************************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var hasOwn = __webpack_require__(/*! ../internals/has-own-property */ "../node_modules/core-js/internals/has-own-property.js"); var ownKeys = __webpack_require__(/*! ../internals/own-keys */ "../node_modules/core-js/internals/own-keys.js"); var getOwnPropertyDescriptorModule = __webpack_require__(/*! ../internals/object-get-own-property-descriptor */ "../node_modules/core-js/internals/object-get-own-property-descriptor.js"); var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ "../node_modules/core-js/internals/object-define-property.js"); module.exports = function (target, source, exceptions) { var keys = ownKeys(source); var defineProperty = definePropertyModule.f; var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; for (var i = 0; i < keys.length; i++) { var key = keys[i]; if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) { defineProperty(target, key, getOwnPropertyDescriptor(source, key)); } } }; /***/ }, /***/ "../node_modules/core-js/internals/correct-prototype-getter.js" /*!*********************************************************************!*\ !*** ../node_modules/core-js/internals/correct-prototype-getter.js ***! \*********************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var fails = __webpack_require__(/*! ../internals/fails */ "../node_modules/core-js/internals/fails.js"); module.exports = !fails(function () { function F() { /* empty */ } F.prototype.constructor = null; // eslint-disable-next-line es/no-object-getprototypeof -- required for testing return Object.getPrototypeOf(new F()) !== F.prototype; }); /***/ }, /***/ "../node_modules/core-js/internals/create-iter-result-object.js" /*!**********************************************************************!*\ !*** ../node_modules/core-js/internals/create-iter-result-object.js ***! \**********************************************************************/ (module) { "use strict"; // `CreateIterResultObject` abstract operation // https://tc39.es/ecma262/#sec-createiterresultobject module.exports = function (value, done) { return { value: value, done: done }; }; /***/ }, /***/ "../node_modules/core-js/internals/create-non-enumerable-property.js" /*!***************************************************************************!*\ !*** ../node_modules/core-js/internals/create-non-enumerable-property.js ***! \***************************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "../node_modules/core-js/internals/descriptors.js"); var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ "../node_modules/core-js/internals/object-define-property.js"); var createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ "../node_modules/core-js/internals/create-property-descriptor.js"); module.exports = DESCRIPTORS ? function (object, key, value) { return definePropertyModule.f(object, key, createPropertyDescriptor(1, value)); } : function (object, key, value) { object[key] = value; return object; }; /***/ }, /***/ "../node_modules/core-js/internals/create-property-descriptor.js" /*!***********************************************************************!*\ !*** ../node_modules/core-js/internals/create-property-descriptor.js ***! \***********************************************************************/ (module) { "use strict"; module.exports = function (bitmap, value) { return { enumerable: !(bitmap & 1), configurable: !(bitmap & 2), writable: !(bitmap & 4), value: value }; }; /***/ }, /***/ "../node_modules/core-js/internals/create-property.js" /*!************************************************************!*\ !*** ../node_modules/core-js/internals/create-property.js ***! \************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "../node_modules/core-js/internals/descriptors.js"); var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ "../node_modules/core-js/internals/object-define-property.js"); var createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ "../node_modules/core-js/internals/create-property-descriptor.js"); module.exports = function (object, key, value) { if (DESCRIPTORS) definePropertyModule.f(object, key, createPropertyDescriptor(0, value)); else object[key] = value; }; /***/ }, /***/ "../node_modules/core-js/internals/define-built-in-accessor.js" /*!*********************************************************************!*\ !*** ../node_modules/core-js/internals/define-built-in-accessor.js ***! \*********************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var makeBuiltIn = __webpack_require__(/*! ../internals/make-built-in */ "../node_modules/core-js/internals/make-built-in.js"); var defineProperty = __webpack_require__(/*! ../internals/object-define-property */ "../node_modules/core-js/internals/object-define-property.js"); module.exports = function (target, name, descriptor) { if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true }); if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true }); return defineProperty.f(target, name, descriptor); }; /***/ }, /***/ "../node_modules/core-js/internals/define-built-in.js" /*!************************************************************!*\ !*** ../node_modules/core-js/internals/define-built-in.js ***! \************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var isCallable = __webpack_require__(/*! ../internals/is-callable */ "../node_modules/core-js/internals/is-callable.js"); var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ "../node_modules/core-js/internals/object-define-property.js"); var makeBuiltIn = __webpack_require__(/*! ../internals/make-built-in */ "../node_modules/core-js/internals/make-built-in.js"); var defineGlobalProperty = __webpack_require__(/*! ../internals/define-global-property */ "../node_modules/core-js/internals/define-global-property.js"); module.exports = function (O, key, value, options) { if (!options) options = {}; var simple = options.enumerable; var name = options.name !== undefined ? options.name : key; if (isCallable(value)) makeBuiltIn(value, name, options); if (options.global) { if (simple) O[key] = value; else defineGlobalProperty(key, value); } else { try { if (!options.unsafe) delete O[key]; else if (O[key]) simple = true; } catch (error) { /* empty */ } if (simple) O[key] = value; else definePropertyModule.f(O, key, { value: value, enumerable: false, configurable: !options.nonConfigurable, writable: !options.nonWritable }); } return O; }; /***/ }, /***/ "../node_modules/core-js/internals/define-built-ins.js" /*!*************************************************************!*\ !*** ../node_modules/core-js/internals/define-built-ins.js ***! \*************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var defineBuiltIn = __webpack_require__(/*! ../internals/define-built-in */ "../node_modules/core-js/internals/define-built-in.js"); module.exports = function (target, src, options) { for (var key in src) defineBuiltIn(target, key, src[key], options); return target; }; /***/ }, /***/ "../node_modules/core-js/internals/define-global-property.js" /*!*******************************************************************!*\ !*** ../node_modules/core-js/internals/define-global-property.js ***! \*******************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var globalThis = __webpack_require__(/*! ../internals/global-this */ "../node_modules/core-js/internals/global-this.js"); // eslint-disable-next-line es/no-object-defineproperty -- safe var defineProperty = Object.defineProperty; module.exports = function (key, value) { try { defineProperty(globalThis, key, { value: value, configurable: true, writable: true }); } catch (error) { globalThis[key] = value; } return value; }; /***/ }, /***/ "../node_modules/core-js/internals/descriptors.js" /*!********************************************************!*\ !*** ../node_modules/core-js/internals/descriptors.js ***! \********************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var fails = __webpack_require__(/*! ../internals/fails */ "../node_modules/core-js/internals/fails.js"); // Detect IE8's incomplete defineProperty implementation module.exports = !fails(function () { // eslint-disable-next-line es/no-object-defineproperty -- required for testing return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7; }); /***/ }, /***/ "../node_modules/core-js/internals/document-create-element.js" /*!********************************************************************!*\ !*** ../node_modules/core-js/internals/document-create-element.js ***! \********************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var globalThis = __webpack_require__(/*! ../internals/global-this */ "../node_modules/core-js/internals/global-this.js"); var isObject = __webpack_require__(/*! ../internals/is-object */ "../node_modules/core-js/internals/is-object.js"); var document = globalThis.document; // typeof document.createElement is 'object' in old IE var EXISTS = isObject(document) && isObject(document.createElement); module.exports = function (it) { return EXISTS ? document.createElement(it) : {}; }; /***/ }, /***/ "../node_modules/core-js/internals/does-not-exceed-safe-integer.js" /*!*************************************************************************!*\ !*** ../node_modules/core-js/internals/does-not-exceed-safe-integer.js ***! \*************************************************************************/ (module) { "use strict"; var $TypeError = TypeError; var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991 module.exports = function (it) { if (it > MAX_SAFE_INTEGER) throw new $TypeError('Maximum allowed index exceeded'); return it; }; /***/ }, /***/ "../node_modules/core-js/internals/enum-bug-keys.js" /*!**********************************************************!*\ !*** ../node_modules/core-js/internals/enum-bug-keys.js ***! \**********************************************************/ (module) { "use strict"; // IE8- don't enum bug keys module.exports = [ 'constructor', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'toLocaleString', 'toString', 'valueOf' ]; /***/ }, /***/ "../node_modules/core-js/internals/environment-user-agent.js" /*!*******************************************************************!*\ !*** ../node_modules/core-js/internals/environment-user-agent.js ***! \*******************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var globalThis = __webpack_require__(/*! ../internals/global-this */ "../node_modules/core-js/internals/global-this.js"); var navigator = globalThis.navigator; var userAgent = navigator && navigator.userAgent; module.exports = userAgent ? String(userAgent) : ''; /***/ }, /***/ "../node_modules/core-js/internals/environment-v8-version.js" /*!*******************************************************************!*\ !*** ../node_modules/core-js/internals/environment-v8-version.js ***! \*******************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var globalThis = __webpack_require__(/*! ../internals/global-this */ "../node_modules/core-js/internals/global-this.js"); var userAgent = __webpack_require__(/*! ../internals/environment-user-agent */ "../node_modules/core-js/internals/environment-user-agent.js"); var process = globalThis.process; var Deno = globalThis.Deno; var versions = process && process.versions || Deno && Deno.version; var v8 = versions && versions.v8; var match, version; if (v8) { match = v8.split('.'); // in old Chrome, versions of V8 isn't V8 = Chrome / 10 // but their correct versions are not interesting for us version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]); } // BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0` // so check `userAgent` even if `.v8` exists, but 0 if (!version && userAgent) { match = userAgent.match(/Edge\/(\d+)/); if (!match || match[1] >= 74) { match = userAgent.match(/Chrome\/(\d+)/); if (match) version = +match[1]; } } module.exports = version; /***/ }, /***/ "../node_modules/core-js/internals/export.js" /*!***************************************************!*\ !*** ../node_modules/core-js/internals/export.js ***! \***************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var globalThis = __webpack_require__(/*! ../internals/global-this */ "../node_modules/core-js/internals/global-this.js"); var getOwnPropertyDescriptor = (__webpack_require__(/*! ../internals/object-get-own-property-descriptor */ "../node_modules/core-js/internals/object-get-own-property-descriptor.js").f); var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ "../node_modules/core-js/internals/create-non-enumerable-property.js"); var defineBuiltIn = __webpack_require__(/*! ../internals/define-built-in */ "../node_modules/core-js/internals/define-built-in.js"); var defineGlobalProperty = __webpack_require__(/*! ../internals/define-global-property */ "../node_modules/core-js/internals/define-global-property.js"); var copyConstructorProperties = __webpack_require__(/*! ../internals/copy-constructor-properties */ "../node_modules/core-js/internals/copy-constructor-properties.js"); var isForced = __webpack_require__(/*! ../internals/is-forced */ "../node_modules/core-js/internals/is-forced.js"); /* options.target - name of the target object options.global - target is the global object options.stat - export as static methods of target options.proto - export as prototype methods of target options.real - real prototype method for the `pure` version options.forced - export even if the native feature is available options.bind - bind methods to the target, required for the `pure` version options.wrap - wrap constructors to preventing global pollution, required for the `pure` version options.unsafe - use the simple assignment of property instead of delete + defineProperty options.sham - add a flag to not completely full polyfills options.enumerable - export as enumerable property options.dontCallGetSet - prevent calling a getter on target options.name - the .name of the function if it does not match the key */ module.exports = function (options, source) { var TARGET = options.target; var GLOBAL = options.global; var STATIC = options.stat; var FORCED, target, key, targetProperty, sourceProperty, descriptor; if (GLOBAL) { target = globalThis; } else if (STATIC) { target = globalThis[TARGET] || defineGlobalProperty(TARGET, {}); } else { target = globalThis[TARGET] && globalThis[TARGET].prototype; } if (target) for (key in source) { sourceProperty = source[key]; if (options.dontCallGetSet) { descriptor = getOwnPropertyDescriptor(target, key); targetProperty = descriptor && descriptor.value; } else targetProperty = target[key]; FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); // contained in target if (!FORCED && targetProperty !== undefined) { if (typeof sourceProperty == typeof targetProperty) continue; copyConstructorProperties(sourceProperty, targetProperty); } // add a flag to not completely full polyfills if (options.sham || (targetProperty && targetProperty.sham)) { createNonEnumerableProperty(sourceProperty, 'sham', true); } defineBuiltIn(target, key, sourceProperty, options); } }; /***/ }, /***/ "../node_modules/core-js/internals/fails.js" /*!**************************************************!*\ !*** ../node_modules/core-js/internals/fails.js ***! \**************************************************/ (module) { "use strict"; module.exports = function (exec) { try { return !!exec(); } catch (error) { return true; } }; /***/ }, /***/ "../node_modules/core-js/internals/function-apply.js" /*!***********************************************************!*\ !*** ../node_modules/core-js/internals/function-apply.js ***! \***********************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var NATIVE_BIND = __webpack_require__(/*! ../internals/function-bind-native */ "../node_modules/core-js/internals/function-bind-native.js"); var FunctionPrototype = Function.prototype; var apply = FunctionPrototype.apply; var call = FunctionPrototype.call; // eslint-disable-next-line es/no-function-prototype-bind, es/no-reflect -- safe module.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () { return call.apply(apply, arguments); }); /***/ }, /***/ "../node_modules/core-js/internals/function-bind-context.js" /*!******************************************************************!*\ !*** ../node_modules/core-js/internals/function-bind-context.js ***! \******************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this-clause */ "../node_modules/core-js/internals/function-uncurry-this-clause.js"); var aCallable = __webpack_require__(/*! ../internals/a-callable */ "../node_modules/core-js/internals/a-callable.js"); var NATIVE_BIND = __webpack_require__(/*! ../internals/function-bind-native */ "../node_modules/core-js/internals/function-bind-native.js"); var bind = uncurryThis(uncurryThis.bind); // optional / simple context binding module.exports = function (fn, that) { aCallable(fn); return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) { return fn.apply(that, arguments); }; }; /***/ }, /***/ "../node_modules/core-js/internals/function-bind-native.js" /*!*****************************************************************!*\ !*** ../node_modules/core-js/internals/function-bind-native.js ***! \*****************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var fails = __webpack_require__(/*! ../internals/fails */ "../node_modules/core-js/internals/fails.js"); module.exports = !fails(function () { // eslint-disable-next-line es/no-function-prototype-bind -- safe var test = function () { /* empty */ }.bind(); // eslint-disable-next-line no-prototype-builtins -- safe return typeof test != 'function' || test.hasOwnProperty('prototype'); }); /***/ }, /***/ "../node_modules/core-js/internals/function-call.js" /*!**********************************************************!*\ !*** ../node_modules/core-js/internals/function-call.js ***! \**********************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var NATIVE_BIND = __webpack_require__(/*! ../internals/function-bind-native */ "../node_modules/core-js/internals/function-bind-native.js"); var call = Function.prototype.call; // eslint-disable-next-line es/no-function-prototype-bind -- safe module.exports = NATIVE_BIND ? call.bind(call) : function () { return call.apply(call, arguments); }; /***/ }, /***/ "../node_modules/core-js/internals/function-name.js" /*!**********************************************************!*\ !*** ../node_modules/core-js/internals/function-name.js ***! \**********************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "../node_modules/core-js/internals/descriptors.js"); var hasOwn = __webpack_require__(/*! ../internals/has-own-property */ "../node_modules/core-js/internals/has-own-property.js"); var FunctionPrototype = Function.prototype; // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe var getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor; var EXISTS = hasOwn(FunctionPrototype, 'name'); // additional protection from minified / mangled / dropped function names var PROPER = EXISTS && function something() { /* empty */ }.name === 'something'; var CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable)); module.exports = { EXISTS: EXISTS, PROPER: PROPER, CONFIGURABLE: CONFIGURABLE }; /***/ }, /***/ "../node_modules/core-js/internals/function-uncurry-this-clause.js" /*!*************************************************************************!*\ !*** ../node_modules/core-js/internals/function-uncurry-this-clause.js ***! \*************************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var classofRaw = __webpack_require__(/*! ../internals/classof-raw */ "../node_modules/core-js/internals/classof-raw.js"); var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "../node_modules/core-js/internals/function-uncurry-this.js"); module.exports = function (fn) { // Nashorn bug: // https://github.com/zloirock/core-js/issues/1128 // https://github.com/zloirock/core-js/issues/1130 if (classofRaw(fn) === 'Function') return uncurryThis(fn); }; /***/ }, /***/ "../node_modules/core-js/internals/function-uncurry-this.js" /*!******************************************************************!*\ !*** ../node_modules/core-js/internals/function-uncurry-this.js ***! \******************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var NATIVE_BIND = __webpack_require__(/*! ../internals/function-bind-native */ "../node_modules/core-js/internals/function-bind-native.js"); var FunctionPrototype = Function.prototype; var call = FunctionPrototype.call; // eslint-disable-next-line es/no-function-prototype-bind -- safe var uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call); module.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) { return function () { return call.apply(fn, arguments); }; }; /***/ }, /***/ "../node_modules/core-js/internals/get-built-in.js" /*!*********************************************************!*\ !*** ../node_modules/core-js/internals/get-built-in.js ***! \*********************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var globalThis = __webpack_require__(/*! ../internals/global-this */ "../node_modules/core-js/internals/global-this.js"); var isCallable = __webpack_require__(/*! ../internals/is-callable */ "../node_modules/core-js/internals/is-callable.js"); var aFunction = function (argument) { return isCallable(argument) ? argument : undefined; }; module.exports = function (namespace, method) { return arguments.length < 2 ? aFunction(globalThis[namespace]) : globalThis[namespace] && globalThis[namespace][method]; }; /***/ }, /***/ "../node_modules/core-js/internals/get-iterator-direct.js" /*!****************************************************************!*\ !*** ../node_modules/core-js/internals/get-iterator-direct.js ***! \****************************************************************/ (module) { "use strict"; // `GetIteratorDirect(obj)` abstract operation // https://tc39.es/ecma262/#sec-getiteratordirect module.exports = function (obj) { return { iterator: obj, next: obj.next, done: false }; }; /***/ }, /***/ "../node_modules/core-js/internals/get-iterator-method.js" /*!****************************************************************!*\ !*** ../node_modules/core-js/internals/get-iterator-method.js ***! \****************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var classof = __webpack_require__(/*! ../internals/classof */ "../node_modules/core-js/internals/classof.js"); var getMethod = __webpack_require__(/*! ../internals/get-method */ "../node_modules/core-js/internals/get-method.js"); var isNullOrUndefined = __webpack_require__(/*! ../internals/is-null-or-undefined */ "../node_modules/core-js/internals/is-null-or-undefined.js"); var Iterators = __webpack_require__(/*! ../internals/iterators */ "../node_modules/core-js/internals/iterators.js"); var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "../node_modules/core-js/internals/well-known-symbol.js"); var ITERATOR = wellKnownSymbol('iterator'); module.exports = function (it) { if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR) || getMethod(it, '@@iterator') || Iterators[classof(it)]; }; /***/ }, /***/ "../node_modules/core-js/internals/get-iterator.js" /*!*********************************************************!*\ !*** ../node_modules/core-js/internals/get-iterator.js ***! \*********************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var call = __webpack_require__(/*! ../internals/function-call */ "../node_modules/core-js/internals/function-call.js"); var aCallable = __webpack_require__(/*! ../internals/a-callable */ "../node_modules/core-js/internals/a-callable.js"); var anObject = __webpack_require__(/*! ../internals/an-object */ "../node_modules/core-js/internals/an-object.js"); var tryToString = __webpack_require__(/*! ../internals/try-to-string */ "../node_modules/core-js/internals/try-to-string.js"); var getIteratorMethod = __webpack_require__(/*! ../internals/get-iterator-method */ "../node_modules/core-js/internals/get-iterator-method.js"); var $TypeError = TypeError; module.exports = function (argument, usingIterator) { var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator; if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument)); throw new $TypeError(tryToString(argument) + ' is not iterable'); }; /***/ }, /***/ "../node_modules/core-js/internals/get-method.js" /*!*******************************************************!*\ !*** ../node_modules/core-js/internals/get-method.js ***! \*******************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var aCallable = __webpack_require__(/*! ../internals/a-callable */ "../node_modules/core-js/internals/a-callable.js"); var isNullOrUndefined = __webpack_require__(/*! ../internals/is-null-or-undefined */ "../node_modules/core-js/internals/is-null-or-undefined.js"); // `GetMethod` abstract operation // https://tc39.es/ecma262/#sec-getmethod module.exports = function (V, P) { var func = V[P]; return isNullOrUndefined(func) ? undefined : aCallable(func); }; /***/ }, /***/ "../node_modules/core-js/internals/global-this.js" /*!********************************************************!*\ !*** ../node_modules/core-js/internals/global-this.js ***! \********************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var check = function (it) { return it && it.Math === Math && it; }; // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 module.exports = // eslint-disable-next-line es/no-global-this -- safe check(typeof globalThis == 'object' && globalThis) || check(typeof window == 'object' && window) || // eslint-disable-next-line no-restricted-globals -- safe check(typeof self == 'object' && self) || check(typeof __webpack_require__.g == 'object' && __webpack_require__.g) || check(typeof this == 'object' && this) || // eslint-disable-next-line no-new-func -- fallback (function () { return this; })() || Function('return this')(); /***/ }, /***/ "../node_modules/core-js/internals/has-own-property.js" /*!*************************************************************!*\ !*** ../node_modules/core-js/internals/has-own-property.js ***! \*************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "../node_modules/core-js/internals/function-uncurry-this.js"); var toObject = __webpack_require__(/*! ../internals/to-object */ "../node_modules/core-js/internals/to-object.js"); var hasOwnProperty = uncurryThis({}.hasOwnProperty); // `HasOwnProperty` abstract operation // https://tc39.es/ecma262/#sec-hasownproperty // eslint-disable-next-line es/no-object-hasown -- safe module.exports = Object.hasOwn || function hasOwn(it, key) { return hasOwnProperty(toObject(it), key); }; /***/ }, /***/ "../node_modules/core-js/internals/hidden-keys.js" /*!********************************************************!*\ !*** ../node_modules/core-js/internals/hidden-keys.js ***! \********************************************************/ (module) { "use strict"; module.exports = {}; /***/ }, /***/ "../node_modules/core-js/internals/html.js" /*!*************************************************!*\ !*** ../node_modules/core-js/internals/html.js ***! \*************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ "../node_modules/core-js/internals/get-built-in.js"); module.exports = getBuiltIn('document', 'documentElement'); /***/ }, /***/ "../node_modules/core-js/internals/ie8-dom-define.js" /*!***********************************************************!*\ !*** ../node_modules/core-js/internals/ie8-dom-define.js ***! \***********************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "../node_modules/core-js/internals/descriptors.js"); var fails = __webpack_require__(/*! ../internals/fails */ "../node_modules/core-js/internals/fails.js"); var createElement = __webpack_require__(/*! ../internals/document-create-element */ "../node_modules/core-js/internals/document-create-element.js"); // Thanks to IE8 for its funny defineProperty module.exports = !DESCRIPTORS && !fails(function () { // eslint-disable-next-line es/no-object-defineproperty -- required for testing return Object.defineProperty(createElement('div'), 'a', { get: function () { return 7; } }).a !== 7; }); /***/ }, /***/ "../node_modules/core-js/internals/indexed-object.js" /*!***********************************************************!*\ !*** ../node_modules/core-js/internals/indexed-object.js ***! \***********************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "../node_modules/core-js/internals/function-uncurry-this.js"); var fails = __webpack_require__(/*! ../internals/fails */ "../node_modules/core-js/internals/fails.js"); var classof = __webpack_require__(/*! ../internals/classof-raw */ "../node_modules/core-js/internals/classof-raw.js"); var $Object = Object; var split = uncurryThis(''.split); // fallback for non-array-like ES3 and non-enumerable old V8 strings module.exports = fails(function () { // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 // eslint-disable-next-line no-prototype-builtins -- safe return !$Object('z').propertyIsEnumerable(0); }) ? function (it) { return classof(it) === 'String' ? split(it, '') : $Object(it); } : $Object; /***/ }, /***/ "../node_modules/core-js/internals/inspect-source.js" /*!***********************************************************!*\ !*** ../node_modules/core-js/internals/inspect-source.js ***! \***********************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "../node_modules/core-js/internals/function-uncurry-this.js"); var isCallable = __webpack_require__(/*! ../internals/is-callable */ "../node_modules/core-js/internals/is-callable.js"); var store = __webpack_require__(/*! ../internals/shared-store */ "../node_modules/core-js/internals/shared-store.js"); var functionToString = uncurryThis(Function.toString); // this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper if (!isCallable(store.inspectSource)) { store.inspectSource = function (it) { return functionToString(it); }; } module.exports = store.inspectSource; /***/ }, /***/ "../node_modules/core-js/internals/internal-state.js" /*!***********************************************************!*\ !*** ../node_modules/core-js/internals/internal-state.js ***! \***********************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var NATIVE_WEAK_MAP = __webpack_require__(/*! ../internals/weak-map-basic-detection */ "../node_modules/core-js/internals/weak-map-basic-detection.js"); var globalThis = __webpack_require__(/*! ../internals/global-this */ "../node_modules/core-js/internals/global-this.js"); var isObject = __webpack_require__(/*! ../internals/is-object */ "../node_modules/core-js/internals/is-object.js"); var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ "../node_modules/core-js/internals/create-non-enumerable-property.js"); var hasOwn = __webpack_require__(/*! ../internals/has-own-property */ "../node_modules/core-js/internals/has-own-property.js"); var shared = __webpack_require__(/*! ../internals/shared-store */ "../node_modules/core-js/internals/shared-store.js"); var sharedKey = __webpack_require__(/*! ../internals/shared-key */ "../node_modules/core-js/internals/shared-key.js"); var hiddenKeys = __webpack_require__(/*! ../internals/hidden-keys */ "../node_modules/core-js/internals/hidden-keys.js"); var OBJECT_ALREADY_INITIALIZED = 'Object already initialized'; var TypeError = globalThis.TypeError; var WeakMap = globalThis.WeakMap; var set, get, has; var enforce = function (it) { return has(it) ? get(it) : set(it, {}); }; var getterFor = function (TYPE) { return function (it) { var state; if (!isObject(it) || (state = get(it)).type !== TYPE) { throw new TypeError('Incompatible receiver, ' + TYPE + ' required'); } return state; }; }; if (NATIVE_WEAK_MAP || shared.state) { var store = shared.state || (shared.state = new WeakMap()); /* eslint-disable no-self-assign -- prototype methods protection */ store.get = store.get; store.has = store.has; store.set = store.set; /* eslint-enable no-self-assign -- prototype methods protection */ set = function (it, metadata) { if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED); metadata.facade = it; store.set(it, metadata); return metadata; }; get = function (it) { return store.get(it) || {}; }; has = function (it) { return store.has(it); }; } else { var STATE = sharedKey('state'); hiddenKeys[STATE] = true; set = function (it, metadata) { if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED); metadata.facade = it; createNonEnumerableProperty(it, STATE, metadata); return metadata; }; get = function (it) { return hasOwn(it, STATE) ? it[STATE] : {}; }; has = function (it) { return hasOwn(it, STATE); }; } module.exports = { set: set, get: get, has: has, enforce: enforce, getterFor: getterFor }; /***/ }, /***/ "../node_modules/core-js/internals/is-array-iterator-method.js" /*!*********************************************************************!*\ !*** ../node_modules/core-js/internals/is-array-iterator-method.js ***! \*********************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "../node_modules/core-js/internals/well-known-symbol.js"); var Iterators = __webpack_require__(/*! ../internals/iterators */ "../node_modules/core-js/internals/iterators.js"); var ITERATOR = wellKnownSymbol('iterator'); var ArrayPrototype = Array.prototype; // check on default Array iterator module.exports = function (it) { return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it); }; /***/ }, /***/ "../node_modules/core-js/internals/is-array.js" /*!*****************************************************!*\ !*** ../node_modules/core-js/internals/is-array.js ***! \*****************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var classof = __webpack_require__(/*! ../internals/classof-raw */ "../node_modules/core-js/internals/classof-raw.js"); // `IsArray` abstract operation // https://tc39.es/ecma262/#sec-isarray // eslint-disable-next-line es/no-array-isarray -- safe module.exports = Array.isArray || function isArray(argument) { return classof(argument) === 'Array'; }; /***/ }, /***/ "../node_modules/core-js/internals/is-callable.js" /*!********************************************************!*\ !*** ../node_modules/core-js/internals/is-callable.js ***! \********************************************************/ (module) { "use strict"; // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot var documentAll = typeof document == 'object' && document.all; // `IsCallable` abstract operation // https://tc39.es/ecma262/#sec-iscallable // eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing module.exports = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) { return typeof argument == 'function' || argument === documentAll; } : function (argument) { return typeof argument == 'function'; }; /***/ }, /***/ "../node_modules/core-js/internals/is-forced.js" /*!******************************************************!*\ !*** ../node_modules/core-js/internals/is-forced.js ***! \******************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var fails = __webpack_require__(/*! ../internals/fails */ "../node_modules/core-js/internals/fails.js"); var isCallable = __webpack_require__(/*! ../internals/is-callable */ "../node_modules/core-js/internals/is-callable.js"); var replacement = /#|\.prototype\./; var isForced = function (feature, detection) { var value = data[normalize(feature)]; return value === POLYFILL ? true : value === NATIVE ? false : isCallable(detection) ? fails(detection) : !!detection; }; var normalize = isForced.normalize = function (string) { return String(string).replace(replacement, '.').toLowerCase(); }; var data = isForced.data = {}; var NATIVE = isForced.NATIVE = 'N'; var POLYFILL = isForced.POLYFILL = 'P'; module.exports = isForced; /***/ }, /***/ "../node_modules/core-js/internals/is-null-or-undefined.js" /*!*****************************************************************!*\ !*** ../node_modules/core-js/internals/is-null-or-undefined.js ***! \*****************************************************************/ (module) { "use strict"; // we can't use just `it == null` since of `document.all` special case // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec module.exports = function (it) { return it === null || it === undefined; }; /***/ }, /***/ "../node_modules/core-js/internals/is-object.js" /*!******************************************************!*\ !*** ../node_modules/core-js/internals/is-object.js ***! \******************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var isCallable = __webpack_require__(/*! ../internals/is-callable */ "../node_modules/core-js/internals/is-callable.js"); module.exports = function (it) { return typeof it == 'object' ? it !== null : isCallable(it); }; /***/ }, /***/ "../node_modules/core-js/internals/is-pure.js" /*!****************************************************!*\ !*** ../node_modules/core-js/internals/is-pure.js ***! \****************************************************/ (module) { "use strict"; module.exports = false; /***/ }, /***/ "../node_modules/core-js/internals/is-raw-json.js" /*!********************************************************!*\ !*** ../node_modules/core-js/internals/is-raw-json.js ***! \********************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var isObject = __webpack_require__(/*! ../internals/is-object */ "../node_modules/core-js/internals/is-object.js"); var getInternalState = (__webpack_require__(/*! ../internals/internal-state */ "../node_modules/core-js/internals/internal-state.js").get); module.exports = function isRawJSON(O) { if (!isObject(O)) return false; var state = getInternalState(O); return !!state && state.type === 'RawJSON'; }; /***/ }, /***/ "../node_modules/core-js/internals/is-symbol.js" /*!******************************************************!*\ !*** ../node_modules/core-js/internals/is-symbol.js ***! \******************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ "../node_modules/core-js/internals/get-built-in.js"); var isCallable = __webpack_require__(/*! ../internals/is-callable */ "../node_modules/core-js/internals/is-callable.js"); var isPrototypeOf = __webpack_require__(/*! ../internals/object-is-prototype-of */ "../node_modules/core-js/internals/object-is-prototype-of.js"); var USE_SYMBOL_AS_UID = __webpack_require__(/*! ../internals/use-symbol-as-uid */ "../node_modules/core-js/internals/use-symbol-as-uid.js"); var $Object = Object; module.exports = USE_SYMBOL_AS_UID ? function (it) { return typeof it == 'symbol'; } : function (it) { var $Symbol = getBuiltIn('Symbol'); return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it)); }; /***/ }, /***/ "../node_modules/core-js/internals/iterate.js" /*!****************************************************!*\ !*** ../node_modules/core-js/internals/iterate.js ***! \****************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var bind = __webpack_require__(/*! ../internals/function-bind-context */ "../node_modules/core-js/internals/function-bind-context.js"); var call = __webpack_require__(/*! ../internals/function-call */ "../node_modules/core-js/internals/function-call.js"); var anObject = __webpack_require__(/*! ../internals/an-object */ "../node_modules/core-js/internals/an-object.js"); var tryToString = __webpack_require__(/*! ../internals/try-to-string */ "../node_modules/core-js/internals/try-to-string.js"); var isArrayIteratorMethod = __webpack_require__(/*! ../internals/is-array-iterator-method */ "../node_modules/core-js/internals/is-array-iterator-method.js"); var lengthOfArrayLike = __webpack_require__(/*! ../internals/length-of-array-like */ "../node_modules/core-js/internals/length-of-array-like.js"); var isPrototypeOf = __webpack_require__(/*! ../internals/object-is-prototype-of */ "../node_modules/core-js/internals/object-is-prototype-of.js"); var getIterator = __webpack_require__(/*! ../internals/get-iterator */ "../node_modules/core-js/internals/get-iterator.js"); var getIteratorMethod = __webpack_require__(/*! ../internals/get-iterator-method */ "../node_modules/core-js/internals/get-iterator-method.js"); var iteratorClose = __webpack_require__(/*! ../internals/iterator-close */ "../node_modules/core-js/internals/iterator-close.js"); var $TypeError = TypeError; var Result = function (stopped, result) { this.stopped = stopped; this.result = result; }; var ResultPrototype = Result.prototype; module.exports = function (iterable, unboundFunction, options) { var that = options && options.that; var AS_ENTRIES = !!(options && options.AS_ENTRIES); var IS_RECORD = !!(options && options.IS_RECORD); var IS_ITERATOR = !!(options && options.IS_ITERATOR); var INTERRUPTED = !!(options && options.INTERRUPTED); var fn = bind(unboundFunction, that); var iterator, iterFn, index, length, result, next, step; var stop = function (condition) { var $iterator = iterator; iterator = undefined; if ($iterator) iteratorClose($iterator, 'normal'); return new Result(true, condition); }; var callFn = function (value) { if (AS_ENTRIES) { anObject(value); return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]); } return INTERRUPTED ? fn(value, stop) : fn(value); }; if (IS_RECORD) { iterator = iterable.iterator; } else if (IS_ITERATOR) { iterator = iterable; } else { iterFn = getIteratorMethod(iterable); if (!iterFn) throw new $TypeError(tryToString(iterable) + ' is not iterable'); // optimisation for array iterators if (isArrayIteratorMethod(iterFn)) { for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) { result = callFn(iterable[index]); if (result && isPrototypeOf(ResultPrototype, result)) return result; } return new Result(false); } iterator = getIterator(iterable, iterFn); } next = IS_RECORD ? iterable.next : iterator.next; while (!(step = call(next, iterator)).done) { // `IteratorValue` errors should propagate without closing the iterator var value = step.value; try { result = callFn(value); } catch (error) { if (iterator) iteratorClose(iterator, 'throw', error); else throw error; } if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result; } return new Result(false); }; /***/ }, /***/ "../node_modules/core-js/internals/iterator-close-all.js" /*!***************************************************************!*\ !*** ../node_modules/core-js/internals/iterator-close-all.js ***! \***************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var iteratorClose = __webpack_require__(/*! ../internals/iterator-close */ "../node_modules/core-js/internals/iterator-close.js"); module.exports = function (iters, kind, value) { for (var i = iters.length - 1; i >= 0; i--) { if (iters[i] === undefined) continue; try { value = iteratorClose(iters[i].iterator, kind, value); } catch (error) { kind = 'throw'; value = error; } } if (kind === 'throw') throw value; return value; }; /***/ }, /***/ "../node_modules/core-js/internals/iterator-close.js" /*!***********************************************************!*\ !*** ../node_modules/core-js/internals/iterator-close.js ***! \***********************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var call = __webpack_require__(/*! ../internals/function-call */ "../node_modules/core-js/internals/function-call.js"); var anObject = __webpack_require__(/*! ../internals/an-object */ "../node_modules/core-js/internals/an-object.js"); var getMethod = __webpack_require__(/*! ../internals/get-method */ "../node_modules/core-js/internals/get-method.js"); module.exports = function (iterator, kind, value) { var innerResult, innerError; anObject(iterator); try { innerResult = getMethod(iterator, 'return'); if (!innerResult) { if (kind === 'throw') throw value; return value; } innerResult = call(innerResult, iterator); } catch (error) { innerError = true; innerResult = error; } if (kind === 'throw') throw value; if (innerError) throw innerResult; anObject(innerResult); return value; }; /***/ }, /***/ "../node_modules/core-js/internals/iterator-create-proxy.js" /*!******************************************************************!*\ !*** ../node_modules/core-js/internals/iterator-create-proxy.js ***! \******************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var call = __webpack_require__(/*! ../internals/function-call */ "../node_modules/core-js/internals/function-call.js"); var create = __webpack_require__(/*! ../internals/object-create */ "../node_modules/core-js/internals/object-create.js"); var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ "../node_modules/core-js/internals/create-non-enumerable-property.js"); var defineBuiltIns = __webpack_require__(/*! ../internals/define-built-ins */ "../node_modules/core-js/internals/define-built-ins.js"); var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "../node_modules/core-js/internals/well-known-symbol.js"); var InternalStateModule = __webpack_require__(/*! ../internals/internal-state */ "../node_modules/core-js/internals/internal-state.js"); var getMethod = __webpack_require__(/*! ../internals/get-method */ "../node_modules/core-js/internals/get-method.js"); var IteratorPrototype = (__webpack_require__(/*! ../internals/iterators-core */ "../node_modules/core-js/internals/iterators-core.js").IteratorPrototype); var createIterResultObject = __webpack_require__(/*! ../internals/create-iter-result-object */ "../node_modules/core-js/internals/create-iter-result-object.js"); var iteratorClose = __webpack_require__(/*! ../internals/iterator-close */ "../node_modules/core-js/internals/iterator-close.js"); var iteratorCloseAll = __webpack_require__(/*! ../internals/iterator-close-all */ "../node_modules/core-js/internals/iterator-close-all.js"); var TO_STRING_TAG = wellKnownSymbol('toStringTag'); var ITERATOR_HELPER = 'IteratorHelper'; var WRAP_FOR_VALID_ITERATOR = 'WrapForValidIterator'; var NORMAL = 'normal'; var THROW = 'throw'; var setInternalState = InternalStateModule.set; var createIteratorProxyPrototype = function (IS_ITERATOR) { var getInternalState = InternalStateModule.getterFor(IS_ITERATOR ? WRAP_FOR_VALID_ITERATOR : ITERATOR_HELPER); return defineBuiltIns(create(IteratorPrototype), { next: function next() { var state = getInternalState(this); // for simplification: // for `%WrapForValidIteratorPrototype%.next` or with `state.returnHandlerResult` our `nextHandler` returns `IterResultObject` // for `%IteratorHelperPrototype%.next` - just a value if (IS_ITERATOR) return state.nextHandler(); if (state.done) return createIterResultObject(undefined, true); try { var result = state.nextHandler(); return state.returnHandlerResult ? result : createIterResultObject(result, state.done); } catch (error) { state.done = true; throw error; } }, 'return': function () { var state = getInternalState(this); var iterator = state.iterator; var done = state.done; state.done = true; if (IS_ITERATOR) { var returnMethod = getMethod(iterator, 'return'); return returnMethod ? call(returnMethod, iterator) : createIterResultObject(undefined, true); } if (done) return createIterResultObject(undefined, true); if (state.inner) try { iteratorClose(state.inner.iterator, NORMAL); } catch (error) { return iteratorClose(iterator, THROW, error); } if (state.openIters) try { iteratorCloseAll(state.openIters, NORMAL); } catch (error) { if (iterator) return iteratorClose(iterator, THROW, error); throw error; } if (iterator) iteratorClose(iterator, NORMAL); return createIterResultObject(undefined, true); } }); }; var WrapForValidIteratorPrototype = createIteratorProxyPrototype(true); var IteratorHelperPrototype = createIteratorProxyPrototype(false); createNonEnumerableProperty(IteratorHelperPrototype, TO_STRING_TAG, 'Iterator Helper'); module.exports = function (nextHandler, IS_ITERATOR, RETURN_HANDLER_RESULT) { var IteratorProxy = function Iterator(record, state) { if (state) { state.iterator = record.iterator; state.next = record.next; } else state = record; state.type = IS_ITERATOR ? WRAP_FOR_VALID_ITERATOR : ITERATOR_HELPER; state.returnHandlerResult = !!RETURN_HANDLER_RESULT; state.nextHandler = nextHandler; state.counter = 0; state.done = false; setInternalState(this, state); }; IteratorProxy.prototype = IS_ITERATOR ? WrapForValidIteratorPrototype : IteratorHelperPrototype; return IteratorProxy; }; /***/ }, /***/ "../node_modules/core-js/internals/iterator-helper-throws-on-invalid-iterator.js" /*!***************************************************************************************!*\ !*** ../node_modules/core-js/internals/iterator-helper-throws-on-invalid-iterator.js ***! \***************************************************************************************/ (module) { "use strict"; // Should throw an error on invalid iterator // https://issues.chromium.org/issues/336839115 module.exports = function (methodName, argument) { // eslint-disable-next-line es/no-iterator -- required for testing var method = typeof Iterator == 'function' && Iterator.prototype[methodName]; if (method) try { method.call({ next: null }, argument).next(); } catch (error) { return true; } }; /***/ }, /***/ "../node_modules/core-js/internals/iterator-helper-without-closing-on-early-error.js" /*!*******************************************************************************************!*\ !*** ../node_modules/core-js/internals/iterator-helper-without-closing-on-early-error.js ***! \*******************************************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var globalThis = __webpack_require__(/*! ../internals/global-this */ "../node_modules/core-js/internals/global-this.js"); // https://github.com/tc39/ecma262/pull/3467 module.exports = function (METHOD_NAME, ExpectedError) { var Iterator = globalThis.Iterator; var IteratorPrototype = Iterator && Iterator.prototype; var method = IteratorPrototype && IteratorPrototype[METHOD_NAME]; var CLOSED = false; if (method) try { method.call({ next: function () { return { done: true }; }, 'return': function () { CLOSED = true; } }, -1); } catch (error) { // https://bugs.webkit.org/show_bug.cgi?id=291195 if (!(error instanceof ExpectedError)) CLOSED = false; } if (!CLOSED) return method; }; /***/ }, /***/ "../node_modules/core-js/internals/iterators-core.js" /*!***********************************************************!*\ !*** ../node_modules/core-js/internals/iterators-core.js ***! \***********************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var fails = __webpack_require__(/*! ../internals/fails */ "../node_modules/core-js/internals/fails.js"); var isCallable = __webpack_require__(/*! ../internals/is-callable */ "../node_modules/core-js/internals/is-callable.js"); var isObject = __webpack_require__(/*! ../internals/is-object */ "../node_modules/core-js/internals/is-object.js"); var create = __webpack_require__(/*! ../internals/object-create */ "../node_modules/core-js/internals/object-create.js"); var getPrototypeOf = __webpack_require__(/*! ../internals/object-get-prototype-of */ "../node_modules/core-js/internals/object-get-prototype-of.js"); var defineBuiltIn = __webpack_require__(/*! ../internals/define-built-in */ "../node_modules/core-js/internals/define-built-in.js"); var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "../node_modules/core-js/internals/well-known-symbol.js"); var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ "../node_modules/core-js/internals/is-pure.js"); var ITERATOR = wellKnownSymbol('iterator'); var BUGGY_SAFARI_ITERATORS = false; // `%IteratorPrototype%` object // https://tc39.es/ecma262/#sec-%iteratorprototype%-object var IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator; /* eslint-disable es/no-array-prototype-keys -- safe */ if ([].keys) { arrayIterator = [].keys(); // Safari 8 has buggy iterators w/o `next` if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true; else { PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator)); if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype; } } var NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () { var test = {}; // FF44- legacy iterators case return IteratorPrototype[ITERATOR].call(test) !== test; }); if (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {}; else if (IS_PURE) IteratorPrototype = create(IteratorPrototype); // `%IteratorPrototype%[@@iterator]()` method // https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator if (!isCallable(IteratorPrototype[ITERATOR])) { defineBuiltIn(IteratorPrototype, ITERATOR, function () { return this; }); } module.exports = { IteratorPrototype: IteratorPrototype, BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS }; /***/ }, /***/ "../node_modules/core-js/internals/iterators.js" /*!******************************************************!*\ !*** ../node_modules/core-js/internals/iterators.js ***! \******************************************************/ (module) { "use strict"; module.exports = {}; /***/ }, /***/ "../node_modules/core-js/internals/length-of-array-like.js" /*!*****************************************************************!*\ !*** ../node_modules/core-js/internals/length-of-array-like.js ***! \*****************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var toLength = __webpack_require__(/*! ../internals/to-length */ "../node_modules/core-js/internals/to-length.js"); // `LengthOfArrayLike` abstract operation // https://tc39.es/ecma262/#sec-lengthofarraylike module.exports = function (obj) { return toLength(obj.length); }; /***/ }, /***/ "../node_modules/core-js/internals/make-built-in.js" /*!**********************************************************!*\ !*** ../node_modules/core-js/internals/make-built-in.js ***! \**********************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "../node_modules/core-js/internals/function-uncurry-this.js"); var fails = __webpack_require__(/*! ../internals/fails */ "../node_modules/core-js/internals/fails.js"); var isCallable = __webpack_require__(/*! ../internals/is-callable */ "../node_modules/core-js/internals/is-callable.js"); var hasOwn = __webpack_require__(/*! ../internals/has-own-property */ "../node_modules/core-js/internals/has-own-property.js"); var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "../node_modules/core-js/internals/descriptors.js"); var CONFIGURABLE_FUNCTION_NAME = (__webpack_require__(/*! ../internals/function-name */ "../node_modules/core-js/internals/function-name.js").CONFIGURABLE); var inspectSource = __webpack_require__(/*! ../internals/inspect-source */ "../node_modules/core-js/internals/inspect-source.js"); var InternalStateModule = __webpack_require__(/*! ../internals/internal-state */ "../node_modules/core-js/internals/internal-state.js"); var enforceInternalState = InternalStateModule.enforce; var getInternalState = InternalStateModule.get; var $String = String; // eslint-disable-next-line es/no-object-defineproperty -- safe var defineProperty = Object.defineProperty; var stringSlice = uncurryThis(''.slice); var replace = uncurryThis(''.replace); var join = uncurryThis([].join); var CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () { return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8; }); var TEMPLATE = String(String).split('String'); var makeBuiltIn = module.exports = function (value, name, options) { if (stringSlice($String(name), 0, 7) === 'Symbol(') { name = '[' + replace($String(name), /^Symbol\(([^)]*)\).*$/, '$1') + ']'; } if (options && options.getter) name = 'get ' + name; if (options && options.setter) name = 'set ' + name; if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) { if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true }); else value.name = name; } if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) { defineProperty(value, 'length', { value: options.arity }); } try { if (options && hasOwn(options, 'constructor') && options.constructor) { if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false }); // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable } else if (value.prototype) value.prototype = undefined; } catch (error) { /* empty */ } var state = enforceInternalState(value); if (!hasOwn(state, 'source')) { state.source = join(TEMPLATE, typeof name == 'string' ? name : ''); } return value; }; // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative // eslint-disable-next-line no-extend-native -- required Function.prototype.toString = makeBuiltIn(function toString() { return isCallable(this) && getInternalState(this).source || inspectSource(this); }, 'toString'); /***/ }, /***/ "../node_modules/core-js/internals/math-trunc.js" /*!*******************************************************!*\ !*** ../node_modules/core-js/internals/math-trunc.js ***! \*******************************************************/ (module) { "use strict"; var ceil = Math.ceil; var floor = Math.floor; // `Math.trunc` method // https://tc39.es/ecma262/#sec-math.trunc // eslint-disable-next-line es/no-math-trunc -- safe module.exports = Math.trunc || function trunc(x) { var n = +x; return (n > 0 ? floor : ceil)(n); }; /***/ }, /***/ "../node_modules/core-js/internals/native-raw-json.js" /*!************************************************************!*\ !*** ../node_modules/core-js/internals/native-raw-json.js ***! \************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; /* eslint-disable es/no-json -- safe */ var fails = __webpack_require__(/*! ../internals/fails */ "../node_modules/core-js/internals/fails.js"); module.exports = !fails(function () { var unsafeInt = '9007199254740993'; // eslint-disable-next-line es/no-json-rawjson -- feature detection var raw = JSON.rawJSON(unsafeInt); // eslint-disable-next-line es/no-json-israwjson -- feature detection return !JSON.isRawJSON(raw) || JSON.stringify(raw) !== unsafeInt; }); /***/ }, /***/ "../node_modules/core-js/internals/object-create.js" /*!**********************************************************!*\ !*** ../node_modules/core-js/internals/object-create.js ***! \**********************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; /* global ActiveXObject -- old IE, WSH */ var anObject = __webpack_require__(/*! ../internals/an-object */ "../node_modules/core-js/internals/an-object.js"); var definePropertiesModule = __webpack_require__(/*! ../internals/object-define-properties */ "../node_modules/core-js/internals/object-define-properties.js"); var enumBugKeys = __webpack_require__(/*! ../internals/enum-bug-keys */ "../node_modules/core-js/internals/enum-bug-keys.js"); var hiddenKeys = __webpack_require__(/*! ../internals/hidden-keys */ "../node_modules/core-js/internals/hidden-keys.js"); var html = __webpack_require__(/*! ../internals/html */ "../node_modules/core-js/internals/html.js"); var documentCreateElement = __webpack_require__(/*! ../internals/document-create-element */ "../node_modules/core-js/internals/document-create-element.js"); var sharedKey = __webpack_require__(/*! ../internals/shared-key */ "../node_modules/core-js/internals/shared-key.js"); var GT = '>'; var LT = '<'; var PROTOTYPE = 'prototype'; var SCRIPT = 'script'; var IE_PROTO = sharedKey('IE_PROTO'); var EmptyConstructor = function () { /* empty */ }; var scriptTag = function (content) { return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT; }; // Create object with fake `null` prototype: use ActiveX Object with cleared prototype var NullProtoObjectViaActiveX = function (activeXDocument) { activeXDocument.write(scriptTag('')); activeXDocument.close(); var temp = activeXDocument.parentWindow.Object; // eslint-disable-next-line no-useless-assignment -- avoid memory leak activeXDocument = null; return temp; }; // Create object with fake `null` prototype: use iframe Object with cleared prototype var NullProtoObjectViaIFrame = function () { // Thrash, waste and sodomy: IE GC bug var iframe = documentCreateElement('iframe'); var JS = 'java' + SCRIPT + ':'; var iframeDocument; iframe.style.display = 'none'; html.appendChild(iframe); // https://github.com/zloirock/core-js/issues/475 iframe.src = String(JS); iframeDocument = iframe.contentWindow.document; iframeDocument.open(); iframeDocument.write(scriptTag('document.F=Object')); iframeDocument.close(); return iframeDocument.F; }; // Check for document.domain and active x support // No need to use active x approach when document.domain is not set // see https://github.com/es-shims/es5-shim/issues/150 // variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346 // avoid IE GC bug var activeXDocument; var NullProtoObject = function () { try { activeXDocument = new ActiveXObject('htmlfile'); } catch (error) { /* ignore */ } NullProtoObject = typeof document != 'undefined' ? document.domain && activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) // old IE : NullProtoObjectViaIFrame() : NullProtoObjectViaActiveX(activeXDocument); // WSH var length = enumBugKeys.length; while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]]; return NullProtoObject(); }; hiddenKeys[IE_PROTO] = true; // `Object.create` method // https://tc39.es/ecma262/#sec-object.create // eslint-disable-next-line es/no-object-create -- safe module.exports = Object.create || function create(O, Properties) { var result; if (O !== null) { EmptyConstructor[PROTOTYPE] = anObject(O); result = new EmptyConstructor(); EmptyConstructor[PROTOTYPE] = null; // add "__proto__" for Object.getPrototypeOf polyfill result[IE_PROTO] = O; } else result = NullProtoObject(); return Properties === undefined ? result : definePropertiesModule.f(result, Properties); }; /***/ }, /***/ "../node_modules/core-js/internals/object-define-properties.js" /*!*********************************************************************!*\ !*** ../node_modules/core-js/internals/object-define-properties.js ***! \*********************************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "../node_modules/core-js/internals/descriptors.js"); var V8_PROTOTYPE_DEFINE_BUG = __webpack_require__(/*! ../internals/v8-prototype-define-bug */ "../node_modules/core-js/internals/v8-prototype-define-bug.js"); var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ "../node_modules/core-js/internals/object-define-property.js"); var anObject = __webpack_require__(/*! ../internals/an-object */ "../node_modules/core-js/internals/an-object.js"); var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ "../node_modules/core-js/internals/to-indexed-object.js"); var objectKeys = __webpack_require__(/*! ../internals/object-keys */ "../node_modules/core-js/internals/object-keys.js"); // `Object.defineProperties` method // https://tc39.es/ecma262/#sec-object.defineproperties // eslint-disable-next-line es/no-object-defineproperties -- safe exports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) { anObject(O); var props = toIndexedObject(Properties); var keys = objectKeys(Properties); var length = keys.length; var index = 0; var key; while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]); return O; }; /***/ }, /***/ "../node_modules/core-js/internals/object-define-property.js" /*!*******************************************************************!*\ !*** ../node_modules/core-js/internals/object-define-property.js ***! \*******************************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "../node_modules/core-js/internals/descriptors.js"); var IE8_DOM_DEFINE = __webpack_require__(/*! ../internals/ie8-dom-define */ "../node_modules/core-js/internals/ie8-dom-define.js"); var V8_PROTOTYPE_DEFINE_BUG = __webpack_require__(/*! ../internals/v8-prototype-define-bug */ "../node_modules/core-js/internals/v8-prototype-define-bug.js"); var anObject = __webpack_require__(/*! ../internals/an-object */ "../node_modules/core-js/internals/an-object.js"); var toPropertyKey = __webpack_require__(/*! ../internals/to-property-key */ "../node_modules/core-js/internals/to-property-key.js"); var $TypeError = TypeError; // eslint-disable-next-line es/no-object-defineproperty -- safe var $defineProperty = Object.defineProperty; // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; var ENUMERABLE = 'enumerable'; var CONFIGURABLE = 'configurable'; var WRITABLE = 'writable'; // `Object.defineProperty` method // https://tc39.es/ecma262/#sec-object.defineproperty exports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) { anObject(O); P = toPropertyKey(P); anObject(Attributes); if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) { var current = $getOwnPropertyDescriptor(O, P); if (current && current[WRITABLE]) { O[P] = Attributes.value; Attributes = { configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE], enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE], writable: false }; } } return $defineProperty(O, P, Attributes); } : $defineProperty : function defineProperty(O, P, Attributes) { anObject(O); P = toPropertyKey(P); anObject(Attributes); if (IE8_DOM_DEFINE) try { return $defineProperty(O, P, Attributes); } catch (error) { /* empty */ } if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported'); if ('value' in Attributes) O[P] = Attributes.value; return O; }; /***/ }, /***/ "../node_modules/core-js/internals/object-get-own-property-descriptor.js" /*!*******************************************************************************!*\ !*** ../node_modules/core-js/internals/object-get-own-property-descriptor.js ***! \*******************************************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "../node_modules/core-js/internals/descriptors.js"); var call = __webpack_require__(/*! ../internals/function-call */ "../node_modules/core-js/internals/function-call.js"); var propertyIsEnumerableModule = __webpack_require__(/*! ../internals/object-property-is-enumerable */ "../node_modules/core-js/internals/object-property-is-enumerable.js"); var createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ "../node_modules/core-js/internals/create-property-descriptor.js"); var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ "../node_modules/core-js/internals/to-indexed-object.js"); var toPropertyKey = __webpack_require__(/*! ../internals/to-property-key */ "../node_modules/core-js/internals/to-property-key.js"); var hasOwn = __webpack_require__(/*! ../internals/has-own-property */ "../node_modules/core-js/internals/has-own-property.js"); var IE8_DOM_DEFINE = __webpack_require__(/*! ../internals/ie8-dom-define */ "../node_modules/core-js/internals/ie8-dom-define.js"); // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; // `Object.getOwnPropertyDescriptor` method // https://tc39.es/ecma262/#sec-object.getownpropertydescriptor exports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { O = toIndexedObject(O); P = toPropertyKey(P); if (IE8_DOM_DEFINE) try { return $getOwnPropertyDescriptor(O, P); } catch (error) { /* empty */ } if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]); }; /***/ }, /***/ "../node_modules/core-js/internals/object-get-own-property-names.js" /*!**************************************************************************!*\ !*** ../node_modules/core-js/internals/object-get-own-property-names.js ***! \**************************************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; var internalObjectKeys = __webpack_require__(/*! ../internals/object-keys-internal */ "../node_modules/core-js/internals/object-keys-internal.js"); var enumBugKeys = __webpack_require__(/*! ../internals/enum-bug-keys */ "../node_modules/core-js/internals/enum-bug-keys.js"); var hiddenKeys = enumBugKeys.concat('length', 'prototype'); // `Object.getOwnPropertyNames` method // https://tc39.es/ecma262/#sec-object.getownpropertynames // eslint-disable-next-line es/no-object-getownpropertynames -- safe exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { return internalObjectKeys(O, hiddenKeys); }; /***/ }, /***/ "../node_modules/core-js/internals/object-get-own-property-symbols.js" /*!****************************************************************************!*\ !*** ../node_modules/core-js/internals/object-get-own-property-symbols.js ***! \****************************************************************************/ (__unused_webpack_module, exports) { "use strict"; // eslint-disable-next-line es/no-object-getownpropertysymbols -- safe exports.f = Object.getOwnPropertySymbols; /***/ }, /***/ "../node_modules/core-js/internals/object-get-prototype-of.js" /*!********************************************************************!*\ !*** ../node_modules/core-js/internals/object-get-prototype-of.js ***! \********************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var hasOwn = __webpack_require__(/*! ../internals/has-own-property */ "../node_modules/core-js/internals/has-own-property.js"); var isCallable = __webpack_require__(/*! ../internals/is-callable */ "../node_modules/core-js/internals/is-callable.js"); var toObject = __webpack_require__(/*! ../internals/to-object */ "../node_modules/core-js/internals/to-object.js"); var sharedKey = __webpack_require__(/*! ../internals/shared-key */ "../node_modules/core-js/internals/shared-key.js"); var CORRECT_PROTOTYPE_GETTER = __webpack_require__(/*! ../internals/correct-prototype-getter */ "../node_modules/core-js/internals/correct-prototype-getter.js"); var IE_PROTO = sharedKey('IE_PROTO'); var $Object = Object; var ObjectPrototype = $Object.prototype; // `Object.getPrototypeOf` method // https://tc39.es/ecma262/#sec-object.getprototypeof // eslint-disable-next-line es/no-object-getprototypeof -- safe module.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) { var object = toObject(O); if (hasOwn(object, IE_PROTO)) return object[IE_PROTO]; var constructor = object.constructor; if (isCallable(constructor) && object instanceof constructor) { return constructor.prototype; } return object instanceof $Object ? ObjectPrototype : null; }; /***/ }, /***/ "../node_modules/core-js/internals/object-is-prototype-of.js" /*!*******************************************************************!*\ !*** ../node_modules/core-js/internals/object-is-prototype-of.js ***! \*******************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "../node_modules/core-js/internals/function-uncurry-this.js"); module.exports = uncurryThis({}.isPrototypeOf); /***/ }, /***/ "../node_modules/core-js/internals/object-keys-internal.js" /*!*****************************************************************!*\ !*** ../node_modules/core-js/internals/object-keys-internal.js ***! \*****************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "../node_modules/core-js/internals/function-uncurry-this.js"); var hasOwn = __webpack_require__(/*! ../internals/has-own-property */ "../node_modules/core-js/internals/has-own-property.js"); var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ "../node_modules/core-js/internals/to-indexed-object.js"); var indexOf = (__webpack_require__(/*! ../internals/array-includes */ "../node_modules/core-js/internals/array-includes.js").indexOf); var hiddenKeys = __webpack_require__(/*! ../internals/hidden-keys */ "../node_modules/core-js/internals/hidden-keys.js"); var push = uncurryThis([].push); module.exports = function (object, names) { var O = toIndexedObject(object); var i = 0; var result = []; var key; for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key); // Don't enum bug & hidden keys while (names.length > i) if (hasOwn(O, key = names[i++])) { ~indexOf(result, key) || push(result, key); } return result; }; /***/ }, /***/ "../node_modules/core-js/internals/object-keys.js" /*!********************************************************!*\ !*** ../node_modules/core-js/internals/object-keys.js ***! \********************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var internalObjectKeys = __webpack_require__(/*! ../internals/object-keys-internal */ "../node_modules/core-js/internals/object-keys-internal.js"); var enumBugKeys = __webpack_require__(/*! ../internals/enum-bug-keys */ "../node_modules/core-js/internals/enum-bug-keys.js"); // `Object.keys` method // https://tc39.es/ecma262/#sec-object.keys // eslint-disable-next-line es/no-object-keys -- safe module.exports = Object.keys || function keys(O) { return internalObjectKeys(O, enumBugKeys); }; /***/ }, /***/ "../node_modules/core-js/internals/object-property-is-enumerable.js" /*!**************************************************************************!*\ !*** ../node_modules/core-js/internals/object-property-is-enumerable.js ***! \**************************************************************************/ (__unused_webpack_module, exports) { "use strict"; var $propertyIsEnumerable = {}.propertyIsEnumerable; // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; // Nashorn ~ JDK8 bug var NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1); // `Object.prototype.propertyIsEnumerable` method implementation // https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) { var descriptor = getOwnPropertyDescriptor(this, V); return !!descriptor && descriptor.enumerable; } : $propertyIsEnumerable; /***/ }, /***/ "../node_modules/core-js/internals/ordinary-to-primitive.js" /*!******************************************************************!*\ !*** ../node_modules/core-js/internals/ordinary-to-primitive.js ***! \******************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var call = __webpack_require__(/*! ../internals/function-call */ "../node_modules/core-js/internals/function-call.js"); var isCallable = __webpack_require__(/*! ../internals/is-callable */ "../node_modules/core-js/internals/is-callable.js"); var isObject = __webpack_require__(/*! ../internals/is-object */ "../node_modules/core-js/internals/is-object.js"); var $TypeError = TypeError; // `OrdinaryToPrimitive` abstract operation // https://tc39.es/ecma262/#sec-ordinarytoprimitive module.exports = function (input, pref) { var fn, val; if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val; if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val; if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val; throw new $TypeError("Can't convert object to primitive value"); }; /***/ }, /***/ "../node_modules/core-js/internals/own-keys.js" /*!*****************************************************!*\ !*** ../node_modules/core-js/internals/own-keys.js ***! \*****************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ "../node_modules/core-js/internals/get-built-in.js"); var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "../node_modules/core-js/internals/function-uncurry-this.js"); var getOwnPropertyNamesModule = __webpack_require__(/*! ../internals/object-get-own-property-names */ "../node_modules/core-js/internals/object-get-own-property-names.js"); var getOwnPropertySymbolsModule = __webpack_require__(/*! ../internals/object-get-own-property-symbols */ "../node_modules/core-js/internals/object-get-own-property-symbols.js"); var anObject = __webpack_require__(/*! ../internals/an-object */ "../node_modules/core-js/internals/an-object.js"); var concat = uncurryThis([].concat); // all object keys, includes non-enumerable and symbols module.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) { var keys = getOwnPropertyNamesModule.f(anObject(it)); var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys; }; /***/ }, /***/ "../node_modules/core-js/internals/parse-json-string.js" /*!**************************************************************!*\ !*** ../node_modules/core-js/internals/parse-json-string.js ***! \**************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "../node_modules/core-js/internals/function-uncurry-this.js"); var hasOwn = __webpack_require__(/*! ../internals/has-own-property */ "../node_modules/core-js/internals/has-own-property.js"); var $SyntaxError = SyntaxError; var $parseInt = parseInt; var fromCharCode = String.fromCharCode; var at = uncurryThis(''.charAt); var slice = uncurryThis(''.slice); var exec = uncurryThis(/./.exec); var codePoints = { '\\"': '"', '\\\\': '\\', '\\/': '/', '\\b': '\b', '\\f': '\f', '\\n': '\n', '\\r': '\r', '\\t': '\t' }; var IS_4_HEX_DIGITS = /^[\da-f]{4}$/i; // eslint-disable-next-line regexp/no-control-character -- safe var IS_C0_CONTROL_CODE = /^[\u0000-\u001F]$/; module.exports = function (source, i) { var unterminated = true; var value = ''; while (i < source.length) { var chr = at(source, i); if (chr === '\\') { var twoChars = slice(source, i, i + 2); if (hasOwn(codePoints, twoChars)) { value += codePoints[twoChars]; i += 2; } else if (twoChars === '\\u') { i += 2; var fourHexDigits = slice(source, i, i + 4); if (!exec(IS_4_HEX_DIGITS, fourHexDigits)) throw new $SyntaxError('Bad Unicode escape at: ' + i); value += fromCharCode($parseInt(fourHexDigits, 16)); i += 4; } else throw new $SyntaxError('Unknown escape sequence: "' + twoChars + '"'); } else if (chr === '"') { unterminated = false; i++; break; } else { if (exec(IS_C0_CONTROL_CODE, chr)) throw new $SyntaxError('Bad control character in string literal at: ' + i); value += chr; i++; } } if (unterminated) throw new $SyntaxError('Unterminated string at: ' + i); return { value: value, end: i }; }; /***/ }, /***/ "../node_modules/core-js/internals/require-object-coercible.js" /*!*********************************************************************!*\ !*** ../node_modules/core-js/internals/require-object-coercible.js ***! \*********************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var isNullOrUndefined = __webpack_require__(/*! ../internals/is-null-or-undefined */ "../node_modules/core-js/internals/is-null-or-undefined.js"); var $TypeError = TypeError; // `RequireObjectCoercible` abstract operation // https://tc39.es/ecma262/#sec-requireobjectcoercible module.exports = function (it) { if (isNullOrUndefined(it)) throw new $TypeError("Can't call method on " + it); return it; }; /***/ }, /***/ "../node_modules/core-js/internals/shared-key.js" /*!*******************************************************!*\ !*** ../node_modules/core-js/internals/shared-key.js ***! \*******************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var shared = __webpack_require__(/*! ../internals/shared */ "../node_modules/core-js/internals/shared.js"); var uid = __webpack_require__(/*! ../internals/uid */ "../node_modules/core-js/internals/uid.js"); var keys = shared('keys'); module.exports = function (key) { return keys[key] || (keys[key] = uid(key)); }; /***/ }, /***/ "../node_modules/core-js/internals/shared-store.js" /*!*********************************************************!*\ !*** ../node_modules/core-js/internals/shared-store.js ***! \*********************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ "../node_modules/core-js/internals/is-pure.js"); var globalThis = __webpack_require__(/*! ../internals/global-this */ "../node_modules/core-js/internals/global-this.js"); var defineGlobalProperty = __webpack_require__(/*! ../internals/define-global-property */ "../node_modules/core-js/internals/define-global-property.js"); var SHARED = '__core-js_shared__'; var store = module.exports = globalThis[SHARED] || defineGlobalProperty(SHARED, {}); (store.versions || (store.versions = [])).push({ version: '3.49.0', mode: IS_PURE ? 'pure' : 'global', copyright: '© 2013–2025 Denis Pushkarev (zloirock.ru), 2025–2026 CoreJS Company (core-js.io). All rights reserved.', license: 'https://github.com/zloirock/core-js/blob/v3.49.0/LICENSE', source: 'https://github.com/zloirock/core-js' }); /***/ }, /***/ "../node_modules/core-js/internals/shared.js" /*!***************************************************!*\ !*** ../node_modules/core-js/internals/shared.js ***! \***************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var store = __webpack_require__(/*! ../internals/shared-store */ "../node_modules/core-js/internals/shared-store.js"); module.exports = function (key, value) { return store[key] || (store[key] = value || {}); }; /***/ }, /***/ "../node_modules/core-js/internals/symbol-constructor-detection.js" /*!*************************************************************************!*\ !*** ../node_modules/core-js/internals/symbol-constructor-detection.js ***! \*************************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; /* eslint-disable es/no-symbol -- required for testing */ var V8_VERSION = __webpack_require__(/*! ../internals/environment-v8-version */ "../node_modules/core-js/internals/environment-v8-version.js"); var fails = __webpack_require__(/*! ../internals/fails */ "../node_modules/core-js/internals/fails.js"); var globalThis = __webpack_require__(/*! ../internals/global-this */ "../node_modules/core-js/internals/global-this.js"); var $String = globalThis.String; // eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing module.exports = !!Object.getOwnPropertySymbols && !fails(function () { var symbol = Symbol('symbol detection'); // Chrome 38 Symbol has incorrect toString conversion // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will, // of course, fail. return !$String(symbol) || !(Object(symbol) instanceof Symbol) || // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances !Symbol.sham && V8_VERSION && V8_VERSION < 41; }); /***/ }, /***/ "../node_modules/core-js/internals/to-absolute-index.js" /*!**************************************************************!*\ !*** ../node_modules/core-js/internals/to-absolute-index.js ***! \**************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var toIntegerOrInfinity = __webpack_require__(/*! ../internals/to-integer-or-infinity */ "../node_modules/core-js/internals/to-integer-or-infinity.js"); var max = Math.max; var min = Math.min; // Helper for a popular repeating case of the spec: // Let integer be ? ToInteger(index). // If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length). module.exports = function (index, length) { var integer = toIntegerOrInfinity(index); return integer < 0 ? max(integer + length, 0) : min(integer, length); }; /***/ }, /***/ "../node_modules/core-js/internals/to-indexed-object.js" /*!**************************************************************!*\ !*** ../node_modules/core-js/internals/to-indexed-object.js ***! \**************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; // toObject with fallback for non-array-like ES3 strings var IndexedObject = __webpack_require__(/*! ../internals/indexed-object */ "../node_modules/core-js/internals/indexed-object.js"); var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ "../node_modules/core-js/internals/require-object-coercible.js"); module.exports = function (it) { return IndexedObject(requireObjectCoercible(it)); }; /***/ }, /***/ "../node_modules/core-js/internals/to-integer-or-infinity.js" /*!*******************************************************************!*\ !*** ../node_modules/core-js/internals/to-integer-or-infinity.js ***! \*******************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var trunc = __webpack_require__(/*! ../internals/math-trunc */ "../node_modules/core-js/internals/math-trunc.js"); // `ToIntegerOrInfinity` abstract operation // https://tc39.es/ecma262/#sec-tointegerorinfinity module.exports = function (argument) { var number = +argument; // eslint-disable-next-line no-self-compare -- NaN check return number !== number || number === 0 ? 0 : trunc(number); }; /***/ }, /***/ "../node_modules/core-js/internals/to-length.js" /*!******************************************************!*\ !*** ../node_modules/core-js/internals/to-length.js ***! \******************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var toIntegerOrInfinity = __webpack_require__(/*! ../internals/to-integer-or-infinity */ "../node_modules/core-js/internals/to-integer-or-infinity.js"); var min = Math.min; // `ToLength` abstract operation // https://tc39.es/ecma262/#sec-tolength module.exports = function (argument) { var len = toIntegerOrInfinity(argument); return len > 0 ? min(len, 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 }; /***/ }, /***/ "../node_modules/core-js/internals/to-object.js" /*!******************************************************!*\ !*** ../node_modules/core-js/internals/to-object.js ***! \******************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ "../node_modules/core-js/internals/require-object-coercible.js"); var $Object = Object; // `ToObject` abstract operation // https://tc39.es/ecma262/#sec-toobject module.exports = function (argument) { return $Object(requireObjectCoercible(argument)); }; /***/ }, /***/ "../node_modules/core-js/internals/to-primitive.js" /*!*********************************************************!*\ !*** ../node_modules/core-js/internals/to-primitive.js ***! \*********************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var call = __webpack_require__(/*! ../internals/function-call */ "../node_modules/core-js/internals/function-call.js"); var isObject = __webpack_require__(/*! ../internals/is-object */ "../node_modules/core-js/internals/is-object.js"); var isSymbol = __webpack_require__(/*! ../internals/is-symbol */ "../node_modules/core-js/internals/is-symbol.js"); var getMethod = __webpack_require__(/*! ../internals/get-method */ "../node_modules/core-js/internals/get-method.js"); var ordinaryToPrimitive = __webpack_require__(/*! ../internals/ordinary-to-primitive */ "../node_modules/core-js/internals/ordinary-to-primitive.js"); var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "../node_modules/core-js/internals/well-known-symbol.js"); var $TypeError = TypeError; var TO_PRIMITIVE = wellKnownSymbol('toPrimitive'); // `ToPrimitive` abstract operation // https://tc39.es/ecma262/#sec-toprimitive module.exports = function (input, pref) { if (!isObject(input) || isSymbol(input)) return input; var exoticToPrim = getMethod(input, TO_PRIMITIVE); var result; if (exoticToPrim) { if (pref === undefined) pref = 'default'; result = call(exoticToPrim, input, pref); if (!isObject(result) || isSymbol(result)) return result; throw new $TypeError("Can't convert object to primitive value"); } if (pref === undefined) pref = 'number'; return ordinaryToPrimitive(input, pref); }; /***/ }, /***/ "../node_modules/core-js/internals/to-property-key.js" /*!************************************************************!*\ !*** ../node_modules/core-js/internals/to-property-key.js ***! \************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var toPrimitive = __webpack_require__(/*! ../internals/to-primitive */ "../node_modules/core-js/internals/to-primitive.js"); var isSymbol = __webpack_require__(/*! ../internals/is-symbol */ "../node_modules/core-js/internals/is-symbol.js"); // `ToPropertyKey` abstract operation // https://tc39.es/ecma262/#sec-topropertykey module.exports = function (argument) { var key = toPrimitive(argument, 'string'); return isSymbol(key) ? key : key + ''; }; /***/ }, /***/ "../node_modules/core-js/internals/to-string-tag-support.js" /*!******************************************************************!*\ !*** ../node_modules/core-js/internals/to-string-tag-support.js ***! \******************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "../node_modules/core-js/internals/well-known-symbol.js"); var TO_STRING_TAG = wellKnownSymbol('toStringTag'); var test = {}; // eslint-disable-next-line unicorn/no-immediate-mutation -- ES3 syntax limitation test[TO_STRING_TAG] = 'z'; module.exports = String(test) === '[object z]'; /***/ }, /***/ "../node_modules/core-js/internals/to-string.js" /*!******************************************************!*\ !*** ../node_modules/core-js/internals/to-string.js ***! \******************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var classof = __webpack_require__(/*! ../internals/classof */ "../node_modules/core-js/internals/classof.js"); var $String = String; module.exports = function (argument) { if (classof(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string'); return $String(argument); }; /***/ }, /***/ "../node_modules/core-js/internals/try-to-string.js" /*!**********************************************************!*\ !*** ../node_modules/core-js/internals/try-to-string.js ***! \**********************************************************/ (module) { "use strict"; var $String = String; module.exports = function (argument) { try { return $String(argument); } catch (error) { return 'Object'; } }; /***/ }, /***/ "../node_modules/core-js/internals/uid.js" /*!************************************************!*\ !*** ../node_modules/core-js/internals/uid.js ***! \************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "../node_modules/core-js/internals/function-uncurry-this.js"); var id = 0; var postfix = Math.random(); var toString = uncurryThis(1.1.toString); module.exports = function (key) { return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36); }; /***/ }, /***/ "../node_modules/core-js/internals/use-symbol-as-uid.js" /*!**************************************************************!*\ !*** ../node_modules/core-js/internals/use-symbol-as-uid.js ***! \**************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; /* eslint-disable es/no-symbol -- required for testing */ var NATIVE_SYMBOL = __webpack_require__(/*! ../internals/symbol-constructor-detection */ "../node_modules/core-js/internals/symbol-constructor-detection.js"); module.exports = NATIVE_SYMBOL && !Symbol.sham && typeof Symbol.iterator == 'symbol'; /***/ }, /***/ "../node_modules/core-js/internals/v8-prototype-define-bug.js" /*!********************************************************************!*\ !*** ../node_modules/core-js/internals/v8-prototype-define-bug.js ***! \********************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "../node_modules/core-js/internals/descriptors.js"); var fails = __webpack_require__(/*! ../internals/fails */ "../node_modules/core-js/internals/fails.js"); // V8 ~ Chrome 36- // https://bugs.chromium.org/p/v8/issues/detail?id=3334 module.exports = DESCRIPTORS && fails(function () { // eslint-disable-next-line es/no-object-defineproperty -- required for testing return Object.defineProperty(function () { /* empty */ }, 'prototype', { value: 42, writable: false }).prototype !== 42; }); /***/ }, /***/ "../node_modules/core-js/internals/weak-map-basic-detection.js" /*!*********************************************************************!*\ !*** ../node_modules/core-js/internals/weak-map-basic-detection.js ***! \*********************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var globalThis = __webpack_require__(/*! ../internals/global-this */ "../node_modules/core-js/internals/global-this.js"); var isCallable = __webpack_require__(/*! ../internals/is-callable */ "../node_modules/core-js/internals/is-callable.js"); var WeakMap = globalThis.WeakMap; module.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap)); /***/ }, /***/ "../node_modules/core-js/internals/well-known-symbol.js" /*!**************************************************************!*\ !*** ../node_modules/core-js/internals/well-known-symbol.js ***! \**************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { "use strict"; var globalThis = __webpack_require__(/*! ../internals/global-this */ "../node_modules/core-js/internals/global-this.js"); var shared = __webpack_require__(/*! ../internals/shared */ "../node_modules/core-js/internals/shared.js"); var hasOwn = __webpack_require__(/*! ../internals/has-own-property */ "../node_modules/core-js/internals/has-own-property.js"); var uid = __webpack_require__(/*! ../internals/uid */ "../node_modules/core-js/internals/uid.js"); var NATIVE_SYMBOL = __webpack_require__(/*! ../internals/symbol-constructor-detection */ "../node_modules/core-js/internals/symbol-constructor-detection.js"); var USE_SYMBOL_AS_UID = __webpack_require__(/*! ../internals/use-symbol-as-uid */ "../node_modules/core-js/internals/use-symbol-as-uid.js"); var Symbol = globalThis.Symbol; var WellKnownSymbolsStore = shared('wks'); var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid; module.exports = function (name) { if (!hasOwn(WellKnownSymbolsStore, name)) { WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name) ? Symbol[name] : createWellKnownSymbol('Symbol.' + name); } return WellKnownSymbolsStore[name]; }; /***/ }, /***/ "../node_modules/core-js/modules/es.array.includes.js" /*!************************************************************!*\ !*** ../node_modules/core-js/modules/es.array.includes.js ***! \************************************************************/ (__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { "use strict"; var $ = __webpack_require__(/*! ../internals/export */ "../node_modules/core-js/internals/export.js"); var $includes = (__webpack_require__(/*! ../internals/array-includes */ "../node_modules/core-js/internals/array-includes.js").includes); var fails = __webpack_require__(/*! ../internals/fails */ "../node_modules/core-js/internals/fails.js"); var addToUnscopables = __webpack_require__(/*! ../internals/add-to-unscopables */ "../node_modules/core-js/internals/add-to-unscopables.js"); // FF99+ bug var BROKEN_ON_SPARSE = fails(function () { // eslint-disable-next-line es/no-array-prototype-includes -- detection return !Array(1).includes(); }); // Safari 26.4- bug var BROKEN_ON_SPARSE_WITH_FROM_INDEX = fails(function () { // eslint-disable-next-line no-sparse-arrays, es/no-array-prototype-includes -- detection return [, 1].includes(undefined, 1); }); // `Array.prototype.includes` method // https://tc39.es/ecma262/#sec-array.prototype.includes $({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE || BROKEN_ON_SPARSE_WITH_FROM_INDEX }, { includes: function includes(el /* , fromIndex = 0 */) { return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined); } }); // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables addToUnscopables('includes'); /***/ }, /***/ "../node_modules/core-js/modules/es.array.push.js" /*!********************************************************!*\ !*** ../node_modules/core-js/modules/es.array.push.js ***! \********************************************************/ (__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { "use strict"; var $ = __webpack_require__(/*! ../internals/export */ "../node_modules/core-js/internals/export.js"); var toObject = __webpack_require__(/*! ../internals/to-object */ "../node_modules/core-js/internals/to-object.js"); var lengthOfArrayLike = __webpack_require__(/*! ../internals/length-of-array-like */ "../node_modules/core-js/internals/length-of-array-like.js"); var setArrayLength = __webpack_require__(/*! ../internals/array-set-length */ "../node_modules/core-js/internals/array-set-length.js"); var doesNotExceedSafeInteger = __webpack_require__(/*! ../internals/does-not-exceed-safe-integer */ "../node_modules/core-js/internals/does-not-exceed-safe-integer.js"); var fails = __webpack_require__(/*! ../internals/fails */ "../node_modules/core-js/internals/fails.js"); var INCORRECT_TO_LENGTH = fails(function () { return [].push.call({ length: 0x100000000 }, 1) !== 4294967297; }); // V8 <= 121 and Safari <= 15.4; FF < 23 throws InternalError // https://bugs.chromium.org/p/v8/issues/detail?id=12681 var properErrorOnNonWritableLength = function () { try { // eslint-disable-next-line es/no-object-defineproperty -- safe Object.defineProperty([], 'length', { writable: false }).push(); } catch (error) { return error instanceof TypeError; } }; var FORCED = INCORRECT_TO_LENGTH || !properErrorOnNonWritableLength(); // `Array.prototype.push` method // https://tc39.es/ecma262/#sec-array.prototype.push $({ target: 'Array', proto: true, arity: 1, forced: FORCED }, { // eslint-disable-next-line no-unused-vars -- required for `.length` push: function push(item) { var O = toObject(this); var len = lengthOfArrayLike(O); var argCount = arguments.length; doesNotExceedSafeInteger(len + argCount); for (var i = 0; i < argCount; i++) { O[len] = arguments[i]; len++; } setArrayLength(O, len); return len; } }); /***/ }, /***/ "../node_modules/core-js/modules/es.iterator.constructor.js" /*!******************************************************************!*\ !*** ../node_modules/core-js/modules/es.iterator.constructor.js ***! \******************************************************************/ (__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { "use strict"; var $ = __webpack_require__(/*! ../internals/export */ "../node_modules/core-js/internals/export.js"); var globalThis = __webpack_require__(/*! ../internals/global-this */ "../node_modules/core-js/internals/global-this.js"); var anInstance = __webpack_require__(/*! ../internals/an-instance */ "../node_modules/core-js/internals/an-instance.js"); var anObject = __webpack_require__(/*! ../internals/an-object */ "../node_modules/core-js/internals/an-object.js"); var isCallable = __webpack_require__(/*! ../internals/is-callable */ "../node_modules/core-js/internals/is-callable.js"); var getPrototypeOf = __webpack_require__(/*! ../internals/object-get-prototype-of */ "../node_modules/core-js/internals/object-get-prototype-of.js"); var defineBuiltInAccessor = __webpack_require__(/*! ../internals/define-built-in-accessor */ "../node_modules/core-js/internals/define-built-in-accessor.js"); var createProperty = __webpack_require__(/*! ../internals/create-property */ "../node_modules/core-js/internals/create-property.js"); var fails = __webpack_require__(/*! ../internals/fails */ "../node_modules/core-js/internals/fails.js"); var hasOwn = __webpack_require__(/*! ../internals/has-own-property */ "../node_modules/core-js/internals/has-own-property.js"); var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "../node_modules/core-js/internals/well-known-symbol.js"); var IteratorPrototype = (__webpack_require__(/*! ../internals/iterators-core */ "../node_modules/core-js/internals/iterators-core.js").IteratorPrototype); var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "../node_modules/core-js/internals/descriptors.js"); var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ "../node_modules/core-js/internals/is-pure.js"); var CONSTRUCTOR = 'constructor'; var ITERATOR = 'Iterator'; var TO_STRING_TAG = wellKnownSymbol('toStringTag'); var $TypeError = TypeError; var NativeIterator = globalThis[ITERATOR]; // FF56- have non-standard global helper `Iterator` var FORCED = IS_PURE || !isCallable(NativeIterator) || NativeIterator.prototype !== IteratorPrototype // FF44- non-standard `Iterator` passes previous tests || !fails(function () { NativeIterator({}); }); var IteratorConstructor = function Iterator() { anInstance(this, IteratorPrototype); if (getPrototypeOf(this) === IteratorPrototype) throw new $TypeError('Abstract class Iterator not directly constructable'); }; var defineIteratorPrototypeAccessor = function (key, value) { if (DESCRIPTORS) { defineBuiltInAccessor(IteratorPrototype, key, { configurable: true, get: function () { return value; }, set: function (replacement) { anObject(this); if (this === IteratorPrototype) throw new $TypeError("You can't redefine this property"); if (hasOwn(this, key)) this[key] = replacement; else createProperty(this, key, replacement); } }); } else IteratorPrototype[key] = value; }; if (!hasOwn(IteratorPrototype, TO_STRING_TAG)) defineIteratorPrototypeAccessor(TO_STRING_TAG, ITERATOR); if (FORCED || !hasOwn(IteratorPrototype, CONSTRUCTOR) || IteratorPrototype[CONSTRUCTOR] === Object) { defineIteratorPrototypeAccessor(CONSTRUCTOR, IteratorConstructor); } IteratorConstructor.prototype = IteratorPrototype; // `Iterator` constructor // https://tc39.es/ecma262/#sec-iterator $({ global: true, constructor: true, forced: FORCED }, { Iterator: IteratorConstructor }); /***/ }, /***/ "../node_modules/core-js/modules/es.iterator.filter.js" /*!*************************************************************!*\ !*** ../node_modules/core-js/modules/es.iterator.filter.js ***! \*************************************************************/ (__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { "use strict"; var $ = __webpack_require__(/*! ../internals/export */ "../node_modules/core-js/internals/export.js"); var call = __webpack_require__(/*! ../internals/function-call */ "../node_modules/core-js/internals/function-call.js"); var aCallable = __webpack_require__(/*! ../internals/a-callable */ "../node_modules/core-js/internals/a-callable.js"); var anObject = __webpack_require__(/*! ../internals/an-object */ "../node_modules/core-js/internals/an-object.js"); var getIteratorDirect = __webpack_require__(/*! ../internals/get-iterator-direct */ "../node_modules/core-js/internals/get-iterator-direct.js"); var createIteratorProxy = __webpack_require__(/*! ../internals/iterator-create-proxy */ "../node_modules/core-js/internals/iterator-create-proxy.js"); var callWithSafeIterationClosing = __webpack_require__(/*! ../internals/call-with-safe-iteration-closing */ "../node_modules/core-js/internals/call-with-safe-iteration-closing.js"); var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ "../node_modules/core-js/internals/is-pure.js"); var iteratorClose = __webpack_require__(/*! ../internals/iterator-close */ "../node_modules/core-js/internals/iterator-close.js"); var iteratorHelperThrowsOnInvalidIterator = __webpack_require__(/*! ../internals/iterator-helper-throws-on-invalid-iterator */ "../node_modules/core-js/internals/iterator-helper-throws-on-invalid-iterator.js"); var iteratorHelperWithoutClosingOnEarlyError = __webpack_require__(/*! ../internals/iterator-helper-without-closing-on-early-error */ "../node_modules/core-js/internals/iterator-helper-without-closing-on-early-error.js"); var FILTER_WITHOUT_THROWING_ON_INVALID_ITERATOR = !IS_PURE && !iteratorHelperThrowsOnInvalidIterator('filter', function () { /* empty */ }); var filterWithoutClosingOnEarlyError = !IS_PURE && !FILTER_WITHOUT_THROWING_ON_INVALID_ITERATOR && iteratorHelperWithoutClosingOnEarlyError('filter', TypeError); var FORCED = IS_PURE || FILTER_WITHOUT_THROWING_ON_INVALID_ITERATOR || filterWithoutClosingOnEarlyError; var IteratorProxy = createIteratorProxy(function () { var iterator = this.iterator; var predicate = this.predicate; var next = this.next; var result, done, value; while (true) { result = anObject(call(next, iterator)); done = this.done = !!result.done; if (done) return; value = result.value; if (callWithSafeIterationClosing(iterator, predicate, [value, this.counter++], true)) return value; } }); // `Iterator.prototype.filter` method // https://tc39.es/ecma262/#sec-iterator.prototype.filter $({ target: 'Iterator', proto: true, real: true, forced: FORCED }, { filter: function filter(predicate) { anObject(this); try { aCallable(predicate); } catch (error) { iteratorClose(this, 'throw', error); } if (filterWithoutClosingOnEarlyError) return call(filterWithoutClosingOnEarlyError, this, predicate); return new IteratorProxy(getIteratorDirect(this), { predicate: predicate }); } }); /***/ }, /***/ "../node_modules/core-js/modules/es.iterator.find.js" /*!***********************************************************!*\ !*** ../node_modules/core-js/modules/es.iterator.find.js ***! \***********************************************************/ (__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { "use strict"; var $ = __webpack_require__(/*! ../internals/export */ "../node_modules/core-js/internals/export.js"); var call = __webpack_require__(/*! ../internals/function-call */ "../node_modules/core-js/internals/function-call.js"); var iterate = __webpack_require__(/*! ../internals/iterate */ "../node_modules/core-js/internals/iterate.js"); var aCallable = __webpack_require__(/*! ../internals/a-callable */ "../node_modules/core-js/internals/a-callable.js"); var anObject = __webpack_require__(/*! ../internals/an-object */ "../node_modules/core-js/internals/an-object.js"); var getIteratorDirect = __webpack_require__(/*! ../internals/get-iterator-direct */ "../node_modules/core-js/internals/get-iterator-direct.js"); var iteratorClose = __webpack_require__(/*! ../internals/iterator-close */ "../node_modules/core-js/internals/iterator-close.js"); var iteratorHelperWithoutClosingOnEarlyError = __webpack_require__(/*! ../internals/iterator-helper-without-closing-on-early-error */ "../node_modules/core-js/internals/iterator-helper-without-closing-on-early-error.js"); var findWithoutClosingOnEarlyError = iteratorHelperWithoutClosingOnEarlyError('find', TypeError); // `Iterator.prototype.find` method // https://tc39.es/ecma262/#sec-iterator.prototype.find $({ target: 'Iterator', proto: true, real: true, forced: findWithoutClosingOnEarlyError }, { find: function find(predicate) { anObject(this); try { aCallable(predicate); } catch (error) { iteratorClose(this, 'throw', error); } if (findWithoutClosingOnEarlyError) return call(findWithoutClosingOnEarlyError, this, predicate); var record = getIteratorDirect(this); var counter = 0; return iterate(record, function (value, stop) { if (predicate(value, counter++)) return stop(value); }, { IS_RECORD: true, INTERRUPTED: true }).result; } }); /***/ }, /***/ "../node_modules/core-js/modules/es.iterator.for-each.js" /*!***************************************************************!*\ !*** ../node_modules/core-js/modules/es.iterator.for-each.js ***! \***************************************************************/ (__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { "use strict"; var $ = __webpack_require__(/*! ../internals/export */ "../node_modules/core-js/internals/export.js"); var call = __webpack_require__(/*! ../internals/function-call */ "../node_modules/core-js/internals/function-call.js"); var iterate = __webpack_require__(/*! ../internals/iterate */ "../node_modules/core-js/internals/iterate.js"); var aCallable = __webpack_require__(/*! ../internals/a-callable */ "../node_modules/core-js/internals/a-callable.js"); var anObject = __webpack_require__(/*! ../internals/an-object */ "../node_modules/core-js/internals/an-object.js"); var getIteratorDirect = __webpack_require__(/*! ../internals/get-iterator-direct */ "../node_modules/core-js/internals/get-iterator-direct.js"); var iteratorClose = __webpack_require__(/*! ../internals/iterator-close */ "../node_modules/core-js/internals/iterator-close.js"); var iteratorHelperWithoutClosingOnEarlyError = __webpack_require__(/*! ../internals/iterator-helper-without-closing-on-early-error */ "../node_modules/core-js/internals/iterator-helper-without-closing-on-early-error.js"); var forEachWithoutClosingOnEarlyError = iteratorHelperWithoutClosingOnEarlyError('forEach', TypeError); // `Iterator.prototype.forEach` method // https://tc39.es/ecma262/#sec-iterator.prototype.foreach $({ target: 'Iterator', proto: true, real: true, forced: forEachWithoutClosingOnEarlyError }, { forEach: function forEach(fn) { anObject(this); try { aCallable(fn); } catch (error) { iteratorClose(this, 'throw', error); } if (forEachWithoutClosingOnEarlyError) return call(forEachWithoutClosingOnEarlyError, this, fn); var record = getIteratorDirect(this); var counter = 0; iterate(record, function (value) { fn(value, counter++); }, { IS_RECORD: true }); } }); /***/ }, /***/ "../node_modules/core-js/modules/es.iterator.map.js" /*!**********************************************************!*\ !*** ../node_modules/core-js/modules/es.iterator.map.js ***! \**********************************************************/ (__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { "use strict"; var $ = __webpack_require__(/*! ../internals/export */ "../node_modules/core-js/internals/export.js"); var call = __webpack_require__(/*! ../internals/function-call */ "../node_modules/core-js/internals/function-call.js"); var aCallable = __webpack_require__(/*! ../internals/a-callable */ "../node_modules/core-js/internals/a-callable.js"); var anObject = __webpack_require__(/*! ../internals/an-object */ "../node_modules/core-js/internals/an-object.js"); var getIteratorDirect = __webpack_require__(/*! ../internals/get-iterator-direct */ "../node_modules/core-js/internals/get-iterator-direct.js"); var createIteratorProxy = __webpack_require__(/*! ../internals/iterator-create-proxy */ "../node_modules/core-js/internals/iterator-create-proxy.js"); var callWithSafeIterationClosing = __webpack_require__(/*! ../internals/call-with-safe-iteration-closing */ "../node_modules/core-js/internals/call-with-safe-iteration-closing.js"); var iteratorClose = __webpack_require__(/*! ../internals/iterator-close */ "../node_modules/core-js/internals/iterator-close.js"); var iteratorHelperThrowsOnInvalidIterator = __webpack_require__(/*! ../internals/iterator-helper-throws-on-invalid-iterator */ "../node_modules/core-js/internals/iterator-helper-throws-on-invalid-iterator.js"); var iteratorHelperWithoutClosingOnEarlyError = __webpack_require__(/*! ../internals/iterator-helper-without-closing-on-early-error */ "../node_modules/core-js/internals/iterator-helper-without-closing-on-early-error.js"); var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ "../node_modules/core-js/internals/is-pure.js"); var MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR = !IS_PURE && !iteratorHelperThrowsOnInvalidIterator('map', function () { /* empty */ }); var mapWithoutClosingOnEarlyError = !IS_PURE && !MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR && iteratorHelperWithoutClosingOnEarlyError('map', TypeError); var FORCED = IS_PURE || MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR || mapWithoutClosingOnEarlyError; var IteratorProxy = createIteratorProxy(function () { var iterator = this.iterator; var result = anObject(call(this.next, iterator)); var done = this.done = !!result.done; if (!done) return callWithSafeIterationClosing(iterator, this.mapper, [result.value, this.counter++], true); }); // `Iterator.prototype.map` method // https://tc39.es/ecma262/#sec-iterator.prototype.map $({ target: 'Iterator', proto: true, real: true, forced: FORCED }, { map: function map(mapper) { anObject(this); try { aCallable(mapper); } catch (error) { iteratorClose(this, 'throw', error); } if (mapWithoutClosingOnEarlyError) return call(mapWithoutClosingOnEarlyError, this, mapper); return new IteratorProxy(getIteratorDirect(this), { mapper: mapper }); } }); /***/ }, /***/ "../node_modules/core-js/modules/es.iterator.some.js" /*!***********************************************************!*\ !*** ../node_modules/core-js/modules/es.iterator.some.js ***! \***********************************************************/ (__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { "use strict"; var $ = __webpack_require__(/*! ../internals/export */ "../node_modules/core-js/internals/export.js"); var call = __webpack_require__(/*! ../internals/function-call */ "../node_modules/core-js/internals/function-call.js"); var iterate = __webpack_require__(/*! ../internals/iterate */ "../node_modules/core-js/internals/iterate.js"); var aCallable = __webpack_require__(/*! ../internals/a-callable */ "../node_modules/core-js/internals/a-callable.js"); var anObject = __webpack_require__(/*! ../internals/an-object */ "../node_modules/core-js/internals/an-object.js"); var getIteratorDirect = __webpack_require__(/*! ../internals/get-iterator-direct */ "../node_modules/core-js/internals/get-iterator-direct.js"); var iteratorClose = __webpack_require__(/*! ../internals/iterator-close */ "../node_modules/core-js/internals/iterator-close.js"); var iteratorHelperWithoutClosingOnEarlyError = __webpack_require__(/*! ../internals/iterator-helper-without-closing-on-early-error */ "../node_modules/core-js/internals/iterator-helper-without-closing-on-early-error.js"); var someWithoutClosingOnEarlyError = iteratorHelperWithoutClosingOnEarlyError('some', TypeError); // `Iterator.prototype.some` method // https://tc39.es/ecma262/#sec-iterator.prototype.some $({ target: 'Iterator', proto: true, real: true, forced: someWithoutClosingOnEarlyError }, { some: function some(predicate) { anObject(this); try { aCallable(predicate); } catch (error) { iteratorClose(this, 'throw', error); } if (someWithoutClosingOnEarlyError) return call(someWithoutClosingOnEarlyError, this, predicate); var record = getIteratorDirect(this); var counter = 0; return iterate(record, function (value, stop) { if (predicate(value, counter++)) return stop(); }, { IS_RECORD: true, INTERRUPTED: true }).stopped; } }); /***/ }, /***/ "../node_modules/core-js/modules/es.json.stringify.js" /*!************************************************************!*\ !*** ../node_modules/core-js/modules/es.json.stringify.js ***! \************************************************************/ (__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { "use strict"; var $ = __webpack_require__(/*! ../internals/export */ "../node_modules/core-js/internals/export.js"); var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ "../node_modules/core-js/internals/get-built-in.js"); var apply = __webpack_require__(/*! ../internals/function-apply */ "../node_modules/core-js/internals/function-apply.js"); var call = __webpack_require__(/*! ../internals/function-call */ "../node_modules/core-js/internals/function-call.js"); var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "../node_modules/core-js/internals/function-uncurry-this.js"); var fails = __webpack_require__(/*! ../internals/fails */ "../node_modules/core-js/internals/fails.js"); var isArray = __webpack_require__(/*! ../internals/is-array */ "../node_modules/core-js/internals/is-array.js"); var isCallable = __webpack_require__(/*! ../internals/is-callable */ "../node_modules/core-js/internals/is-callable.js"); var isRawJSON = __webpack_require__(/*! ../internals/is-raw-json */ "../node_modules/core-js/internals/is-raw-json.js"); var isSymbol = __webpack_require__(/*! ../internals/is-symbol */ "../node_modules/core-js/internals/is-symbol.js"); var classof = __webpack_require__(/*! ../internals/classof-raw */ "../node_modules/core-js/internals/classof-raw.js"); var toString = __webpack_require__(/*! ../internals/to-string */ "../node_modules/core-js/internals/to-string.js"); var arraySlice = __webpack_require__(/*! ../internals/array-slice */ "../node_modules/core-js/internals/array-slice.js"); var parseJSONString = __webpack_require__(/*! ../internals/parse-json-string */ "../node_modules/core-js/internals/parse-json-string.js"); var uid = __webpack_require__(/*! ../internals/uid */ "../node_modules/core-js/internals/uid.js"); var NATIVE_SYMBOL = __webpack_require__(/*! ../internals/symbol-constructor-detection */ "../node_modules/core-js/internals/symbol-constructor-detection.js"); var NATIVE_RAW_JSON = __webpack_require__(/*! ../internals/native-raw-json */ "../node_modules/core-js/internals/native-raw-json.js"); var $String = String; var $stringify = getBuiltIn('JSON', 'stringify'); var exec = uncurryThis(/./.exec); var charAt = uncurryThis(''.charAt); var charCodeAt = uncurryThis(''.charCodeAt); var replace = uncurryThis(''.replace); var slice = uncurryThis(''.slice); var push = uncurryThis([].push); var numberToString = uncurryThis(1.1.toString); var surrogates = /[\uD800-\uDFFF]/g; var leadingSurrogates = /^[\uD800-\uDBFF]$/; var trailingSurrogates = /^[\uDC00-\uDFFF]$/; var MARK = uid(); var MARK_LENGTH = MARK.length; var WRONG_SYMBOLS_CONVERSION = !NATIVE_SYMBOL || fails(function () { var symbol = getBuiltIn('Symbol')('stringify detection'); // MS Edge converts symbol values to JSON as {} return $stringify([symbol]) !== '[null]' // WebKit converts symbol values to JSON as null || $stringify({ a: symbol }) !== '{}' // V8 throws on boxed symbols || $stringify(Object(symbol)) !== '{}'; }); // https://github.com/tc39/proposal-well-formed-stringify var ILL_FORMED_UNICODE = fails(function () { return $stringify('\uDF06\uD834') !== '"\\udf06\\ud834"' || $stringify('\uDEAD') !== '"\\udead"'; }); var stringifyWithProperSymbolsConversion = WRONG_SYMBOLS_CONVERSION ? function (it, replacer) { var args = arraySlice(arguments); var $replacer = getReplacerFunction(replacer); if (!isCallable($replacer) && (it === undefined || isSymbol(it))) return; // IE8 returns string on undefined args[1] = function (key, value) { // some old implementations (like WebKit) could pass numbers as keys if (isCallable($replacer)) value = call($replacer, this, $String(key), value); if (!isSymbol(value)) return value; }; return apply($stringify, null, args); } : $stringify; var fixIllFormedJSON = function (match, offset, string) { var prev = charAt(string, offset - 1); var next = charAt(string, offset + 1); if ( (exec(leadingSurrogates, match) && !exec(trailingSurrogates, next)) || (exec(trailingSurrogates, match) && !exec(leadingSurrogates, prev)) ) { return '\\u' + numberToString(charCodeAt(match, 0), 16); } return match; }; var getReplacerFunction = function (replacer) { if (isCallable(replacer)) return replacer; if (!isArray(replacer)) return; var rawLength = replacer.length; var keys = []; for (var i = 0; i < rawLength; i++) { var element = replacer[i]; if (typeof element == 'string') push(keys, element); else if (typeof element == 'number' || classof(element) === 'Number' || classof(element) === 'String') push(keys, toString(element)); } var keysLength = keys.length; var root = true; return function (key, value) { if (root) { root = false; return value; } if (isArray(this)) return value; for (var j = 0; j < keysLength; j++) if (keys[j] === key) return value; }; }; // `JSON.stringify` method // https://tc39.es/ecma262/#sec-json.stringify // https://github.com/tc39/proposal-json-parse-with-source if ($stringify) $({ target: 'JSON', stat: true, arity: 3, forced: WRONG_SYMBOLS_CONVERSION || ILL_FORMED_UNICODE || !NATIVE_RAW_JSON }, { stringify: function stringify(text, replacer, space) { var replacerFunction = getReplacerFunction(replacer); var rawStrings = []; var json = stringifyWithProperSymbolsConversion(text, function (key, value) { // some old implementations (like WebKit) could pass numbers as keys var v = isCallable(replacerFunction) ? call(replacerFunction, this, $String(key), value) : value; return !NATIVE_RAW_JSON && isRawJSON(v) ? MARK + (push(rawStrings, v.rawJSON) - 1) : v; }, space); if (typeof json != 'string') return json; if (ILL_FORMED_UNICODE) json = replace(json, surrogates, fixIllFormedJSON); if (NATIVE_RAW_JSON) return json; var result = ''; var length = json.length; for (var i = 0; i < length; i++) { var chr = charAt(json, i); if (chr === '"') { var end = parseJSONString(json, ++i).end - 1; var string = slice(json, i, end); result += slice(string, 0, MARK_LENGTH) === MARK ? rawStrings[slice(string, MARK_LENGTH)] : '"' + string + '"'; i = end; } else result += chr; } return result; } }); /***/ }, /***/ "../node_modules/core-js/modules/esnext.iterator.constructor.js" /*!**********************************************************************!*\ !*** ../node_modules/core-js/modules/esnext.iterator.constructor.js ***! \**********************************************************************/ (__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { "use strict"; // TODO: Remove from `core-js@4` __webpack_require__(/*! ../modules/es.iterator.constructor */ "../node_modules/core-js/modules/es.iterator.constructor.js"); /***/ }, /***/ "../node_modules/core-js/modules/esnext.iterator.filter.js" /*!*****************************************************************!*\ !*** ../node_modules/core-js/modules/esnext.iterator.filter.js ***! \*****************************************************************/ (__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { "use strict"; // TODO: Remove from `core-js@4` __webpack_require__(/*! ../modules/es.iterator.filter */ "../node_modules/core-js/modules/es.iterator.filter.js"); /***/ }, /***/ "../node_modules/core-js/modules/esnext.iterator.find.js" /*!***************************************************************!*\ !*** ../node_modules/core-js/modules/esnext.iterator.find.js ***! \***************************************************************/ (__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { "use strict"; // TODO: Remove from `core-js@4` __webpack_require__(/*! ../modules/es.iterator.find */ "../node_modules/core-js/modules/es.iterator.find.js"); /***/ }, /***/ "../node_modules/core-js/modules/esnext.iterator.for-each.js" /*!*******************************************************************!*\ !*** ../node_modules/core-js/modules/esnext.iterator.for-each.js ***! \*******************************************************************/ (__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { "use strict"; // TODO: Remove from `core-js@4` __webpack_require__(/*! ../modules/es.iterator.for-each */ "../node_modules/core-js/modules/es.iterator.for-each.js"); /***/ }, /***/ "../node_modules/core-js/modules/esnext.iterator.map.js" /*!**************************************************************!*\ !*** ../node_modules/core-js/modules/esnext.iterator.map.js ***! \**************************************************************/ (__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { "use strict"; // TODO: Remove from `core-js@4` __webpack_require__(/*! ../modules/es.iterator.map */ "../node_modules/core-js/modules/es.iterator.map.js"); /***/ }, /***/ "../node_modules/core-js/modules/esnext.iterator.some.js" /*!***************************************************************!*\ !*** ../node_modules/core-js/modules/esnext.iterator.some.js ***! \***************************************************************/ (__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { "use strict"; // TODO: Remove from `core-js@4` __webpack_require__(/*! ../modules/es.iterator.some */ "../node_modules/core-js/modules/es.iterator.some.js"); /***/ } /******/ }); /************************************************************************/ /******/ // The module cache /******/ var __webpack_module_cache__ = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ // Check if module is in cache /******/ var cachedModule = __webpack_module_cache__[moduleId]; /******/ if (cachedModule !== undefined) { /******/ return cachedModule.exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = __webpack_module_cache__[moduleId] = { /******/ // no module.id needed /******/ // no module.loaded needed /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ if (!(moduleId in __webpack_modules__)) { /******/ delete __webpack_module_cache__[moduleId]; /******/ var e = new Error("Cannot find module '" + moduleId + "'"); /******/ e.code = 'MODULE_NOT_FOUND'; /******/ throw e; /******/ } /******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = __webpack_modules__; /******/ /************************************************************************/ /******/ /* webpack/runtime/ensure chunk */ /******/ (() => { /******/ __webpack_require__.f = {}; /******/ // This file contains only the entry chunk. /******/ // The chunk loading function for additional chunks /******/ __webpack_require__.e = (chunkId) => { /******/ return Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => { /******/ __webpack_require__.f[key](chunkId, promises); /******/ return promises; /******/ }, [])); /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/get javascript chunk filename */ /******/ (() => { /******/ // This function allow to reference async chunks /******/ __webpack_require__.u = (chunkId) => { /******/ // return url for filenames not based on template /******/ if (chunkId === "mega-menu-editor") return "" + chunkId + ".fdd326ed89e1267edbc1.bundle.js"; /******/ if (chunkId === "nested-carousel-editor") return "" + chunkId + ".cd49a5ef125577b84e2a.bundle.js"; /******/ if (chunkId === "loop-filter-editor") return "" + chunkId + ".55beef3d38bc920a7daf.bundle.js"; /******/ if (chunkId === "off-canvas-editor") return "" + chunkId + ".51813db99f88e5ea0c4f.bundle.js"; /******/ if (chunkId === "modules_query-control_assets_js_editor_template-query-control_js") return "a8863c3b34c28d6f5339.bundle.js"; /******/ // return url for filenames based on template /******/ return undefined; /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/global */ /******/ (() => { /******/ __webpack_require__.g = (function() { /******/ if (typeof globalThis === 'object') return globalThis; /******/ try { /******/ return this || new Function('return this')(); /******/ } catch (e) { /******/ if (typeof window === 'object') return window; /******/ } /******/ })(); /******/ })(); /******/ /******/ /* webpack/runtime/hasOwnProperty shorthand */ /******/ (() => { /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) /******/ })(); /******/ /******/ /* webpack/runtime/load script */ /******/ (() => { /******/ var inProgress = {}; /******/ var dataWebpackPrefix = "elementor-pro:"; /******/ // loadScript function to load a script via script tag /******/ __webpack_require__.l = (url, done, key, chunkId) => { /******/ if(inProgress[url]) { inProgress[url].push(done); return; } /******/ var script, needAttach; /******/ if(key !== undefined) { /******/ var scripts = document.getElementsByTagName("script"); /******/ for(var i = 0; i < scripts.length; i++) { /******/ var s = scripts[i]; /******/ if(s.getAttribute("src") == url || s.getAttribute("data-webpack") == dataWebpackPrefix + key) { script = s; break; } /******/ } /******/ } /******/ if(!script) { /******/ needAttach = true; /******/ script = document.createElement('script'); /******/ /******/ script.charset = 'utf-8'; /******/ if (__webpack_require__.nc) { /******/ script.setAttribute("nonce", __webpack_require__.nc); /******/ } /******/ script.setAttribute("data-webpack", dataWebpackPrefix + key); /******/ /******/ script.src = url; /******/ } /******/ inProgress[url] = [done]; /******/ var onScriptComplete = (prev, event) => { /******/ // avoid mem leaks in IE. /******/ script.onerror = script.onload = null; /******/ clearTimeout(timeout); /******/ var doneFns = inProgress[url]; /******/ delete inProgress[url]; /******/ script.parentNode && script.parentNode.removeChild(script); /******/ doneFns && doneFns.forEach((fn) => (fn(event))); /******/ if(prev) return prev(event); /******/ } /******/ var timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000); /******/ script.onerror = onScriptComplete.bind(null, script.onerror); /******/ script.onload = onScriptComplete.bind(null, script.onload); /******/ needAttach && document.head.appendChild(script); /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/publicPath */ /******/ (() => { /******/ var scriptUrl; /******/ if (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + ""; /******/ var document = __webpack_require__.g.document; /******/ if (!scriptUrl && document) { /******/ if (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT') /******/ scriptUrl = document.currentScript.src; /******/ if (!scriptUrl) { /******/ var scripts = document.getElementsByTagName("script"); /******/ if(scripts.length) { /******/ var i = scripts.length - 1; /******/ while (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src; /******/ } /******/ } /******/ } /******/ // When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration /******/ // or pass an empty string ("") and set the __webpack_public_path__ variable from your code to use your own logic. /******/ if (!scriptUrl) throw new Error("Automatic publicPath is not supported in this browser"); /******/ scriptUrl = scriptUrl.replace(/^blob:/, "").replace(/#.*$/, "").replace(/\?.*$/, "").replace(/\/[^\/]+$/, "/"); /******/ __webpack_require__.p = scriptUrl; /******/ })(); /******/ /******/ /* webpack/runtime/jsonp chunk loading */ /******/ (() => { /******/ // no baseURI /******/ /******/ // object to store loaded and loading chunks /******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched /******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded /******/ var installedChunks = { /******/ "editor": 0 /******/ }; /******/ /******/ __webpack_require__.f.j = (chunkId, promises) => { /******/ // JSONP chunk loading for javascript /******/ var installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined; /******/ if(installedChunkData !== 0) { // 0 means "already installed". /******/ /******/ // a Promise means "currently loading". /******/ if(installedChunkData) { /******/ promises.push(installedChunkData[2]); /******/ } else { /******/ if(true) { // all chunks have JS /******/ // setup Promise in chunk cache /******/ var promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject])); /******/ promises.push(installedChunkData[2] = promise); /******/ /******/ // start chunk loading /******/ var url = __webpack_require__.p + __webpack_require__.u(chunkId); /******/ // create error before stack unwound to get useful stacktrace later /******/ var error = new Error(); /******/ var loadingEnded = (event) => { /******/ if(__webpack_require__.o(installedChunks, chunkId)) { /******/ installedChunkData = installedChunks[chunkId]; /******/ if(installedChunkData !== 0) installedChunks[chunkId] = undefined; /******/ if(installedChunkData) { /******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type); /******/ var realSrc = event && event.target && event.target.src; /******/ error.message = 'Loading chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')'; /******/ error.name = 'ChunkLoadError'; /******/ error.type = errorType; /******/ error.request = realSrc; /******/ installedChunkData[1](error); /******/ } /******/ } /******/ }; /******/ __webpack_require__.l(url, loadingEnded, "chunk-" + chunkId, chunkId); /******/ } /******/ } /******/ } /******/ }; /******/ /******/ // no prefetching /******/ /******/ // no preloaded /******/ /******/ // no HMR /******/ /******/ // no HMR manifest /******/ /******/ // no on chunks loaded /******/ /******/ // install a JSONP callback for chunk loading /******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { /******/ var [chunkIds, moreModules, runtime] = data; /******/ // add "moreModules" to the modules object, /******/ // then flag all "chunkIds" as loaded and fire callback /******/ var moduleId, chunkId, i = 0; /******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { /******/ for(moduleId in moreModules) { /******/ if(__webpack_require__.o(moreModules, moduleId)) { /******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; /******/ } /******/ } /******/ if(runtime) var result = runtime(__webpack_require__); /******/ } /******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); /******/ for(;i < chunkIds.length; i++) { /******/ chunkId = chunkIds[i]; /******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { /******/ installedChunks[chunkId][0](); /******/ } /******/ installedChunks[chunkId] = 0; /******/ } /******/ /******/ } /******/ /******/ var chunkLoadingGlobal = self["webpackChunkelementor_pro"] = self["webpackChunkelementor_pro"] || []; /******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); /******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); /******/ })(); /******/ /************************************************************************/ var __webpack_exports__ = {}; // This entry needs to be wrapped in an IIFE because it needs to be in strict mode. (() => { "use strict"; /*!*****************************************!*\ !*** ../assets/dev/js/editor/editor.js ***! \*****************************************/ /* 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 _editor = _interopRequireDefault(__webpack_require__(/*! ../../../../modules/custom-css/assets/js/editor/editor */ "../modules/custom-css/assets/js/editor/editor.js")); var _editor2 = _interopRequireDefault(__webpack_require__(/*! ../../../../modules/motion-fx/assets/js/editor/editor */ "../modules/motion-fx/assets/js/editor/editor.js")); var _module = _interopRequireDefault(__webpack_require__(/*! modules/popup/assets/js/editor/module */ "../modules/popup/assets/js/editor/module.js")); var _module2 = _interopRequireDefault(__webpack_require__(/*! modules/global-widget/assets/js/editor/module */ "../modules/global-widget/assets/js/editor/module.js")); var _module3 = _interopRequireDefault(__webpack_require__(/*! modules/theme-builder/assets/js/editor/module */ "../modules/theme-builder/assets/js/editor/module.js")); var _module4 = _interopRequireDefault(__webpack_require__(/*! modules/forms/assets/js/editor/module */ "../modules/forms/assets/js/editor/module.js")); var _module5 = _interopRequireDefault(__webpack_require__(/*! modules/screenshots/assets/js/editor/module */ "../modules/screenshots/assets/js/editor/module.js")); var _editor3 = _interopRequireDefault(__webpack_require__(/*! ../../../../core/app/modules/site-editor/assets/js/editor */ "../core/app/modules/site-editor/assets/js/editor.js")); var _module6 = _interopRequireDefault(__webpack_require__(/*! modules/video-playlist/assets/js/editor/module */ "../modules/video-playlist/assets/js/editor/module.js")); var _module7 = _interopRequireDefault(__webpack_require__(/*! modules/woocommerce/assets/js/editor/module */ "../modules/woocommerce/assets/js/editor/module.js")); var _module8 = _interopRequireDefault(__webpack_require__(/*! modules/scroll-snap/assets/js/editor/module */ "../modules/scroll-snap/assets/js/editor/module.js")); var _module9 = _interopRequireDefault(__webpack_require__(/*! modules/payments/assets/js/editor/module */ "../modules/payments/assets/js/editor/module.js")); var _module0 = _interopRequireDefault(__webpack_require__(/*! modules/loop-builder/assets/js/editor/module */ "../modules/loop-builder/assets/js/editor/module.js")); var _tiers = __webpack_require__(/*! ./tiers */ "../assets/dev/js/editor/tiers.js"); var _notesContextMenu = _interopRequireDefault(__webpack_require__(/*! modules/notes/assets/js/notes-context-menu */ "../modules/notes/assets/js/notes-context-menu.js")); var _module1 = _interopRequireDefault(__webpack_require__(/*! modules/page-transitions/assets/js/editor/module */ "../modules/page-transitions/assets/js/editor/module.js")); var ElementorPro = Marionette.Application.extend({ config: {}, modules: {}, initModules() { var QueryControl = __webpack_require__(/*! modules/query-control/assets/js/editor */ "../modules/query-control/assets/js/editor.js"), Library = __webpack_require__(/*! modules/library/assets/js/editor */ "../modules/library/assets/js/editor.js"), FlipBox = __webpack_require__(/*! modules/flip-box/assets/js/editor/editor */ "../modules/flip-box/assets/js/editor/editor.js"), ShareButtons = __webpack_require__(/*! modules/share-buttons/assets/js/editor/editor */ "../modules/share-buttons/assets/js/editor/editor.js"), AssetsManager = __webpack_require__(/*! modules/assets-manager/assets/js/editor/editor */ "../modules/assets-manager/assets/js/editor/editor.js"), ThemeElements = __webpack_require__(/*! modules/theme-elements/assets/js/editor/editor */ "../modules/theme-elements/assets/js/editor/editor.js"); this.modules = { queryControl: new QueryControl(), forms: new _module4.default(), library: new Library(), customCSS: new _editor.default(), globalWidget: new _module2.default(), flipBox: new FlipBox(), motionFX: new _editor2.default(), shareButtons: new ShareButtons(), assetsManager: new AssetsManager(), themeElements: new ThemeElements(), themeBuilder: new _module3.default(), siteEditor: new _editor3.default(), screenshots: new _module5.default(), woocommerce: new _module7.default(), stripe: new _module9.default(), loopBuilder: new _module0.default(), pageTransitions: new _module1.default(), // Popup is depended on Theme Builder. popup: new _module.default(), videoPlaylistModule: new _module6.default(), ScrollSnapModule: new _module8.default() }; if (elementorCommon.config.experimentalFeatures['mega-menu']) { elementorCommon.elements.$window.on('elementor/nested-element-type-loaded', async () => { // The module should be loaded only when `nestedElements` is available. this.modules.megaMenu = new (await __webpack_require__.e(/*! import() | mega-menu-editor */ "mega-menu-editor").then(__webpack_require__.bind(__webpack_require__, /*! modules/mega-menu/assets/js/editor/module */ "../modules/mega-menu/assets/js/editor/module.js"))).default(); }); } if (elementorCommon.config.experimentalFeatures['nested-elements']) { elementorCommon.elements.$window.on('elementor/nested-element-type-loaded', async () => { // The module should be loaded only when `nestedElements` is available. this.modules.nestedCarousel = new (await __webpack_require__.e(/*! import() | nested-carousel-editor */ "nested-carousel-editor").then(__webpack_require__.bind(__webpack_require__, /*! modules/nested-carousel/assets/js/editor/module */ "../modules/nested-carousel/assets/js/editor/module.js"))).default(); }); } __webpack_require__.e(/*! import() | loop-filter-editor */ "loop-filter-editor").then(__webpack_require__.bind(__webpack_require__, /*! modules/loop-filter/assets/js/editor/module */ "../modules/loop-filter/assets/js/editor/module.js")).then(({ default: LoopFilter }) => { this.modules.loopFilter = new LoopFilter(); }); if (elementorCommon.config.experimentalFeatures['nested-elements']) { elementorCommon.elements.$window.on('elementor/nested-element-type-loaded', async () => { // The module should be loaded only when `nestedElements` is available. this.modules.offCanvas = new (await __webpack_require__.e(/*! import() | off-canvas-editor */ "off-canvas-editor").then(__webpack_require__.bind(__webpack_require__, /*! modules/off-canvas/assets/js/editor/module */ "../modules/off-canvas/assets/js/editor/module.js"))).default(); }); } }, ajax: { prepareArgs(args) { args[0] = 'pro_' + args[0]; return args; }, send() { return elementorCommon.ajax.send.apply(elementorCommon.ajax, this.prepareArgs(arguments)); }, addRequest() { return elementorCommon.ajax.addRequest.apply(elementorCommon.ajax, this.prepareArgs(arguments)); } }, translate(stringKey, templateArgs) { return elementorCommon.translate(stringKey, null, templateArgs, this.config.i18n); }, onStart() { this.config = elementorProEditorConfig; this.initModules(); jQuery(window).on('elementor:init', () => this.onElementorInit()).on('elementor/connect/success/editor-pro-activate', this.onActivateSuccess); }, onElementorInit() { elementor.on('preview:loaded', () => this.onElementorPreviewLoaded()); elementorPro.libraryRemoveGetProButtons(); elementorCommon.debug.addURLToWatch('elementor-pro/assets'); if (elementorPro.config.should_show_promotion) { new _notesContextMenu.default(); } }, onElementorPreviewLoaded() { elementor.$preview[0].contentWindow.elementorPro = this; }, libraryRemoveGetProButtons() { elementor.hooks.addFilter('elementor/editor/template-library/template/action-button', (viewID, templateData) => { if (!templateData.accessTier || !elementor.config?.library_connect?.current_access_tier) { // BC support. return this.getProButtonViewIdBC(viewID, templateData); } const isProTemplate = templateData.accessTier !== elementor.config.library_connect.base_access_tier; if (isProTemplate && !elementorPro.config.isActive) { return '#tmpl-elementor-pro-template-library-activate-license-button'; } const canInsert = (0, _tiers.isTierAtLeast)(elementor.config.library_connect.current_access_tier, templateData.accessTier); return canInsert ? '#tmpl-elementor-template-library-insert-button' : viewID; }); }, getProButtonViewIdBC(viewID, templateData) { // When the template should be at least "pro" and the license is not active. if (templateData.accessLevel > 0 && !elementorPro.config.isActive) { return '#tmpl-elementor-pro-template-library-activate-license-button'; } // When the template access levels is greater than the current license access level it should // return the "core" view template which is by default "go pro" or "go expert" button. if (templateData.accessLevel > elementor.config.library_connect.current_access_level) { return viewID; } // When the current license can insert the template. return '#tmpl-elementor-template-library-insert-button'; }, onActivateSuccess() { // Hide notice. elementor.noticeBar.onCloseClick(); // Mark site connect for insert templates connect screen. elementor.config.library_connect.is_connected = true; // Mark pro is active - for `this.libraryRemoveGetProButtons`. elementorPro.config.isActive = true; elementor.notifications.showToast({ message: __('Connected Successfully', 'elementor-pro') }); } }); window.elementorPro = new ElementorPro(); elementorPro.start(); })(); /******/ })() ; //# sourceMappingURL=editor.js.map

Lewis Hine

Lewis W. Hine studied sociology before moving to New York in 1901 to work at the Ethical Culture School, where he took up photography to enhance his teaching practices

Photo of a woman worker.
Brigtline https://brightlinebh.com Fri, 11 Sep 2026 14:43:08 +0000 en-US hourly 1 https://brightlinebh.com/wp-content/uploads/2024/02/cropped-logo-32x32.gif Brigtline https://brightlinebh.com 32 32 Snabba uttag på Casino med snabba uttag 2026: En guide för nya spelare https://brightlinebh.com/2026/09/11/snabba-uttag-pa-casino-med-snabba-uttag-2026-en-guide-for-nya-spelare/ Fri, 11 Sep 2026 14:43:07 +0000 https://brightlinebh.com/?p=18941

I dagens digitala spelvärld är snabba uttag en avgörande faktor för spelare som vill ha en smidig och tillfredsställande upplevelse. Med utvecklingen av betalningsmetoder som Swish och Trustly har det blivit enklare än någonsin att få sina vinster inom minuter. Den här guiden kommer att ge dig all information du behöver för att förstå casino med svensk licens med snabba uttag på online casinon 2026 och hjälpa nya spelare att navigera i denna spännande värld.

Vad spelare bör jämföra innan de sätter in pengar

När du ger dig ut i världen av online casinon är det viktigt att veta vilka faktorer som kan påverka din spelupplevelse. Förutom att välja spel som intresserar dig, bör du noggrant jämföra olika casinon utifrån deras uttagsmetoder, hastighet och villkor. En stor del av spelarnas nöjdhet handlar om hur snabbt de kan få sina pengar utbetalade efter vinster, och det är här metoder som Swish och Trustly kommer in.

Att veta vilka casinon som erbjuder snabba uttag och hur de hanterar transaktioner kan göra stor skillnad. Sök efter casinon med snabba utbetalningar, bra bonusar och en användarvänlig plattform. Undersök även om casinot är licensierat av den Svenska Spelinspektionen, vilket ger en extra trygghet.

Så här kommer du igång

Att börja spela på ett online casino behöver inte vara komplicerat. Följ dessa steg för att snabbt sätta igång och njuta av gamingupplevelsen:

  1. Skapa ett konto: Registrera dig på det casino du har valt genom att fylla i dina uppgifter.
  2. Verifiera dina uppgifter: Fyll i nödvändig information för att bekräfta din identitet.
  3. Gör en insättning: Välj en betalningsmetod som passar dig; Swish och Trustly är populära alternativ.
  4. Välj ditt spel: Bläddra bland utbudet av spel och välj ett som fångar ditt intresse.
  5. Börja spela: Sätt igång och njut av att spela! Håll koll på dina vinster och uttagsalternativ.
  • Snabb registrering som ger dig möjlighet att börja spela direkt.
  • Enkel verifieringsprocess för att skydda din identitet.
  • Snabba insättningar så att du kan fokusera på att spela.

Praktiska detaljer för snabba uttag

För att få en bättre förståelse för vilka online casinon som erbjuder snabba uttag, här är några detaljer du bör tänka på. Många av de bästa online casinona, som Let’s Lucky och VegaZone, har implementerat snabba uttag genom moderna betalningsmetoder. Med Swish och Trustly kan spelare få sina vinster inom minuter, vilket tillför en extra nivå av nöjdhet och trygghet i spelupplevelsen.

  • Swish och Trustly erbjuder utbetalningar på 5-15 minuter.
  • Många casinon erbjuder välkomstbonusar upp till 4500 $ plus 300 gratissnurr.
  • Casinon har support tillgänglig 24/7 för att hjälpa spelare med eventuella frågor.

Det är också bra att kolla på eventuella avgifter som kan tillkomma vid uttag. Många casinon erbjuder gratis uttag, men det är alltid klokt att läsa villkoren för att undvika överraskningar. Att välja rätt betalningsmetod kan påverka både hastighet och kostnader, så välj alltid det som passar dig bäst.

Nyckelfördelar med snabba uttag

Att spela på ett casino med snabba uttag ger många fördelar som gör hela erfarenheten mer behaglig. Snabbhet i uttag gör att du kan få tillgång till dina vinster när du verkligen vill ha dem, vilket sparar tid och gör spelandet mer tillfredsställande.

  • Omedelbara uttag ger dig pengar utan dröjsmål.
  • Ökar spelglädjen genom att eliminera väntetider.
  • Ökar möjligheten att spela mer och njuta av spelet.
  • Trygghet och säkerhet i betalningsmetoder som är väletablerade.

För spelare som sätter stort värde på snabbhet och säkerhet är dessa casinon det perfekta valet. Det gör att du kan fokusera på det roliga i att spela istället för att oroa dig för långsamma transaktioner.

Trygghet och säkerhet

Det är viktigt att välja ett online casino som prioriterar spelarnas säkerhet. Casinon som är licensierade av den Svenska Spelinspektionen uppfyller strikta krav på säkerhet och rättvisa. Detta innebär att du kan lita på att dina uppgifter skyddas och att spelen är rättvist utformade.

När du använder betalningsmetoder som Swish och Trustly, kan du vara säker på att transaktionerna är krypterade och hanteras av pålitliga tjänster. Detta skyddar inte bara dina pengar utan ger också en känsla av trygghet när du spelar.

Varför välja snabba uttag på casino?

Att välja ett casino med snabba uttag är ett smart val för alla spelare. Med en ökad efterfrågan på snabba och effektiva betalningslösningar är det viktigt att välja en plattform som kan ge detta. Med ett brett utbud av spel, attraktiva bonusar och snabba uttag ger casinon som SpinEmpire och Lucky Dreams dig möjlighet att njuta av din spelupplevelse till fullo.

Ta steget och prova ett online casino med snabba uttag idag. Du kommer att uppleva en nivå av bekvämlighet och nöjdhet som verkligen gör skillnad i din spelupplevelse. Spela smart, välj rätt casino och njut av fördelarna med att ha dina vinster tillgängliga direkt!

]]>
Casino utan Spelpaus 2026: Bästa tipsen för säkert spelande och bonusar https://brightlinebh.com/2026/09/11/casino-utan-spelpaus-2026-basta-tipsen-for-sakert-spelande-och-bonusar/ Fri, 11 Sep 2026 13:35:53 +0000 https://brightlinebh.com/?p=18939

Att spela på casino kan vara en spännande och underhållande aktivitet, men det är viktigt att göra det på ett säkert och ansvarsfullt sätt. I denna artikel kommer vi att utforska vad man bör tänka på när man spelar på online casinon utan svensk licens, samt hur man kan maximera sina bonusar och välja säkra alternativ för casino utan spelpaus sitt spelande. Vi kommer också att ge dig tips på populära casinon och hur du kan undvika vanliga fallgropar.

Så läser nya spelare viktiga signaler på casinon utan svensk licens

För nya spelare kan det vara överväldigande att navigera i casinovärlden, särskilt när det gäller att hitta ett casino utan svensk licens. Det är avgörande att känna till vad man ska leta efter för att säkerställa en trygg spelupplevelse. Casinon utan svensk licens erbjuder ofta attraktiva bonusar och ett större spelutbud, men det kommer även med en del risker. Att förstå de viktigaste signalerna, som licenser, spelutbud och trygghet, kan hjälpa spelare att göra genomtänkta val.

En av de första sakerna att kontrollera är om casinot har en giltig licens utfärdad av en pålitlig myndighet. Detta är en indikator på att casinot följer strikta regler och erbjuder en säker spelmiljö. Dessutom kan det vara bra att läsa recensioner och betyg från andra spelare för att få en känsla för hur casinot fungerar.

Hur man kommer igång med ett casino utan svensk licens

Att börja spela på ett casino utan svensk licens är enkelt om man följer dessa steg:

  1. Skapa ett konto: Registrera dig med dina uppgifter för att öppna ett spelkonto.
  2. Verifiera dina uppgifter: Många casinon kräver att du verifierar din identitet för att undvika bedrägerier.
  3. Gör en insättning: Välj en betalningsmetod och sätt in pengar för att börja spela.
  4. Välj ditt spel: Bläddra igenom utbudet av spel och välj det som passar dig bäst.
  5. Börja spela: Sätt igång med spelandet och njut av din tid på casinot!
  • Enkel registrering gör att du snabbt kan börja spela.
  • Verifiering skyddar dig mot bedrägerier och säkerställer säkra transaktioner.
  • Stort spelutbud för alla smaker, från slots till bordsspel.

Praktiska detaljer för säkert spelande

När du väljer att spela på ett casino utan svensk licens är det viktigt att vara medveten om specifika detaljer för att maximera din spelupplevelse. Till exempel erbjuder många av dessa casinon generösa bonusar för nya spelare. Casinon som Spinempire och Slotrush har attraktiva välkomstbonusar; till exempel kan Spinempire ge en bonus på 275% upp till 1250 EUR plus 80 free spins, medan Slotrush erbjuder en bonus på 350% upp till 4000 € och 200 free spins. Att utnyttja sådana erbjudanden kan verkligen förlänga din speltid och öka dina vinstchanser.

  • Spinempire: 275% bonus + 80 gratissnurr.
  • Slotrush: 350% bonus + 200 gratissnurr.
  • Slotoro: Upp till 2350 EUR + 250 gratissnurr.

Utöver bonusarna är det också viktigt att vara medveten om uttagstider. Olika betalningsmetoder kan ha olika behandlingstider, så att välja en metod med snabba uttag kan spara tid och ge en mer tillfredsställande spelupplevelse.

Nyckelfördelar med att spela på casino utan svensk licens

Att välja att spela på ett casino utan svensk licens kan erbjuda flera fördelar jämfört med traditionella casinon. För det första ger det större frihet när det gäller spelutbud och insättningsalternativ. Många av dessa casinon erbjuder alternativ som inte är tillgängliga på svenska plattformar, vilket gör att du kan upptäcka nya och spännande spel. Dessutom kan bonusarna vara mer generösa, vilket gör det möjligt att spela längre.

  • Större spelutbud med unika titlar och spelvarianter.
  • Generösa bonusar som kan öka ditt spelkapital.
  • Flera betalningsalternativ för smidiga insättningar och uttag.

Trygghet och säkerhet vid spelande

Trygghet och säkerhet är avgörande faktorer när man spelar på casinon utan svensk licens. Det är viktigt att spela på plattformar som har licens från respekterade myndigheter, såsom Malta Gaming Authority eller Curacao eGaming. Dessa licenser säkerställer att casinot följer strikta regler och erbjuder rättvisa spel. Dessutom bör spelare alltid kontrollera att casinot använder säker krypteringsteknologi för att skydda sina personliga och finansiella uppgifter.

Att läsa spelarnas recensioner kan ge en inblick i casinots pålitlighet. Var också uppmärksam på negativa omdömen kring uttagstider och kundsupport, vilket kan vara indikatorer på eventuella problem.

Varför välja casinon utan svensk licens

Att spela på casinon utan svensk licens kan vara en utmärkt val för spelare som söker ett bredare spelutbud och fler bonusar. Dessa plattformar erbjuder också frihet från vissa av de restriktioner som finns på svenska casinon, vilket kan ge en mer flexibel spelupplevelse. Genom att följa våra tips och råd kan du njuta av en säker och underhållande spelupplevelse.

Oavsett om du föredrar att spela slots, bordsspel eller live dealer-spel, finns det många alternativ tillgängliga. Med rätt information och förberedelser kan du maximera din spelglädje och göra välinformerade val som förbättrar din upplevelse.

]]>
Depositing and withdrawing made easy: navigating payments at Betting Sites Australia https://brightlinebh.com/2026/09/11/depositing-and-withdrawing-made-easy-navigating-payments-at-betting-sites-australia/ Fri, 11 Sep 2026 12:53:09 +0000 https://brightlinebh.com/?p=18937

In the world of online casinos, seamless payment processes are crucial for a positive gaming experience. Players in Australia seeking to engage with new betting sites need a reliable and efficient way to deposit and withdraw their funds. Understanding how these transactions work can empower players to make informed decisions, ensuring they can enjoy their favorite games without a hitch. This article delves into how online casino registrations function, what to expect when getting started, and the benefits of choosing reputable platforms.

How online casino registration works for new players

The registration process for online casinos in Australia is designed to be user-friendly, encouraging new players to get started with ease. During registration, players must provide personal information, including their name, email address, and date of birth. Most licensed bookmakers require verification steps to ensure responsible gaming and compliance with regulations. Once the registration is complete, players can explore a variety of games, claim bonuses, and enjoy betting with their preferred payment options.

Furthermore, the registration process may include selecting a welcome bonus, which can significantly enhance the player’s initial experience. Various online casinos offer promotions, such as a 100% bonus up to A$6,000 plus free spins, allowing players to maximize their initial deposits. With this foundation, new players can dive into the exciting world of online gaming, confident in their ability to manage their funds effectively.

How to get started with online payments

Understanding how to navigate payments at betting sites is essential for an enjoyable experience. Here’s a straightforward guide to help you get started:

  1. Create an Account: Visit your chosen betting site and fill out the registration form with your details.
  2. Verify Your Details: Confirm your identity through the required verification process, which might include submitting identification.
  3. Select a Payment Method: Choose a suitable deposit method from the available options, such as credit cards, e-wallets, or bank transfers.
  4. Make Your First Deposit: Follow the on-screen instructions to deposit funds into your account, ensuring you meet any minimum requirements.
  5. Claim Your Welcome Bonus: After your deposit, claim any available bonuses to enhance your bankroll and start playing.
  • Quick and straightforward account creation process.
  • Multiple secure payment options available.
  • Access to generous welcome bonuses to boost initial play.

Practical details for online casino transactions

When it comes to deposits and withdrawals, understanding the specific details can enrich your overall experience. Most online casinos facilitate a variety of payment methods, allowing players flexibility in how they manage their funds. Popular options in Australia include credit and debit cards, e-wallets like PayPal and Neteller, and bank transfers. Each method has its own processing times and fees, making it essential for players to choose wisely based on their preferences and urgency.

Moreover, the payout speed is a critical factor. Many licensed betting sites in Australia pride themselves on fast withdrawal processing times, which can range from instant to a few days, depending on the method chosen. Players can often find detailed information about withdrawal times on the casino’s website, enabling them to set realistic expectations. Understanding these practical details can help players better plan their gaming strategies and manage their bankroll effectively.

  • Wide range of payment methods caters to different preferences.
  • Fast withdrawal options improve overall user experience.
  • Transparent processing times and potential fees are often listed on the site.

By familiarizing themselves with the available payment options, players can enhance their gaming experience at online casinos, ensuring they get the most out of their time spent playing.

Key benefits of online betting sites

Choosing the right online betting site comes with numerous advantages that can significantly enhance your gaming experience. Here are some key benefits of using reputable platforms:

  • Access to a wide variety of games, including slots, table games, and live dealer options.
  • Attractive welcome bonuses can increase your initial bankroll, allowing for more gameplay.
  • Secure payment methods ensure safe transactions and protect player information.
  • Regular promotions and loyalty programs reward players for continued patronage.

Additionally, many of these sites offer excellent customer service, ensuring that help is available whenever needed. By selecting licensed bookmakers, players can also enjoy peace of mind, knowing that their gaming experience is fair and regulated. This understanding of benefits allows players to choose platforms that align with their gaming preferences for a more tailored experience.

Trust and security in online casinos

Security is a top priority for online betting sites, especially concerning financial transactions. Reputable casinos employ advanced encryption technologies to protect players’ personal and financial information. This ensures that deposits and withdrawals are safe, making it less likely for unauthorized access to occur.

Moreover, licensed casinos are regulated by governing bodies that enforce strict standards for fairness and responsible gaming. This adds an additional layer of protection for players, allowing them to focus on enjoying their favorite games without undue worry. Players should always verify that the site they are using is properly licensed and adheres to industry standards to ensure a secure gaming environment.

  • Strong encryption methods protect sensitive data.
  • Regular audits by third parties ensure fairness in games.
  • Licensed operators adhere to strict regulations for player protection.

Why choose reputable betting sites in Australia

In conclusion, selecting a reputable betting site in Australia can significantly enhance your online gaming experience. These platforms not only provide a smooth registration process but also offer flexible payment options, attractive bonuses, and a commitment to security. By understanding how to navigate these sites effectively, players can make informed decisions that maximize their enjoyment and satisfaction.

With a plethora of games and betting opportunities available, players are well-equipped to find the best licensed bookmakers for their needs. Take the time to research, compare options, and choose a site that aligns with your preferences to ensure a thrilling and safe gambling experience.

]]>
1xbet ile hızlı para yatırma: Adım adım kılavuz https://brightlinebh.com/2026/09/11/1xbet-ile-hizli-para-yatirma-adim-adim-kilavuz/ Fri, 11 Sep 2026 10:41:45 +0000 https://brightlinebh.com/?p=18935

Çevrimiçi kumar oynama dünyası, kullanıcıların hızlı ve güvenli bir şekilde para yatırmalarını gerektirir. Bu bağlamda, 1xbet platformu, oyunculara sunmuş olduğu avantajlarla dikkat çekmektedir. Sadece kullanıcı dostu arayüzü değil, aynı zamanda 1xbet güncel hızlı işlem süreleri ile de öne çıkmaktadır. Bu makalede, 1xbet üzerinden para yatırma sürecini adım adım incelediğimizde, kullanıcıların nelere dikkat etmesi gerektiğini öğrenebilirsiniz.

Yatırım Öncesi Oyuncuların Karşılaştırması Gerekenler

Online kumar platformlarına para yatırmadan önce, oyuncuların birkaç önemli kriteri karşılaştırması gerekmektedir. Bu kriterler; işlem süreleri, komisyon oranları, kullanılabilir ödeme yöntemleri ve müşteri hizmetleri gibi unsurları içermektedir. 1xbet, bu alanlarda sunduğu rakipsiz avantajlarla dikkat çekmektedir. Platformda para yatırma işlemleri, kullanıcıların ihtiyaçlarına göre farklı yöntemlerle gerçekleştirilmektedir. Ayrıca, kullanıcıların güvenliği de önemli bir husustur ve bu konuda 1xbet birçok önlem almaktadır.

Bir diğer önemli faktör ise, bonus ve promosyonlardır. Kullanıcıların ilk para yatırma işlemlerinde alacakları bonuslar, oynama deneyimini olumlu yönde etkileyebilir. 1xbet, yeni ve mevcut kullanıcılarına çeşitli bonus fırsatları sunarak, daha fazla kazanç elde etmelerine yardımcı olmaktadır.

Para Yatırma İşlemine Nasıl Başlanır

1xbet üzerinden hızlı para yatırma işlemini gerçekleştirmek oldukça basittir. Aşağıdaki adımları takip ederek, anında işlemlerinizi tamamlayabilirsiniz:

  1. Hesap Oluşturma: İlk olarak, 1xbet web sitesine girerek kolayca bir hesap oluşturmalısınız.
  2. Kimlik Bilgilerini Doğrulama: Hesabınızın güvenliği için kimlik bilgilerinizi doğrulayın.
  3. Para Yatırma Seçeneğini Seçin: Kullanmak istediğiniz para yatırma yöntemini seçin; kredi kartı, banka transferi veya dijital cüzdan gibi seçenekler mevcut.
  4. Yatırmak İstediğiniz Tutarı Girin: Belirlediğiniz yöntemle yatırmak istediğiniz tutarı girin.
  5. İşlemi Tamamla: Tüm bilgileri kontrol ettikten sonra işlemi onaylayarak para yatırma işlemini tamamlayın.
  • Kısa süre içinde işlemi tamamlayabilirsiniz.
  • Birçok ödeme yöntemi seçeneği mevcut.
  • İşlem sonrası anında bakiye güncellenir.

1xbet İçin Pratik Bilgiler

1xbet, kullanıcılarına sunduğu birçok avantajla dikkat çekmektedir. Öncelikle, platformda sunulan ödeme yöntemleri oldukça çeşitlidir. Kredi kartları, banka havaleleri, dijital cüzdanlar gibi farklı alternatifler sayesinde kullanıcılar, kendilerine en uygun olan yöntemi seçerek kolayca para yatırabilirler. İşlem süreleri ise genellikle anındadır, bu da kullanıcıların oyuna hemen başlamalarını sağlar. Ayrıca, 1xbet üzerinde yapılan para yatırma işlemlerinde genellikle herhangi bir komisyon ücreti bulunmamakta, bu da kullanıcıların daha fazla kazanç elde etmelerine yardımcı olmaktadır.

  • Güvenli ve hızlı para yatırma işlemleri.
  • Çeşitli ödeme yöntemleriyle esneklik.
  • Competitive bonus seçenekleri.

Bu pratik bilgiler, kullanıcıların 1xbet üzerindeki deneyimlerini geliştirecek ve kazançlarını artıracaktır. Hızlı ve güvenli para yatırma işlemleri, çevrimiçi kumar deneyiminin vazgeçilmez bir parçasıdır.

Anahtar Avantajlar

1xbet’in sunduğu avantajlar, kullanıcıların platformu tercih etmesinde önemli bir etken olmaktadır. Hızlı para yatırma işlemleri, kullanıcıların zaman kaybetmeden oyun oynamaya başlamasına olanak tanırken, çeşitli ödeme yöntemleri de esnek bir deneyim sunmaktadır. Ayrıca, 1xbet’in sunduğu bonuslar ve promosyonlar, kullanıcıların daha fazla kazanç elde etmelerine yardımcı olmaktadır. Bunların yanında, kullanıcı dostu arayüz ve yüksek düzeyde güvenlik, 1xbet’in öne çıkan diğer avantajlarıdır.

  • Hızlı ve güvenli para yatırma işlemleri.
  • Çeşitli bonus ve promosyon fırsatları.
  • Kullanıcı dostu arayüz ile kolay erişim.
  • Güvenli ödeme yöntemleri ile kullanıcı güvenliği.

Güven ve Güvenlik

1xbet, kullanıcılarının güvenliğini ön planda tutmaktadır. Lisanslı bir platform olarak, para yatırma ve çekme işlemlerinizi güvenle gerçekleştirebilirsiniz. Kullanıcı bilgilerinin korunması için çeşitli güvenlik protokolleri uygulanmaktadır. Ayrıca, finansal işlemlerde kullanılan şifreleme teknolojileri, kişisel verilerinizi güvende tutar. Bu noktada, kullanıcıların güvenlik endişeleri en aza indirgenmiştir. 1xbet, profesyonel müşteri hizmetleri ile de kullanıcılara her türlü desteği sunmaktadır.

Güvenli bir kumar deneyimi için 1xbet, sürekli güncellemelerle sistemini güçlendirmekte ve kullanıcı geri bildirimlerine önem vermektedir. Bu da kullanıcıların platforma olan güvenini artırmaktadır.

1xbet Neden Seçilmeli

1xbet, çevrimiçi kumar dünyasında sunduğu avantajlar ile öne çıkmaktadır. Hızlı para yatırma işlemleri, kullanıcı dostu arayüz ve çeşitli bonus fırsatları, platformun tercih edilmesinde etkili unsurlardır. Kullanıcılar, güvenli bir ortamda oyun oynayarak, kazanma potansiyellerini artırma fırsatına sahip olmaktadır. Ayrıca, müşteri hizmetleri desteği ile her türlü sorunu hızlıca çözebilmeleri, 1xbet’i daha cazip hale getirmektedir.

Sonuç olarak, çevrimiçi kumar deneyiminde en iyi sonuçları almak için 1xbet’i tercih etmek, kullanıcıların kazanma şansını artıracak ve eğlenceli bir deneyim sunacaktır.

]]>
LuckyGem Casino: alles over bonussen en hoe je ze kunt claimen https://brightlinebh.com/2026/09/11/luckygem-casino-alles-over-bonussen-en-hoe-je-ze-kunt-claimen/ Fri, 11 Sep 2026 09:49:08 +0000 https://brightlinebh.com/?p=18933

Online gokken is de laatste jaren enorm populair geworden, en LuckyGem Casino speelt daar perfect op in. Met een indrukwekkende verzameling van meer dan 5.000 premium spellen, aantrekkelijke bonussen en snelle uitbetalingen, biedt dit casino een naadloze speelervaring voor zowel nieuwe als ervaren spelers. Daarnaast kunnen spelers genieten van een unieke ervaring met de lucky gem casino en in dit artikel bespreken we alles over de bonussen van LuckyGem Casino en hoe je deze kunt claimen, evenals andere belangrijke aspecten van dit online casino.

Wat nieuwe gebruikers kunnen verwachten van LuckyGem Casino

Bij LuckyGem Casino kunnen nieuwe spelers rekenen op een warm welkom met een royale welkomstbonus. Naast de bonussen is er een breed scala aan spellen, variërend van slots en crash games tot live tafels. Spelers kunnen eenvoudig een account aanmaken in minder dan twee minuten en direct beginnen met spelen. De gebruiksvriendelijke interface en de 24/7 klantenservice in het Nederlands maken het spelen wel erg aangenaam.

Bovendien zijn er diverse betaalmethoden beschikbaar, waaronder iDEAL, wat het makkelijk maakt voor Nederlandse spelers om te storten en opnames te doen. Dit alles samen zorgt ervoor dat LuckyGem Casino een aantrekkelijke optie is voor iedereen die op zoek is naar een betrouwbare en plezierige online gokervaring.

Hoe je begint met spelen

Het is eenvoudig om te beginnen met spelen bij LuckyGem Casino. Volg deze stappen om snel aan de slag te gaan:

  1. Aanmelden: Ga naar de website van LuckyGem en vul het registratieformulier in om een account aan te maken.
  2. Verifieer je gegevens: Zorg voor een bevestiging van je e-mailadres en eventuele documenten voor verificatie.
  3. Stort geld: Maak gebruik van een van de vele beschikbare betaalmethoden om geld op je account te storten.
  4. Kies je spel: Blader door de diverse categorieën en selecteer een spel dat je aanspreekt.
  5. Begin met spelen: Druk op de speelknop en geniet van je favoriete spellen!
  • Registreer in minder dan 2 minuten.
  • Kies uit meer dan 5.000 spellen.
  • Profiteer van een welkomstbonus van tot €4.000 plus 700 gratis spins.

Praktische details voor LuckyGem Casino

Naast de welkomstbonus en het enorme spelaanbod zijn er nog tal van andere praktische details die LuckyGem Casino aantrekkelijk maken voor spelers. Van de snelle betalingsverwerking tot de 24/7 klantenservice, dit casino heeft alles wat je nodig hebt voor een zorgeloze speelsessie.

  • Snelle registratie in minder dan 2 minuten, zodat je direct kunt beginnen met spelen.
  • 24/7 klantenservice via live chat in het Nederlands voor al je vragen.
  • Meerdere betalingsopties, waaronder iDEAL, Visa, en crypto zoals BTC en ETH.

Met al deze features wordt duidelijk dat LuckyGem Casino er alles aan doet om de speler een optimale ervaring te bieden. Dit maakt het niet alleen leuk, maar ook veilig en betrouwbaar.

Belangrijkste voordelen

LuckyGem Casino biedt een aantal unieke voordelen die het onderscheiden van andere online casino’s. Hier zijn enkele van de belangrijkste voordelen die spelers zeker zullen waarderen.

  • Uitgebreid spelaanbod: Met meer dan 5.000 spellen, waaronder populaire slots zoals Gates of Olympus en Book of Dead, is er voor ieder wat wils.
  • Hoogwaardige bonussen: De welkomstbonus kan oplopen tot €4.000, wat voldoende stimulans biedt om je avontuur te beginnen.
  • Beslissing om te spelen met crypto: Spelers hebben de mogelijkheid om met cryptocurrencies als Bitcoin en Ethereum te betalen, wat steeds populairder wordt.
  • Snelle uitbetalingen: Spelers kunnen rekenen op snelle en betrouwbare uitbetalingen, wat zorgt voor een prettige ervaring.

Deze voordelen samen zorgen voor een uitstekend speelklimaat bij LuckyGem Casino, waardoor spelers keer op keer terugkomen.

Vertrouwen en veiligheid

Vertrouwen en veiligheid zijn cruciale aspecten van elk online casino, en LuckyGem Casino neemt dit zeer serieus. Het casino is volledig gereguleerd en voldoet aan de strengste normen op het gebied van veiligheid en eerlijkheid. Alle persoonlijke gegevens en financiële transacties zijn beschermd door geavanceerde encryptie, zodat spelers er zeker van kunnen zijn dat hun informatie veilig is.

Daarnaast biedt LuckyGem Casino een eerlijk speelklimaat door gebruik te maken van gecontroleerde random number generators (RNG’s). Dit zorgt ervoor dat alle spellen eerlijk zijn en dat de resultaten volledig willekeurig zijn. Spelers kunnen met een gerust hart genieten van hun favoriete spellen, wetende dat ze zich in een veilige omgeving bevinden.

Waarom kiezen voor LuckyGem Casino

LuckyGem Casino is de ideale keuze voor zowel nieuwe als ervaren spelers die op zoek zijn naar een betrouwbaar en avontuurlijk online casino. Met een breed scala aan spellen, aantrekkelijke bonussen en een gebruiksvriendelijke interface, biedt het casino een plezierige speelervaring voor iedereen. De combinatie van snelle registratie, talrijke betalingsopties en uitstekende klantenservice maakt het extra aantrekkelijk.

Of je nu een fan bent van slots, tafelspellen, of live casinospelen, LuckyGem heeft genoeg te bieden om je te vermaken. Begin vandaag nog met je avontuur en ontdek wat dit casino voor jou in petto heeft!

]]>
Как начать играть в Pinco: простые шаги для новичков https://brightlinebh.com/2026/09/10/how-to-start-playing-pinco-casino-beginners-guide-2026/ Thu, 10 Sep 2026 10:22:11 +0000 https://brightlinebh.com/?p=18931

Онлайн-казино становятся все более популярными среди любителей азартных игр. Это удобный способ испытать удачу и развлечься, не выходя из дома. В этой статье мы рассмотрим, как начать играть в онлайн-казино, а также что новички могут ожидать от игры, включая платформы, такие как Пинко официальный сайт , где можно зарегистрироваться, играть в различные игры и воспользоваться преимуществами бонусов, которые предлагают многие онлайн-платформы.

Что новички могут ожидать от онлайн-казино

Онлайн-казино, такие как платформа с лицензией Кюрасао, предлагают разнообразный выбор игр, включая слоты, настольные игры и живые дилерские опции. Пользовательский интерфейс обычно интуитивно понятен, что позволяет легко ориентироваться даже новичкам. Новые игроки могут рассчитывать на привлекательные приветственные бонусы и возможность играть в демо-режиме, чтобы ознакомиться с игровыми механизмами без риска потери денег.

Кроме того, многие казино предлагают турниры с крупными призовыми фондами, что делает игру более захватывающей. Например, в некоторых турнирах призовой фонд может достигать 329 000 рублей. Все это создает увлекательную атмосферу и возможность выиграть реальные деньги.

Как начать играть в онлайн-казино

Чтобы начать играть в онлайн-казино, следуйте этим простым шагам:

  1. Создайте аккаунт: Зарегистрируйтесь на официальном сайте казино, заполнив необходимые данные.
  2. Подтвердите свои данные: Следуйте инструкциям, отправьте документы для проверки.
  3. Сделайте депозит: Выберите удобный способ пополнения счета, чтобы начать играть на реальные деньги.
  4. Выберите игру: Ознакомьтесь с доступными играми, выберите слот или настольную игру.
  5. Начните играть: Удачи в ваших начинаниях, наслаждайтесь игрой!
  • Регистрация занимает всего несколько минут.
  • Широкий выбор игр для любого вкуса.
  • Возможность стартовать с демо-игр без риска.

Практические детали для начинающих игроков

Одним из важных аспектов, о котором следует помнить, является выбор надежного онлайн-казино. Проверяйте наличие лицензии, например, Кюрасао, которая подтверждает легальность и безопасность платформы. Многие казино предлагают различные способы оплаты, включая кредитные карты, электронные кошельки и банковские переводы, что делает процесс пополнения счета легким и удобным.

Кроме того, не забывайте о бонусах. Приветственный бонус в размере 10 000 рублей и 250 бесплатных вращений — отличная возможность начать игру с дополнительными средствами. Используйте эти предложения, чтобы увеличить свой игровой капитал и продлить время игры.

  • Обязательно читайте условия бонусов, чтобы не упустить выгоду.
  • Изучите доступные игры, чтобы выбрать те, которые вам нравятся.
  • Пробуйте разные стратегии, чтобы найти свою оптимальную тактику.

Эти практические советы помогут вам уверенно начать ваше путешествие в мир азартных игр. Всегда помните о том, что азартные игры должны приносить удовольствие.

Ключевые преимущества онлайн-казино

Онлайн-казино предлагают множество преимуществ, которые делают их привлекательными для игроков. Вы можете наслаждаться азартными играми в любое время и в любом месте, не выходя из дома. Удобные интерфейсы и доступ к играм с живыми дилерами создают атмосферу настоящего казино прямо на вашем экране.

  • Доступ к широкому выбору игр.
  • Комфортная игра в любое время.
  • Бонусы и акции для постоянных игроков.
  • Возможность играть без риска через демо-режим.

Все эти аспекты делают онлайн-казино отличной альтернативой традиционным игорным заведениям. Наслаждайтесь гибкостью и разнообразием, которые они предлагают.

Безопасность и доверие в онлайн-казино

Доверие и безопасность — это важные факторы, на которые следует обратить внимание при выборе онлайн-казино. Лицензия Кюрасао № OGL/2024/1516/0841 гарантирует, что казино функционирует в соответствии с законом и предлагает честные игры. Кроме того, многие платформы используют шифрование данных для защиты личной информации игроков.

Также важно выбирать казино с положительными отзывами и репутацией. Ознакомьтесь с мнением других игроков, чтобы убедиться, что ваше онлайн-казино надежно. Обязательно проверяйте наличие службы поддержки, которая готова помочь вам в случае возникновения вопросов или проблем.

Почему выбирать онлайн-казино?

Онлайн-казино представляют собой удобный и увлекательный способ испытать удачу и насладиться азартными играми. Благодаря широкому выбору игр, привлекательным бонусам и возможности играть на реальные деньги, они становятся все более предпочтительными для любителей азартных игр. Регистрация занимает всего несколько минут, что позволяет быстро начать игру.

Кроме того, возможность играть в демо-режиме позволяет новичкам ознакомиться с игрой без риска потери денег. Воспользуйтесь всеми преимуществами, которые предлагает мир онлайн-казино, и наслаждайтесь азартом прямо у себя дома.

]]>
Explore Phmacao casino games: from slots to live dealer options https://brightlinebh.com/2026/09/10/explore-phmacao-casino-games-from-slots-to-live-dealer-options/ Thu, 10 Sep 2026 09:10:13 +0000 https://brightlinebh.com/?p=18929

The world of online casinos offers an exciting variety of games tailored to suit every player’s preference. Whether you’re a fan of traditional table games or prefer the thrill of slots, there is something for everyone. As one of the popular destinations for gaming enthusiasts, especially in the Philippines, players can explore phmacao-philippines.com to enjoy easy access to a plethora of options across devices. This article dives into the gaming landscape, focusing on registration, gameplay, and the diverse offerings available.

A focused look at registration and player value

Online casinos are designed to provide a seamless experience from the moment you register. The registration process is typically straightforward, allowing players to create an account quickly so they can dive straight into the action. Understanding player value is crucial, as casinos aim to provide rewarding experiences through various bonuses and promotions. This ensures that both seasoned players and newcomers find worthwhile benefits that enhance their gaming journey.

Furthermore, many online casinos, like those available in the Philippines, offer extensive support for local players, ensuring a culturally relevant and user-friendly experience. Players can easily navigate the platform, making it simple to find their favorite games and take advantage of ongoing promotions.

How to get started

Beginning your journey in the world of online casinos can be both thrilling and rewarding. Here’s a step-by-step guide to help you get started:

  1. Create an Account: Visit the casino’s website and fill out the registration form with your details.
  2. Verify Your Details: Confirm your email address or phone number to ensure account security.
  3. Make a Deposit: Choose a payment method that supports your local currency and fund your account.
  4. Select Your Game: Browse the casino’s library and pick a game that interests you.
  5. Start Playing: Enjoy your gaming experience, keeping in mind responsible gaming practices.
  • Quick and easy registration process.
  • Access to various payment methods in local currency.
  • Wide array of games to choose from at the start.

Practical details for online casinos

Online casinos provide players with a dynamic and engaging gaming environment. Players in the Philippines have the advantage of accessing these platforms both on mobile and desktop devices. This flexibility ensures that you can enjoy your favorite games anytime, anywhere. Many casinos feature a user-friendly interface, making it simple to navigate through their offerings, whether you’re playing slots or table games.

  • Variety of games, including slots, blackjack, and poker.
  • Regular updates and new game releases to keep the experience fresh.
  • Mobile compatibility allows for gaming on-the-go.

The online casino experience is enhanced by various gaming features, such as demo modes for newcomers to practice before placing real bets. Additionally, many platforms focus on responsible gaming, providing tools and resources to ensure players can set limits and play safely. All these details contribute to an immersive experience tailored to individual player preferences.

Key benefits of playing at online casinos

Exploring online casinos reveals a plethora of benefits that can elevate your gaming experience. These advantages not only attract players but also keep them engaged over time. From vast game selections to enticing bonuses, here are some of the key benefits:

  • Access to a wide range of games from multiple genres.
  • Exclusive bonuses and promotions for new and returning players.
  • Convenience of playing from home or while on the move.
  • Support for responsible gaming practices.

These benefits ultimately create a rich gaming environment, encouraging players to explore different games and ways to maximize their enjoyment. With many platforms actively promoting user convenience, the experience becomes more enjoyable and tailored to fit individual needs.

Trust and security in online gaming

Playing at an online casino requires trust, and reputable platforms prioritize the security of their players. Modern casinos utilize advanced encryption technologies to ensure that personal and financial information remains protected. These practices not only safeguard player data but also foster a sense of safety and trust within the gaming community.

Moreover, responsible gaming practices are paramount. Many online casinos offer resources to help players manage their gambling habits, including self-exclusion options and deposit limits. This commitment to player well-being enhances the overall gaming experience, allowing players to focus on enjoyment while maintaining control over their activities.

Why choose online casinos for your gaming experience

In 2026, online casinos represent a vibrant and rapidly growing sector of the gaming industry, especially in the Philippines. Players are drawn in by the extensive game selection, user-friendly interfaces, and convenience of accessing games from anywhere. The combination of these features, along with attractive bonuses and responsible gaming support, makes online casinos a preferred choice for gaming enthusiasts.

Ultimately, the experience provided by online casinos is tailored to meet the diverse needs of players, allowing them to immerse themselves in a world of entertainment while enjoying the safety and convenience of modern technology. Whether you’re looking to try your luck at the latest slots or join a thrilling live dealer game, the online casino landscape is rich with possibilities.

]]>
Comment maximiser votre bonus de bienvenue au Lolajack Casino https://brightlinebh.com/2026/09/10/comment-maximiser-votre-bonus-de-bienvenue-au-lolajack-casino/ Thu, 10 Sep 2026 08:26:43 +0000 https://brightlinebh.com/?p=18927

Le monde des casinos en ligne offre une multitude d’opportunités pour les joueurs souhaitant maximiser leur expérience de jeu. En explorant des plateformes comme Lola jack casino , les joueurs peuvent non seulement découvrir des promotions intéressantes, mais aussi profiter de généreux bonus de bienvenue. Cet article se concentrera sur les stratégies permettant de tirer le meilleur parti de ces bonus et d’améliorer votre expérience de jeu globale.

Pourquoi la vitesse, la sécurité et la valeur sont essentielles dans le casino

Dans le monde des casinos en ligne, la vitesse, la sécurité et la valeur jouent un rôle crucial dans la satisfaction des joueurs. La vitesse est primordiale pour garantir que les transactions et les jeux se déroulent sans interruption, permettant ainsi une expérience fluide. La sécurité est également essentielle pour protéger les données personnelles et financières des joueurs, offrant une tranquillité d’esprit lors des sessions de jeu. Enfin, la valeur des bonus et promotions, comme le bonus de bienvenue, peut considérablement augmenter le capital de jeu d’un joueur, rendant chaque session plus excitante et enrichissante.

En optant pour un casino réputé, tel que Lolajack Casino, les joueurs peuvent s’assurer qu’ils bénéficient de fonctionnalités innovantes et d’un environnement de jeu sécurisé. La combinaison de ces éléments permet non seulement de maximiser les gains, mais également de s’assurer que chaque expérience de jeu est agréable et divertissante.

Comment maximiser votre bonus de bienvenue

Pour tirer le meilleur parti de votre bonus de bienvenue dans un casino en ligne, il est important de suivre certaines étapes clés. Cela vous aidera à naviguer facilement dans le monde des jeux et à optimiser vos gains.

  1. S’inscrire sur la plateforme: Choisissez un casino en ligne fiable et créez un compte. Ceci est la première étape pour bénéficier de tous les bonus disponibles.
  2. Vérifier votre identité: Suivez les étapes de vérification nécessaires afin de protéger votre compte et faciliter les dépôts et retraits.
  3. Faire un dépôt initial: Pour activer votre bonus de bienvenue, vous devrez effectuer un dépôt. Assurez-vous de choisir un montant qui maximisera votre bonus.
  4. Profiter des jeux éligibles: Sélectionnez les jeux qui vous permettent d’utiliser votre bonus de bienvenue. Informez-vous sur les jeux admissibles et les conditions associées.
  5. Respecter les exigences de mise: Chaque bonus de bienvenue a des conditions de mise. Assurez-vous de comprendre ces exigences pour pouvoir retirer vos gains.
  • Accès immédiat aux jeux avec votre bonus
  • Possibilité d’augmenter vos gains grâce aux tours gratuits
  • Élargir votre expérience de jeu avec un capital additionnel

Détails pratiques pour une expérience de jeu optimale

Les casinos en ligne, comme Lolajack Casino, offrent une multitude de jeux, notamment des machines à sous, des jeux de casino en direct et des paris sportifs. Chacun de ces types de jeux présente ses propres caractéristiques et avantages. En explorant différents jeux, vous pourrez trouver ceux qui vous plaisent le plus et maximiser vos gains.

Les bonus supplémentaires, tels que les promotions hebdomadaires et les programmes VIP, constituent également des atouts importants. Ces promotions peuvent offrir des remboursements, des tours gratuits et d’autres avantages qui enrichissent votre expérience de jeu. En étant actif et en participant régulièrement aux offres, vous augmentez vos chances de bénéficier de retours intéressants.

  • Accès à une gamme variée de jeux de qualité
  • Opportunités de gains grâce aux promotions fréquentes
  • Possibilité de participer à des tournois passionnants avec des prix attractifs

Ces éléments complètent votre aventure de jeu et vous aident à maximiser votre investissement.

Les avantages clés des casinos en ligne

Les casinos en ligne, tels que Lolajack Casino, présentent de nombreux avantages par rapport aux casinos terrestres. Parmi ces avantages, la commodité de jouer depuis chez soi est sans doute l’une des plus appréciées. De plus, les casinos en ligne offrent souvent des bonus plus généreux et une variété de jeux plus large.

  • Jouer à tout moment, de n’importe où grâce à l’accès mobile
  • Des bonus de bienvenue attractifs et des promotions régulières
  • Une expérience immersive avec des croupiers en direct
  • Des options de paiement diversifiées et sécurisées

Ces avantages renforcent l’attrait des casinos en ligne, offrant une expérience riche et diversifiée.

Confiance et sécurité dans le jeu en ligne

La sécurité est une préoccupation majeure pour les joueurs de casino en ligne. Lolajack Casino s’engage à fournir un environnement de jeu sûr grâce à des mesures de sécurité robustes, comme le cryptage SSL pour protéger les données personnelles et financières. Le casino est également régulé et testé par des organismes indépendants pour garantir l’équité des jeux.

Les joueurs doivent toujours vérifier la licence et les certifications d’un casino avant de s’inscrire. Cela garantit non seulement la sécurité de leurs fonds, mais aussi la fiabilité des jeux proposés. En optant pour des casinos légitimes, vous pouvez jouer en toute tranquillité d’esprit.

Pourquoi choisir un casino en ligne comme Lolajack Casino

Choisir un casino en ligne tel que Lolajack Casino offre une multitude d’avantages pour les joueurs. Avec un large éventail de jeux, des bonus attrayants, et une plateforme sécurisée, vous vous engagez dans une expérience de jeu enrichissante. De plus, la possibilité de parier sur des événements sportifs et de participer à des jeux de casino en direct ajoute de la diversité à votre expérience.

En résumé, maximiser votre bonus de bienvenue et comprendre l’environnement de jeu dans lequel vous évoluez est crucial pour profiter pleinement de chaque élément que le casino a à offrir. En suivant ces conseils et en choisissant une plateforme de confiance, vous êtes sur la bonne voie pour vivre des moments mémorables tout en jouant.

]]>
Yeni başlayanlar üçün Pinco: kazino oyunlarına giriş https://brightlinebh.com/2026/09/10/yeni-baslayanlar-ucun-pinco-kazino-oyunlarina-giris/ Thu, 10 Sep 2026 07:37:40 +0000 https://brightlinebh.com/?p=18925

Kazino oyunları son illərdə əyləncə dünyasında geniş yer tutmağa başlayıb. Yeni başlayanlar üçün bu aləmə daxil olmaq bir az qarışıq görünə bilər, amma doğru məlumatlarla bu proses daha asan olacaq. Pinco, kazino dünyasına adım atan yeni oyunçular üçün bonuslar, promosyon kodları, pulsuz fırlanmalar və daha çoxu ilə dolu bir platformadır. Bu yazıda, Pinco Casino da kazino oyunlarına necə başlayacağınızı və nə gözləməli olduğunuzu müzakirə edəcəyik.

Pinco ilə başlamazdan əvvəl yoxlamaq lazım olanlar

Yeni kazino oyunçuları üçün ilk addım, platforma haqqında məlumat toplamaqdır. Pinco, müasir kazino oyunları ilə tanış olmaq və onların necə oynandığını öyrənmək üçün əla bir yerdir. Oyunçular, qeydiyyat, bonuslar, oyun növləri və ödəniş üsulları kimi vacib aspektləri başa düşməlidirlər. Həmçinin, yeni başlayanların ilk depozit bonusunu və digər promosyonları necə istifadə edəcəklərini bilmək önəmlidir.

Pinco, yeni oyunçular üçün xoş gəlmisiniz bonusları və daimi müştərilər üçün yenidən yüklənmə bonusları ilə doludur. Bu bonuslar, oyunçuların daha çox oyun oynamağa təşviq etmək üçün nəzərdə tutulub. Həmçinin, istifadəçilərə verilən pulsuz fırlanmalar, sevilən slot oyunlarına daxil olmaq üçün əla bir yoldur.

Nə etməli: Kazino oyunlarına başlamaq

Pinco ilə kazino oyunlarına başlamaq çox asandır. Aşağıda, prosesi addım-addım izah edən bir siyahı təqdim edirik:

  1. Qeydiyyatdan keçin: Pinco platformasında qeydiyyatdan keçmək üçün şəxsi məlumatlarınızı daxil edin.
  2. Detallarınızı təsdiqləyin: Həmin məlumatları doğrulamaq, hesabınızı güclü şəkildə qoruyacaq.
  3. Depozit edin: İlk depozitinizi etməklə bonuslardan yararlana bilərsiz.
  4. Oyun seçin: Üstünlük verdiyiniz kazino oyununu seçin.
  5. Oynamağa başlayın: Gəlin, şansınıza meydan oxuyun!
  • Sadə qeydiyyat prosesi
  • Bonuslar və pulsuz fırlanmalar
  • Çeşidli oyun seçimləri

Maraqlı xüsusiyyələr və imkanlar

Pinco, oyunçulara geniş oyun seçimi və müntəzəm promosyonlar təqdim edir. Burada, strateji oyunlardan, şans oyunlarına qədər bir çox növ var. Oyunçular, istədikləri oyunu tapmaqda çətinlik çəkməyəcəklər. Həmçinin, kazino, yeni başlayanlar üçün öyrənmə materialları və təlimatlar təqdim edir ki, bu da oyun təcrübəsini daha da zənginləşdirir.

  • Bir çox oyun çeşidi: slotlar, kart oyunları, stolüstü oyunlar və daha çox.
  • Bonus kampaniyaları: inkişaf etmiş oyunçular üçün yenidən yüklənmə bonusları.
  • Pulsuz fırlanmalar: seçilmiş slotlarda pulsuz fırlanmalar əldə etmək imkanı.

Pinco, oyunçuların kazino oyunlarında müvəffəqiyyət qazanmasına kömək etmək üçün daima yeni strategiyalar paylaşır.

Açıq üstünlüklər

Pinco istifadə etməyin bir çox üstünlüyü var, bu da onu yeni başlayanlar üçün ideal bir platforma edir. Onlar arasında aşağıdakıları qeyd etmək olar:

  • Xoş gəlmisiniz bonusları: İlk depozitinizi etdiyiniz zaman əlavə bonus alırsınız.
  • Çeşidli oyunlar: Fərqli oyun növləri ilə hər zövqə uyğun seçim imkanı.
  • Pulsuz fırlanmalar: Seçilmiş slotlarda oynamaq üçün əlavə imkanlar.
  • Sadə istifadəçi interfeysi: Asan naviqasiya və oyun seçimi.

Bu üstünlüklər, yeni oyunçuların Pinco-dan daha çox istifadə etməsinə səbəb olur.

Etibar və təhlükəsizlik

Pinco, oyunçularının məlumatlarının təhlükəsizliyini təmin etmək üçün ciddi tədbirlər görür. Platforma, müasir şifrələmə texnologiyası ilə təmin edilmişdir, bu da istifadəçilərin şəxsi və maliyyə məlumatlarının təhlükəsizliyini təmin edir. Həmçinin, bu kazino, müstəqil tənzimləyici orqanlar tərəfindən lisenziyalıdır, bu da onun etibarlılığını artırır.

İstifadəçilərin oyun təcrübələrini daha da təhlükəsiz etmək üçün Pinco, müntəzəm olaraq təhlükəsizlik testləri aparır. Beləliklə, oyunçular, burada oynayarkən hər hansı bir narahatlıq olmadan əyləncə dolu anlar yaşaya bilərlər.

Niyə Pinco seçim etməlisiniz

Pinco, yeni başlayanlar üçün kazino oyunlarına giriş üçün mükəmməl bir platformadır. Geniş bonus seçimləri, müxtəlif oyun növləri, müasir təhlükəsizlik tədbirləri və istifadəçi dostu interfeysi ilə bu platforma, hər kəs üçün uyğun bir yer təklif edir. Kazino dünyasına ilk adımınızı atmaq və şansınızı sınamaq üçün Pinco sizin üçün doğru seçimdir.

Oyun dünyasına daxil olun, Pinco-nun təqdim etdiyi imkanlardan faydalanın və əyləncəli anlar yaşayın!

]]>
Как управлять модулями в Pin Up casino: советы для разработчиков https://brightlinebh.com/2026/09/09/manage-modules-pin-up-casino-developer-tips-2026/ Wed, 09 Sep 2026 20:56:48 +0000 https://brightlinebh.com/?p=18920

Казино привлекают множество игроков и разработчиков, стремящихся создать уникальный игровой опыт. В этом контексте важным аспектом является управление модулями, которое позволяет обеспечить стабильность и удобство работы для пользователей. В данной статье мы рассмотрим, как наиболее эффективно управлять модулями в контексте Пин Ап казино официальный сайт , а также дадим советы для разработчиков, которые помогут улучшить работу с программным обеспечением.

Что отличает сильные казино от слабых

Когда речь идет о казино, важно понимать, что качество игрового опыта во многом зависит от технологий, используемых для его создания. Сильные казино, такие как Пин Ап, обеспечивают высокую стабильность работы, быстрый доступ к играм и качественное обслуживание пользователей. Важно отметить, что уровень обработки ошибок и управление сессиями играют ключевую роль в этом процессе.

Модули, отвечающие за эти аспекты, должны быть спроектированы так, чтобы минимизировать задержки и обеспечивать быструю реакцию на запросы пользователей. Это дает возможность игрокам наслаждаться игрой без лишних препятствий, что в свою очередь повышает общую удовлетворенность клиентов.

Как начать управление модулями в казино

Управление модулями в Казино Пин Ап требует понимания некоторых ключевых шагов. Следуйте данным рекомендациям для создания надежной системы:

  1. Планирование: начните с четкого понимания того, какие функции и модули вам необходимы.
  2. Разработка: создайте модули с учетом гибкости и возможности их масштабирования.
  3. Тестирование: проведите тестирование на наличие ошибок и недочетов, чтобы избежать проблем в дальнейшем.
  4. Внедрение: интегрируйте модули в основную систему, следя за их производительностью.
  5. Мониторинг: устанавливайте системы мониторинга для отслеживания ошибок и управления сессиями.
  • Стратегическое планирование помогает избежать неясностей.
  • Правильное тестирование предотвращает потерю пользователей.
  • Мониторинг позволяет быстро реагировать на возникающие проблемы.

Практические детали для казино Пин Ап

Управление модулями в Пин Ап казино требует особого внимания к деталям. Один из аспектов, на который следует обратить внимание, — это управление токенами. Правильное использование токенов позволяет поддерживать безопасные сессии и снижать вероятность ошибок. Это также улучшает пользовательский опыт, так как игроки могут продолжать свои игровые сессии без необходимости повторного входа на сайт.

  • Использование токенов увеличивает безопасность операций с данными.
  • Установка интервала обновления модулей в 30 секунд помогает поддерживать актуальность данных.
  • Постоянное хранение не более 20 логов ошибок позволяет избежать перегрузки системы.

Кроме того, важно поддерживать интерфейс казино в актуальном состоянии. Регулярные обновления и оптимизация модулей способствуют более плавной работе платформы, что непосредственно влияет на удовлетворенность игроков и их желание возвращаться.

Ключевые преимущества управления модулями

Эффективное управление модулями в Пин Ап казино имеет несколько ключевых преимуществ. Во-первых, это улучшение производительности системы. Пользователи могут наслаждаться более плавным игровым процессом без задержек. Во-вторых, это повышение безопасности данных, что крайне важно для любого онлайн-казино в современном мире.

  • Увеличенная производительность и стабильность работы.
  • Снижение числа ошибок и простоев.
  • Повышение степени защиты пользовательских данных.
  • Лучший пользовательский опыт способствует привлечению новых игроков.

Таким образом, правильное управление модулями не только улучшает технологические аспекты, но и способствует созданию положительного имиджа казино.

Доверие и безопасность

Вопросы доверия и безопасности являются критически важными для онлайн-казино. Игроки должны быть уверены, что их данные защищены и что они могут безопасно совершать транзакции. Пин Ап казино реализует многоуровневую систему защиты, которая включает в себя шифрование данных и регулярные проверки на наличие уязвимостей.

Кроме того, система обработки ошибок и управление сессиями обеспечивает надежное функционирование платформы и защиту пользователей от мошенничества. Строгое соблюдение норм безопасности также помогает создать положительную репутацию среди игроков и укрепить их доверие к казино.

Почему стоит выбрать Пин Ап казино

Выбор казино — это важное решение для любого игрока, и Пин Ап казино предлагает ряд уникальных преимуществ, которые делают его привлекательным вариантом. Высокое качество обслуживания, надежность и безопасность, а также множество игр и бонусов позволяют каждому пользователю найти что-то для себя.

Если вы разрабатываете программное обеспечение или модули для казино, учтите, что ваша работа напрямую влияет на впечатления игроков. Эффективное управление модулями и обеспечение высокого уровня безопасности помогут вам создать успешный продукт, который будет пользоваться спросом среди игроков.

]]>