From 5bbcc64c63990feb2f3f0cd3d3f03ce92193378f Mon Sep 17 00:00:00 2001 From: liviu13 Date: Tue, 10 Sep 2024 15:19:46 +0300 Subject: [PATCH 1/2] suport rgba color in quick settings, update FrmBackgroundImageStyleComponent to support better the image opacity settings from bg image upload element, make the style section to retain the active section on form update, fix slider width for opened accordion section --- classes/views/styles/_buttons.php | 32 ++++++++--------- classes/views/styles/_general.php | 31 ++++++++-------- classes/views/styles/_styles-edit.php | 2 +- .../components/templates/background-image.php | 36 +++++++++++++++---- js/admin/style.js | 27 +++++++++----- js/formidable_dashboard.js.map | 2 +- js/formidable_styles.js | 2 +- js/formidable_styles.js.map | 2 +- js/src/admin/styles/slider-style-component.js | 18 ++++++++-- 9 files changed, 97 insertions(+), 55 deletions(-) diff --git a/classes/views/styles/_buttons.php b/classes/views/styles/_buttons.php index 39b2dd03e2..01af0eb7dc 100644 --- a/classes/views/styles/_buttons.php +++ b/classes/views/styles/_buttons.php @@ -18,23 +18,21 @@
-
-
- get_field_name( 'submit_bg_color' ), - $style->post_content['submit_bg_color'], - array( - 'id' => 'frm_submit_bg_color', - 'frm_style' => $frm_style, - 'style' => $style, - 'action_slug' => 'submit_bg_color', - 'image_id_input_name' => 'submit_bg_img', - ) - ); - ?> -
- + get_field_name( 'submit_bg_color' ), + $style->post_content['submit_bg_color'], + array( + 'title' => __( 'Background Image', 'formidable' ), + 'id' => 'frm_submit_bg_color', + 'frm_style' => $frm_style, + 'style' => $style, + 'action_slug' => 'submit_bg_color', + 'image_id_input_name' => 'submit_bg_img', + 'include_additional_settings' => false, + ) + ); + ?>
diff --git a/classes/views/styles/_general.php b/classes/views/styles/_general.php index 76fa87c816..fc1953f253 100644 --- a/classes/views/styles/_general.php +++ b/classes/views/styles/_general.php @@ -10,22 +10,21 @@

-
-
- get_field_name( 'fieldset_bg_color' ), - $style->post_content['fieldset_bg_color'], - array( - 'id' => 'frm_fieldset_bg_color', - 'frm_style' => $frm_style, - 'style' => $style, - 'action_slug' => 'fieldset_bg_color', - 'image_id_input_name' => 'bg_image_id', - ) - ); - ?> -
+get_field_name( 'fieldset_bg_color' ), + $style->post_content['fieldset_bg_color'], + array( + 'title' => __( 'Background', 'formidable' ), + 'id' => 'frm_fieldset_bg_color', + 'frm_style' => $frm_style, + 'style' => $style, + 'action_slug' => 'fieldset_bg_color', + 'image_id_input_name' => 'bg_image_id', + 'include_additional_settings' => true, + ) +); +?>
diff --git a/classes/views/styles/_styles-edit.php b/classes/views/styles/_styles-edit.php index 52a88fe607..5dbd016d66 100644 --- a/classes/views/styles/_styles-edit.php +++ b/classes/views/styles/_styles-edit.php @@ -7,7 +7,7 @@ // It is accessed from /wp-admin/admin.php?page=formidable-styles&frm_action=edit&form=782 ?>
-
+ diff --git a/classes/views/styles/components/templates/background-image.php b/classes/views/styles/components/templates/background-image.php index e1a11d9846..409068a111 100644 --- a/classes/views/styles/components/templates/background-image.php +++ b/classes/views/styles/components/templates/background-image.php @@ -2,12 +2,20 @@ die( 'You are not allowed to call this page directly.' ); } ?> -
- - id="" class="hex" value="" size="4" /> -
+
+
+ + id="" class="hex" value="" size="4" /> + $component['frm_style'], 'style' => $component['style'], @@ -25,5 +33,19 @@ - -
\ No newline at end of file + +
+
+ $component['frm_style'], + 'style' => $component['style'], + ) + ); +} \ No newline at end of file diff --git a/js/admin/style.js b/js/admin/style.js index b9da700a09..f9383b0fd1 100644 --- a/js/admin/style.js +++ b/js/admin/style.js @@ -273,15 +273,21 @@ /** * This function is used to update the form action when switching from the advanced settings and quick-settings. - * @param {object} target The submit button event target - * @returns {void} + * @param {Object} target The submit button event target + * @return {void} */ function switchAdvancedSettingsFormAction( target ) { const form = document.querySelector( '#frm_styling_form' ); - if ( 'frm-style-advanced-settings-button' !== target.id || null === form ) { + if ( null === form ) { + return; + } + if ( target.closest( 'a#frm_style_back_to_quick_settings' ) ) { + form.action = form.action.replace( '§ion=advanced-settings', '' ); return; } - form.setAttribute( 'action', form.getAttribute( 'action' ) + '§ion=advanced-settings' ); + if ( 'frm-style-advanced-settings-button' === target.id ) { + form.action += '§ion=advanced-settings'; + } } /** @@ -1157,17 +1163,20 @@ }); jQuery( 'input.hex' ).wpColorPicker({ - change: function( event ) { - const hexcolor = jQuery( this ).wpColorPicker( 'color' ); + change: function( event, ui ) { + let color = jQuery( this ).wpColorPicker( 'color' ); trackUnsavedChange(); - + if ( ui.color._alpha < 1 ) { + // If there's transparency, use RGBA + color = ui.color.toCSS( 'rgba' ); + } if ( null !== event.target.getAttribute( 'data-alpha-color-type' ) ) { - debouncedColorChange( event, hexcolor ); + debouncedColorChange( event, color ); debouncedPreviewUpdate(); return; } - jQuery( event.target ).val( hexcolor ).trigger( 'change' ); + jQuery( event.target ).val( color ).trigger( 'change' ); } }); jQuery( '.wp-color-result-text' ).text( function( _, oldText ) { diff --git a/js/formidable_dashboard.js.map b/js/formidable_dashboard.js.map index ed9b8c80be..96bcb398cf 100644 --- a/js/formidable_dashboard.js.map +++ b/js/formidable_dashboard.js.map @@ -1 +1 @@ -{"version":3,"file":"formidable_dashboard.js","mappings":"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","sources":["webpack://formidable/./js/src/common/utilities/animation.js","webpack://formidable/./js/src/components/class-counter.js","webpack://formidable/./js/src/components/class-tabs-navigator.js","webpack://formidable/webpack/bootstrap","webpack://formidable/webpack/runtime/define property getters","webpack://formidable/webpack/runtime/hasOwnProperty shorthand","webpack://formidable/webpack/runtime/make namespace object","webpack://formidable/./js/src/dashboard.js"],"sourcesContent":["export class frmAnimate {\n\n\t/**\n\t * Construct frmAnimate\n\t *\n\t * @param {Element|Element[]} elements\n\t * @param {'default'|'cascade'|'cascade-3d'} type - The animation type: default | cascade | cascade-3d\n\t *\n\t */\n\tconstructor( elements, type = 'default' ) {\n\t\tthis.elements = elements;\n\t\tthis.type = type;\n\n\t\tthis.prepareElements();\n\t}\n\n\t/**\n\t * Init animation - fadeIn.\n\t * Requires this.type = 'default';\n\t * ex: new frmAnimate( elements ).fadeIn();\n\t */\n\tfadeIn() {\n\t\tthis.applyStyleToElements( element => {\n\t\t\telement.classList.add( 'frm-fadein-up' );\n\n\t\t\telement.addEventListener( 'animationend', () => {\n\t\t\t\tthis.resetOpacity();\n\t\t\t\telement.classList.remove( 'frm-fadein-up' );\n\t\t\t}, { once: true });\n\t\t});\n\t}\n\n\t/**\n\t * Init animation - cascadeFadeIn.\n\t * Requires this.type = 'cascade'|'cascade-3d';\n\t * ex: new frmAnimate( elements, 'cascade' ).cascadeFadeIn();\n\t * new frmAnimate( elements, 'cascade-3d' ).cascadeFadeIn();\n\t *\n\t * @param {float} delay - The transition delay value.\n\t *\n\t */\n\tcascadeFadeIn( delay = 0.03 ) {\n\t\tsetTimeout( () => {\n\t\t\tthis.applyStyleToElements( ( element, index ) => {\n\t\t\t\telement.classList.remove( 'frm-animate' );\n\t\t\t\telement.style.transitionDelay = ( index + 1 ) * delay + 's';\n\t\t\t});\n\t\t}, 200 );\n\t}\n\n\tprepareElements() {\n\t\tthis.applyStyleToElements( element => {\n\t\t\tif ( 'default' === this.type ) {\n\t\t\t\telement.style.opacity = '0.0';\n\t\t\t}\n\t\t\tif ( 'cascade' === this.type ) {\n\t\t\t\telement.classList.add( 'frm-init-cascade-animation' );\n\t\t\t}\n\t\t\tif ( 'cascade-3d' === this.type ) {\n\t\t\t\telement.classList.add( 'frm-init-fadein-3d' );\n\t\t\t}\n\t\t\telement.classList.add( 'frm-animate' );\n\t\t});\n\t}\n\n\tresetOpacity() {\n\t\tthis.applyStyleToElements( element => element.style.opacity = '1.0' );\n\t}\n\n\tapplyStyleToElements( callback ) {\n\t\tif ( this.elements instanceof Element ) {\n\t\t\tcallback( this.elements, 0 );\n\t\t\treturn;\n\t\t}\n\t\tif ( 0 < this.elements.length ) {\n\t\t\tthis.elements.forEach( ( element, index ) => callback( element, index ) );\n\t\t}\n\t}\n}\n","export class frmCounter {\n\n\t/**\n\t * Init frmCounter\n\t *\n\t * @param {Element} element\n\t * @param {object} options\n\t * @param {integer} options.timetoFinish - Max time in mileseconds for counter to complete the animation.\n\t */\n\tconstructor( element, options ) {\n\t\tif ( ! element instanceof Element || ! element.dataset.counter ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.template = element.dataset.type || 'default';\n\t\tthis.element = element;\n\t\tthis.value = parseInt( element.dataset.counter, 10 );\n\t\tthis.activeCounter = 0;\n\t\tthis.locale = element.dataset.locale ? element.dataset.locale.replace( '_', '-' ) : 'en-US';\n\t\tthis.timeoutInterval = 50;\n\t\tthis.timeToFinish = 'undefined' !== typeof options && 'undefined' !== typeof options.timetoFinish ? options.timetoFinish : 1400;\n\t\tthis.valueStep = this.value / Math.ceil( this.timeToFinish / this.timeoutInterval );\n\n\t\tif ( 0 === this.value ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.animate();\n\t}\n\n\tformatNumber( number ) {\n\t\tif ( 'currency' === this.template ) {\n\t\t\treturn number.toLocaleString( this.locale, { minimumFractionDigits: 2 });\n\t\t}\n\t\treturn number;\n\t}\n\n\tanimate() {\n\t\tif ( Math.round( this.activeCounter ) < this.value ) {\n\t\t\tthis.activeCounter += this.valueStep;\n\t\t\tthis.element.innerText = this.formatNumber( Math.round( this.activeCounter ) );\n\t\t\tsetTimeout( this.animate.bind( this ), this.timeoutInterval );\n\t\t} else {\n\t\t\tthis.element.innerText = this.formatNumber( this.value );\n\t\t}\n\n\t}\n\n}\n","export class frmTabsNavigator {\n\n\tconstructor( wrapper ) {\n\t\tif ( 'undefined' === typeof wrapper ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.wrapper = wrapper instanceof Element ? wrapper : document.querySelector( wrapper ) ;\n\n\t\tif ( null === this.wrapper ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.flexboxSlidesGap = '16px';\n\t\tthis.navs = this.wrapper.querySelectorAll( '.frm-tabs-navs ul > li' );\n\t\tthis.slideTrackLine = this.wrapper.querySelector( '.frm-tabs-active-underline' );\n\t\tthis.slideTrack = this.wrapper.querySelector( '.frm-tabs-slide-track' );\n\t\tthis.slides = this.wrapper.querySelectorAll( '.frm-tabs-slide-track > div' );\n\n\t\tthis.init();\n\t}\n\n\tinit() {\n\t\tif ( null === this.wrapper || ! this.navs.length || null === this.trackLine || null === this.slideTrack || ! this.slides.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.initDefaultSlideTrackerWidth();\n\t\tthis.navs.forEach( ( nav, index ) => {\n\t\t\tnav.addEventListener( 'click', event => this.onNavClick( event, index ) );\n\t\t});\n\t}\n\n\tonNavClick( event, index ) {\n\t\tthis.removeActiveClassnameFromNavs();\n\t\tevent.target.classList.add( 'frm-active' );\n\t\tthis.initSlideTrackUnderline( event.target, index );\n\t\tthis.changeSlide( index );\n\t}\n\n\tinitDefaultSlideTrackerWidth() {\n\t\tif ( ! this.slideTrackLine.dataset.initialWidth ) {\n\t\t\treturn;\n\t\t}\n\t\tthis.slideTrackLine.style.width = `${this.slideTrackLine.dataset.initialWidth}px`;\n\t}\n\tinitSlideTrackUnderline( nav, index ) {\n\t\tthis.slideTrackLine.classList.remove( 'frm-first', 'frm-last' );\n\t\tconst activeNav = 'undefined' !== typeof nav ? nav : this.navs.filter( nav => nav.classList.contains( 'frm-active' ) ) ;\n\t\tthis.slideTrackLine.style.transform = `translateX(${activeNav.offsetLeft}px)`;\n\t\tthis.slideTrackLine.style.width = activeNav.clientWidth + 'px';\n\n\t\tif ( this.navs.length === index + 1 ) { \n\t\t\tthis.slideTrackLine.classList.add( 'frm-last' );\n\t\t\treturn;\n\t\t}\n\t\tif ( 0 === index ) {\n\t\t\tthis.slideTrackLine.classList.add( 'frm-first' );\n\t\t}\n\t}\n\n\tchangeSlide( index ) {\n\t\tthis.removeActiveClassnameFromSlides();\n\t\tconst translate = index == 0 ? '0px' : `calc( ( ${( index * 100 )}% + ${parseInt( this.flexboxSlidesGap, 10 ) * index }px ) * -1 )`;\n\t\tthis.slideTrack.style.transform = `translateX(${translate})`;\n\t\tif ( index in this.slides ) {\n\t\t\tthis.slides[ index ].classList.add( 'frm-active' );\n\t\t}\n\t}\n\n\tremoveActiveClassnameFromSlides() {\n\t\tthis.slides.forEach( slide => slide.classList.remove( 'frm-active' ) );\n\t}\n\n\tremoveActiveClassnameFromNavs() {\n\t\tthis.navs.forEach( nav => nav.classList.remove( 'frm-active' ) );\n\t}\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { frmTabsNavigator } from './components/class-tabs-navigator';\nimport { frmCounter } from './components/class-counter';\nimport { frmAnimate } from './common/utilities/animation';\n\nclass frmDashboard {\n\n\tconstructor() {\n\n\t\tthis.options = {\n\t\t\tajax: {\n\t\t\t\taction: 'dashboard_ajax_action',\n\t\t\t\tdashboardActions: {\n\t\t\t\t\twelcomeBanner: 'welcome-banner-has-closed',\n\t\t\t\t\tcheckEmailIfSubscribed: 'email-has-subscribed',\n\t\t\t\t\tsaveSubscribedEmail: 'save-subscribed-email'\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tthis.widgetsAnimate = new frmAnimate( document.querySelectorAll( '.frm-dashboard-widget' ), 'cascade' );\n\t}\n\n\tinit() {\n\t\tthis.initInbox();\n\t\tthis.initCounters();\n\t\tthis.initCloseWelcomeBanner();\n\n\t\tthis.widgetsAnimate.cascadeFadeIn();\n\t}\n\n\tinitInbox() {\n\t\tnew frmTabsNavigator( '.frm-inbox-wrapper' );\n\t\tconst userEmailInput = document.querySelector( '#frm_leave_email' );\n\t\tconst subscribeButton = document.querySelector( '#frm-add-my-email-address' );\n\n\t\tsubscribeButton.addEventListener( 'click', () => {\n\t\t\tthis.saveSubscribedEmail( userEmailInput.value ).then();\n\t\t});\n\t}\n\n\tinitCounters() {\n\t\tconst counters = document.querySelectorAll( '.frm-counter' );\n\t\tcounters.forEach( counter => new frmCounter( counter ) );\n\t}\n\n\tinitCloseWelcomeBanner() {\n\t\tconst closeButton = document.querySelector( '.frm-dashboard-banner-close' );\n\t\tconst dashboardBanner = document.querySelector( '.frm-dashboard-banner' );\n\n\t\tif ( ! closeButton || ! dashboardBanner ) {\n\t\t\treturn;\n\t\t}\n\n\t\tcloseButton.addEventListener( 'click', () => {\n\t\t\tthis.closeWelcomeBannerSaveCookieRequest().then( data => {\n\t\t\t\tif ( true === data.success ) {\n\t\t\t\t\tdashboardBanner.remove();\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\tsaveSubscribedEmail( email ) {\n\t\treturn fetch( window.ajaxurl, {\n\t\t\tmethod: 'POST',\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'application/x-www-form-urlencoded'\n\t\t\t},\n\t\t\tbody: new URLSearchParams({\n\t\t\t\taction: this.options.ajax.action,\n\t\t\t\tdashboard_action: this.options.ajax.dashboardActions.saveSubscribedEmail,\n\t\t\t\temail: email\n\t\t\t})\n\t\t}).then( result => result.json() );\n\t}\n\n\tcloseWelcomeBannerSaveCookieRequest() {\n\t\treturn fetch( window.ajaxurl, {\n\t\t\tmethod: 'POST',\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'application/x-www-form-urlencoded'\n\t\t\t},\n\t\t\tbody: new URLSearchParams({\n\t\t\t\taction: this.options.ajax.action,\n\t\t\t\tdashboard_action: this.options.ajax.dashboardActions.welcomeBanner,\n\t\t\t\tbanner_has_closed: 1\n\t\t\t})\n\t\t}).then( result => result.json() );\n\t}\n}\nconst frmDashboardClass = new frmDashboard();\ndocument.addEventListener( 'DOMContentLoaded', () => {\n\tfrmDashboardClass.init();\n});\n"],"names":["frmAnimate","elements","type","arguments","length","undefined","_classCallCheck","prepareElements","_createClass","key","value","fadeIn","_this","applyStyleToElements","element","classList","add","addEventListener","resetOpacity","remove","once","cascadeFadeIn","_this2","delay","setTimeout","index","style","transitionDelay","_this3","opacity","callback","Element","forEach","frmCounter","options","dataset","counter","template","parseInt","activeCounter","locale","replace","timeoutInterval","timeToFinish","timetoFinish","valueStep","Math","ceil","animate","formatNumber","number","toLocaleString","minimumFractionDigits","round","innerText","bind","frmTabsNavigator","wrapper","document","querySelector","flexboxSlidesGap","navs","querySelectorAll","slideTrackLine","slideTrack","slides","init","trackLine","initDefaultSlideTrackerWidth","nav","event","onNavClick","removeActiveClassnameFromNavs","target","initSlideTrackUnderline","changeSlide","initialWidth","width","concat","activeNav","filter","contains","transform","offsetLeft","clientWidth","removeActiveClassnameFromSlides","translate","slide","frmDashboard","ajax","action","dashboardActions","welcomeBanner","checkEmailIfSubscribed","saveSubscribedEmail","widgetsAnimate","initInbox","initCounters","initCloseWelcomeBanner","userEmailInput","subscribeButton","then","counters","closeButton","dashboardBanner","closeWelcomeBannerSaveCookieRequest","data","success","email","fetch","window","ajaxurl","method","headers","body","URLSearchParams","dashboard_action","result","json","banner_has_closed","frmDashboardClass"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"formidable_dashboard.js","mappings":";;;;;;;;;;;;;;;;;;;;AAAO,IAAMA,UAAU;EAEtB;AACD;AACA;AACA;AACA;AACA;AACA;EACC,SAAAA,WAAaC,QAAQ,EAAqB;IAAA,IAAnBC,IAAI,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,SAAS;IAAAG,eAAA,OAAAN,UAAA;IACtC,IAAI,CAACC,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,IAAI,GAAOA,IAAI;IAEpB,IAAI,CAACK,eAAe,CAAC,CAAC;EACvB;;EAEA;AACD;AACA;AACA;AACA;EAJCC,YAAA,CAAAR,UAAA;IAAAS,GAAA;IAAAC,KAAA,EAKA,SAAAC,OAAA,EAAS;MAAA,IAAAC,KAAA;MACR,IAAI,CAACC,oBAAoB,CAAE,UAAAC,OAAO,EAAI;QACrCA,OAAO,CAACC,SAAS,CAACC,GAAG,CAAE,eAAgB,CAAC;QAExCF,OAAO,CAACG,gBAAgB,CAAE,cAAc,EAAE,YAAM;UAC/CL,KAAI,CAACM,YAAY,CAAC,CAAC;UACnBJ,OAAO,CAACC,SAAS,CAACI,MAAM,CAAE,eAAgB,CAAC;QAC5C,CAAC,EAAE;UAAEC,IAAI,EAAE;QAAK,CAAC,CAAC;MACnB,CAAC,CAAC;IACH;;IAEA;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EARC;IAAAX,GAAA;IAAAC,KAAA,EASA,SAAAW,cAAA,EAA8B;MAAA,IAAAC,MAAA;MAAA,IAAfC,KAAK,GAAApB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;MAC1BqB,UAAU,CAAE,YAAM;QACjBF,MAAI,CAACT,oBAAoB,CAAE,UAAEC,OAAO,EAAEW,KAAK,EAAM;UAChDX,OAAO,CAACC,SAAS,CAACI,MAAM,CAAE,aAAc,CAAC;UACzCL,OAAO,CAACY,KAAK,CAACC,eAAe,GAAG,CAAEF,KAAK,GAAG,CAAC,IAAKF,KAAK,GAAG,GAAG;QAC5D,CAAC,CAAC;MACH,CAAC,EAAE,GAAI,CAAC;IACT;EAAC;IAAAd,GAAA;IAAAC,KAAA,EAED,SAAAH,gBAAA,EAAkB;MAAA,IAAAqB,MAAA;MACjB,IAAI,CAACf,oBAAoB,CAAE,UAAAC,OAAO,EAAI;QACrC,IAAK,SAAS,KAAKc,MAAI,CAAC1B,IAAI,EAAG;UAC9BY,OAAO,CAACY,KAAK,CAACG,OAAO,GAAG,KAAK;QAC9B;QACA,IAAK,SAAS,KAAKD,MAAI,CAAC1B,IAAI,EAAG;UAC9BY,OAAO,CAACC,SAAS,CAACC,GAAG,CAAE,4BAA6B,CAAC;QACtD;QACA,IAAK,YAAY,KAAKY,MAAI,CAAC1B,IAAI,EAAG;UACjCY,OAAO,CAACC,SAAS,CAACC,GAAG,CAAE,oBAAqB,CAAC;QAC9C;QACAF,OAAO,CAACC,SAAS,CAACC,GAAG,CAAE,aAAc,CAAC;MACvC,CAAC,CAAC;IACH;EAAC;IAAAP,GAAA;IAAAC,KAAA,EAED,SAAAQ,aAAA,EAAe;MACd,IAAI,CAACL,oBAAoB,CAAE,UAAAC,OAAO;QAAA,OAAIA,OAAO,CAACY,KAAK,CAACG,OAAO,GAAG,KAAK;MAAA,CAAC,CAAC;IACtE;EAAC;IAAApB,GAAA;IAAAC,KAAA,EAED,SAAAG,qBAAsBiB,QAAQ,EAAG;MAChC,IAAK,IAAI,CAAC7B,QAAQ,YAAY8B,OAAO,EAAG;QACvCD,QAAQ,CAAE,IAAI,CAAC7B,QAAQ,EAAE,CAAE,CAAC;QAC5B;MACD;MACA,IAAK,CAAC,GAAG,IAAI,CAACA,QAAQ,CAACG,MAAM,EAAG;QAC/B,IAAI,CAACH,QAAQ,CAAC+B,OAAO,CAAE,UAAElB,OAAO,EAAEW,KAAK;UAAA,OAAMK,QAAQ,CAAEhB,OAAO,EAAEW,KAAM,CAAC;QAAA,CAAC,CAAC;MAC1E;IACD;EAAC;EAAA,OAAAzB,UAAA;AAAA;;;;;;;;;;;;;;;;;;;;AC7EK,IAAMiC,UAAU;EAEtB;AACD;AACA;AACA;AACA;AACA;AACA;EACC,SAAAA,WAAanB,OAAO,EAAEoB,OAAO,EAAG;IAAA5B,eAAA,OAAA2B,UAAA;IAC/B,IAAK,CAAEnB,OAAO,YAAYiB,OAAO,IAAI,CAAEjB,OAAO,CAACqB,OAAO,CAACC,OAAO,EAAG;MAChE;IACD;IAEA,IAAI,CAACC,QAAQ,GAAUvB,OAAO,CAACqB,OAAO,CAACjC,IAAI,IAAI,SAAS;IACxD,IAAI,CAACY,OAAO,GAAWA,OAAO;IAC9B,IAAI,CAACJ,KAAK,GAAa4B,QAAQ,CAAExB,OAAO,CAACqB,OAAO,CAACC,OAAO,EAAE,EAAG,CAAC;IAC9D,IAAI,CAACG,aAAa,GAAK,CAAC;IACxB,IAAI,CAACC,MAAM,GAAY1B,OAAO,CAACqB,OAAO,CAACK,MAAM,GAAG1B,OAAO,CAACqB,OAAO,CAACK,MAAM,CAACC,OAAO,CAAE,GAAG,EAAE,GAAI,CAAC,GAAG,OAAO;IACpG,IAAI,CAACC,eAAe,GAAG,EAAE;IACzB,IAAI,CAACC,YAAY,GAAM,WAAW,KAAK,OAAOT,OAAO,IAAI,WAAW,KAAK,OAAOA,OAAO,CAACU,YAAY,GAAGV,OAAO,CAACU,YAAY,GAAG,IAAI;IAClI,IAAI,CAACC,SAAS,GAAS,IAAI,CAACnC,KAAK,GAAGoC,IAAI,CAACC,IAAI,CAAE,IAAI,CAACJ,YAAY,GAAG,IAAI,CAACD,eAAgB,CAAC;IAEzF,IAAK,CAAC,KAAK,IAAI,CAAChC,KAAK,EAAG;MACvB;IACD;IAEA,IAAI,CAACsC,OAAO,CAAC,CAAC;EACf;EAACxC,YAAA,CAAAyB,UAAA;IAAAxB,GAAA;IAAAC,KAAA,EAED,SAAAuC,aAAcC,MAAM,EAAG;MACtB,IAAK,UAAU,KAAK,IAAI,CAACb,QAAQ,EAAG;QACnC,OAAOa,MAAM,CAACC,cAAc,CAAE,IAAI,CAACX,MAAM,EAAE;UAAEY,qBAAqB,EAAE;QAAE,CAAC,CAAC;MACzE;MACA,OAAOF,MAAM;IACd;EAAC;IAAAzC,GAAA;IAAAC,KAAA,EAED,SAAAsC,QAAA,EAAU;MACT,IAAKF,IAAI,CAACO,KAAK,CAAE,IAAI,CAACd,aAAc,CAAC,GAAG,IAAI,CAAC7B,KAAK,EAAG;QACpD,IAAI,CAAC6B,aAAa,IAAI,IAAI,CAACM,SAAS;QACpC,IAAI,CAAC/B,OAAO,CAACwC,SAAS,GAAG,IAAI,CAACL,YAAY,CAAEH,IAAI,CAACO,KAAK,CAAE,IAAI,CAACd,aAAc,CAAE,CAAC;QAC9Ef,UAAU,CAAE,IAAI,CAACwB,OAAO,CAACO,IAAI,CAAE,IAAK,CAAC,EAAE,IAAI,CAACb,eAAgB,CAAC;MAC9D,CAAC,MAAM;QACN,IAAI,CAAC5B,OAAO,CAACwC,SAAS,GAAG,IAAI,CAACL,YAAY,CAAE,IAAI,CAACvC,KAAM,CAAC;MACzD;IAED;EAAC;EAAA,OAAAuB,UAAA;AAAA;;;;;;;;;;;;;;;;;;;;AC9CK,IAAMuB,gBAAgB;EAE5B,SAAAA,iBAAaC,OAAO,EAAG;IAAAnD,eAAA,OAAAkD,gBAAA;IACtB,IAAK,WAAW,KAAK,OAAOC,OAAO,EAAG;MACrC;IACD;IAEA,IAAI,CAACA,OAAO,GAAGA,OAAO,YAAY1B,OAAO,GAAG0B,OAAO,GAAGC,QAAQ,CAACC,aAAa,CAAEF,OAAQ,CAAC;IAEvF,IAAK,IAAI,KAAK,IAAI,CAACA,OAAO,EAAG;MAC5B;IACD;IAEA,IAAI,CAACG,gBAAgB,GAAG,MAAM;IAC9B,IAAI,CAACC,IAAI,GAAe,IAAI,CAACJ,OAAO,CAACK,gBAAgB,CAAE,wBAAyB,CAAC;IACjF,IAAI,CAACC,cAAc,GAAK,IAAI,CAACN,OAAO,CAACE,aAAa,CAAE,4BAA6B,CAAC;IAClF,IAAI,CAACK,UAAU,GAAS,IAAI,CAACP,OAAO,CAACE,aAAa,CAAE,uBAAwB,CAAC;IAC7E,IAAI,CAACM,MAAM,GAAa,IAAI,CAACR,OAAO,CAACK,gBAAgB,CAAE,6BAA8B,CAAC;IAEtF,IAAI,CAACI,IAAI,CAAC,CAAC;EACZ;EAAC1D,YAAA,CAAAgD,gBAAA;IAAA/C,GAAA;IAAAC,KAAA,EAED,SAAAwD,KAAA,EAAO;MAAA,IAAAtD,KAAA;MACN,IAAK,IAAI,KAAK,IAAI,CAAC6C,OAAO,IAAI,CAAE,IAAI,CAACI,IAAI,CAACzD,MAAM,IAAI,IAAI,KAAK,IAAI,CAAC+D,SAAS,IAAI,IAAI,KAAK,IAAI,CAACH,UAAU,IAAI,CAAE,IAAI,CAACC,MAAM,CAAC7D,MAAM,EAAG;QACjI;MACD;MAEA,IAAI,CAACgE,4BAA4B,CAAC,CAAC;MACnC,IAAI,CAACP,IAAI,CAAC7B,OAAO,CAAE,UAAEqC,GAAG,EAAE5C,KAAK,EAAM;QACpC4C,GAAG,CAACpD,gBAAgB,CAAE,OAAO,EAAE,UAAAqD,KAAK;UAAA,OAAI1D,KAAI,CAAC2D,UAAU,CAAED,KAAK,EAAE7C,KAAM,CAAC;QAAA,CAAC,CAAC;MAC1E,CAAC,CAAC;IACH;EAAC;IAAAhB,GAAA;IAAAC,KAAA,EAED,SAAA6D,WAAYD,KAAK,EAAE7C,KAAK,EAAG;MAC1B,IAAI,CAAC+C,6BAA6B,CAAC,CAAC;MACpCF,KAAK,CAACG,MAAM,CAAC1D,SAAS,CAACC,GAAG,CAAE,YAAa,CAAC;MAC1C,IAAI,CAAC0D,uBAAuB,CAAEJ,KAAK,CAACG,MAAM,EAAEhD,KAAM,CAAC;MACnD,IAAI,CAACkD,WAAW,CAAElD,KAAM,CAAC;IAC1B;EAAC;IAAAhB,GAAA;IAAAC,KAAA,EAED,SAAA0D,6BAAA,EAA+B;MAC9B,IAAK,CAAE,IAAI,CAACL,cAAc,CAAC5B,OAAO,CAACyC,YAAY,EAAG;QACjD;MACD;MACA,IAAI,CAACb,cAAc,CAACrC,KAAK,CAACmD,KAAK,MAAAC,MAAA,CAAM,IAAI,CAACf,cAAc,CAAC5B,OAAO,CAACyC,YAAY,OAAI;IAClF;EAAC;IAAAnE,GAAA;IAAAC,KAAA,EACD,SAAAgE,wBAAyBL,GAAG,EAAE5C,KAAK,EAAG;MACrC,IAAI,CAACsC,cAAc,CAAChD,SAAS,CAACI,MAAM,CAAE,WAAW,EAAE,UAAW,CAAC;MAC/D,IAAM4D,SAAS,GAAG,WAAW,KAAK,OAAOV,GAAG,GAAGA,GAAG,GAAG,IAAI,CAACR,IAAI,CAACmB,MAAM,CAAE,UAAAX,GAAG;QAAA,OAAIA,GAAG,CAACtD,SAAS,CAACkE,QAAQ,CAAE,YAAa,CAAC;MAAA,CAAC,CAAC;MACtH,IAAI,CAAClB,cAAc,CAACrC,KAAK,CAACwD,SAAS,iBAAAJ,MAAA,CAAiBC,SAAS,CAACI,UAAU,QAAK;MAC7E,IAAI,CAACpB,cAAc,CAACrC,KAAK,CAACmD,KAAK,GAAGE,SAAS,CAACK,WAAW,GAAG,IAAI;MAE9D,IAAK,IAAI,CAACvB,IAAI,CAACzD,MAAM,KAAKqB,KAAK,GAAG,CAAC,EAAG;QACrC,IAAI,CAACsC,cAAc,CAAChD,SAAS,CAACC,GAAG,CAAE,UAAW,CAAC;QAC/C;MACD;MACA,IAAK,CAAC,KAAKS,KAAK,EAAG;QAClB,IAAI,CAACsC,cAAc,CAAChD,SAAS,CAACC,GAAG,CAAE,WAAY,CAAC;MACjD;IACD;EAAC;IAAAP,GAAA;IAAAC,KAAA,EAED,SAAAiE,YAAalD,KAAK,EAAG;MACpB,IAAI,CAAC4D,+BAA+B,CAAC,CAAC;MACtC,IAAMC,SAAS,GAAG7D,KAAK,IAAI,CAAC,GAAG,KAAK,cAAAqD,MAAA,CAAgBrD,KAAK,GAAG,GAAG,UAAAqD,MAAA,CAASxC,QAAQ,CAAE,IAAI,CAACsB,gBAAgB,EAAE,EAAG,CAAC,GAAGnC,KAAK,gBAAc;MACnI,IAAI,CAACuC,UAAU,CAACtC,KAAK,CAACwD,SAAS,iBAAAJ,MAAA,CAAiBQ,SAAS,MAAG;MAC5D,IAAK7D,KAAK,IAAI,IAAI,CAACwC,MAAM,EAAG;QAC3B,IAAI,CAACA,MAAM,CAAExC,KAAK,CAAE,CAACV,SAAS,CAACC,GAAG,CAAE,YAAa,CAAC;MACnD;IACD;EAAC;IAAAP,GAAA;IAAAC,KAAA,EAED,SAAA2E,gCAAA,EAAkC;MACjC,IAAI,CAACpB,MAAM,CAACjC,OAAO,CAAE,UAAAuD,KAAK;QAAA,OAAIA,KAAK,CAACxE,SAAS,CAACI,MAAM,CAAE,YAAa,CAAC;MAAA,CAAC,CAAC;IACvE;EAAC;IAAAV,GAAA;IAAAC,KAAA,EAED,SAAA8D,8BAAA,EAAgC;MAC/B,IAAI,CAACX,IAAI,CAAC7B,OAAO,CAAE,UAAAqC,GAAG;QAAA,OAAIA,GAAG,CAACtD,SAAS,CAACI,MAAM,CAAE,YAAa,CAAC;MAAA,CAAC,CAAC;IACjE;EAAC;EAAA,OAAAqC,gBAAA;AAAA;;;;;;UC5EF;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA,8CAA8C;;;;;WCA9C;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;;;;;;;;;;;;;;;;ACNqE;AACb;AACE;AAAA,IAEpDgC,YAAY;EAEjB,SAAAA,aAAA,EAAc;IAAAlF,eAAA,OAAAkF,YAAA;IAEb,IAAI,CAACtD,OAAO,GAAG;MACduD,IAAI,EAAE;QACLC,MAAM,EAAE,uBAAuB;QAC/BC,gBAAgB,EAAE;UACjBC,aAAa,EAAE,2BAA2B;UAC1CC,sBAAsB,EAAE,sBAAsB;UAC9CC,mBAAmB,EAAE;QACtB;MACD;IACD,CAAC;IACD,IAAI,CAACC,cAAc,GAAG,IAAI/F,mEAAU,CAAE0D,QAAQ,CAACI,gBAAgB,CAAE,uBAAwB,CAAC,EAAE,SAAU,CAAC;EACxG;EAACtD,YAAA,CAAAgF,YAAA;IAAA/E,GAAA;IAAAC,KAAA,EAED,SAAAwD,KAAA,EAAO;MACN,IAAI,CAAC8B,SAAS,CAAC,CAAC;MAChB,IAAI,CAACC,YAAY,CAAC,CAAC;MACnB,IAAI,CAACC,sBAAsB,CAAC,CAAC;MAE7B,IAAI,CAACH,cAAc,CAAC1E,aAAa,CAAC,CAAC;IACpC;EAAC;IAAAZ,GAAA;IAAAC,KAAA,EAED,SAAAsF,UAAA,EAAY;MAAA,IAAApF,KAAA;MACX,IAAI4C,8EAAgB,CAAE,oBAAqB,CAAC;MAC5C,IAAM2C,cAAc,GAAIzC,QAAQ,CAACC,aAAa,CAAE,kBAAmB,CAAC;MACpE,IAAMyC,eAAe,GAAG1C,QAAQ,CAACC,aAAa,CAAE,2BAA4B,CAAC;MAE7EyC,eAAe,CAACnF,gBAAgB,CAAE,OAAO,EAAE,YAAM;QAChDL,KAAI,CAACkF,mBAAmB,CAAEK,cAAc,CAACzF,KAAM,CAAC,CAAC2F,IAAI,CAAC,CAAC;MACxD,CAAC,CAAC;IACH;EAAC;IAAA5F,GAAA;IAAAC,KAAA,EAED,SAAAuF,aAAA,EAAe;MACd,IAAMK,QAAQ,GAAG5C,QAAQ,CAACI,gBAAgB,CAAE,cAAe,CAAC;MAC5DwC,QAAQ,CAACtE,OAAO,CAAE,UAAAI,OAAO;QAAA,OAAI,IAAIH,iEAAU,CAAEG,OAAQ,CAAC;MAAA,CAAC,CAAC;IACzD;EAAC;IAAA3B,GAAA;IAAAC,KAAA,EAED,SAAAwF,uBAAA,EAAyB;MAAA,IAAA5E,MAAA;MACxB,IAAMiF,WAAW,GAAG7C,QAAQ,CAACC,aAAa,CAAE,6BAA8B,CAAC;MAC3E,IAAM6C,eAAe,GAAG9C,QAAQ,CAACC,aAAa,CAAE,uBAAwB,CAAC;MAEzE,IAAK,CAAE4C,WAAW,IAAI,CAAEC,eAAe,EAAG;QACzC;MACD;MAEAD,WAAW,CAACtF,gBAAgB,CAAE,OAAO,EAAE,YAAM;QAC5CK,MAAI,CAACmF,mCAAmC,CAAC,CAAC,CAACJ,IAAI,CAAE,UAAAK,IAAI,EAAI;UACxD,IAAK,IAAI,KAAKA,IAAI,CAACC,OAAO,EAAG;YAC5BH,eAAe,CAACrF,MAAM,CAAC,CAAC;UACzB;QACD,CAAC,CAAC;MACH,CAAC,CAAC;IACH;EAAC;IAAAV,GAAA;IAAAC,KAAA,EAED,SAAAoF,oBAAqBc,KAAK,EAAG;MAC5B,OAAOC,KAAK,CAAEC,MAAM,CAACC,OAAO,EAAE;QAC7BC,MAAM,EAAE,MAAM;QACdC,OAAO,EAAE;UACR,cAAc,EAAE;QACjB,CAAC;QACDC,IAAI,EAAE,IAAIC,eAAe,CAAC;UACzBzB,MAAM,EAAE,IAAI,CAACxD,OAAO,CAACuD,IAAI,CAACC,MAAM;UAChC0B,gBAAgB,EAAE,IAAI,CAAClF,OAAO,CAACuD,IAAI,CAACE,gBAAgB,CAACG,mBAAmB;UACxEc,KAAK,EAAEA;QACR,CAAC;MACF,CAAC,CAAC,CAACP,IAAI,CAAE,UAAAgB,MAAM;QAAA,OAAIA,MAAM,CAACC,IAAI,CAAC,CAAC;MAAA,CAAC,CAAC;IACnC;EAAC;IAAA7G,GAAA;IAAAC,KAAA,EAED,SAAA+F,oCAAA,EAAsC;MACrC,OAAOI,KAAK,CAAEC,MAAM,CAACC,OAAO,EAAE;QAC7BC,MAAM,EAAE,MAAM;QACdC,OAAO,EAAE;UACR,cAAc,EAAE;QACjB,CAAC;QACDC,IAAI,EAAE,IAAIC,eAAe,CAAC;UACzBzB,MAAM,EAAE,IAAI,CAACxD,OAAO,CAACuD,IAAI,CAACC,MAAM;UAChC0B,gBAAgB,EAAE,IAAI,CAAClF,OAAO,CAACuD,IAAI,CAACE,gBAAgB,CAACC,aAAa;UAClE2B,iBAAiB,EAAE;QACpB,CAAC;MACF,CAAC,CAAC,CAAClB,IAAI,CAAE,UAAAgB,MAAM;QAAA,OAAIA,MAAM,CAACC,IAAI,CAAC,CAAC;MAAA,CAAC,CAAC;IACnC;EAAC;EAAA,OAAA9B,YAAA;AAAA;AAEF,IAAMgC,iBAAiB,GAAG,IAAIhC,YAAY,CAAC,CAAC;AAC5C9B,QAAQ,CAACzC,gBAAgB,CAAE,kBAAkB,EAAE,YAAM;EACpDuG,iBAAiB,CAACtD,IAAI,CAAC,CAAC;AACzB,CAAC,CAAC,C","sources":["webpack://formidable/./js/src/common/utilities/animation.js","webpack://formidable/./js/src/components/class-counter.js","webpack://formidable/./js/src/components/class-tabs-navigator.js","webpack://formidable/webpack/bootstrap","webpack://formidable/webpack/runtime/define property getters","webpack://formidable/webpack/runtime/hasOwnProperty shorthand","webpack://formidable/webpack/runtime/make namespace object","webpack://formidable/./js/src/dashboard.js"],"sourcesContent":["export class frmAnimate {\n\n\t/**\n\t * Construct frmAnimate\n\t *\n\t * @param {Element|Element[]} elements\n\t * @param {'default'|'cascade'|'cascade-3d'} type - The animation type: default | cascade | cascade-3d\n\t *\n\t */\n\tconstructor( elements, type = 'default' ) {\n\t\tthis.elements = elements;\n\t\tthis.type = type;\n\n\t\tthis.prepareElements();\n\t}\n\n\t/**\n\t * Init animation - fadeIn.\n\t * Requires this.type = 'default';\n\t * ex: new frmAnimate( elements ).fadeIn();\n\t */\n\tfadeIn() {\n\t\tthis.applyStyleToElements( element => {\n\t\t\telement.classList.add( 'frm-fadein-up' );\n\n\t\t\telement.addEventListener( 'animationend', () => {\n\t\t\t\tthis.resetOpacity();\n\t\t\t\telement.classList.remove( 'frm-fadein-up' );\n\t\t\t}, { once: true });\n\t\t});\n\t}\n\n\t/**\n\t * Init animation - cascadeFadeIn.\n\t * Requires this.type = 'cascade'|'cascade-3d';\n\t * ex: new frmAnimate( elements, 'cascade' ).cascadeFadeIn();\n\t * new frmAnimate( elements, 'cascade-3d' ).cascadeFadeIn();\n\t *\n\t * @param {float} delay - The transition delay value.\n\t *\n\t */\n\tcascadeFadeIn( delay = 0.03 ) {\n\t\tsetTimeout( () => {\n\t\t\tthis.applyStyleToElements( ( element, index ) => {\n\t\t\t\telement.classList.remove( 'frm-animate' );\n\t\t\t\telement.style.transitionDelay = ( index + 1 ) * delay + 's';\n\t\t\t});\n\t\t}, 200 );\n\t}\n\n\tprepareElements() {\n\t\tthis.applyStyleToElements( element => {\n\t\t\tif ( 'default' === this.type ) {\n\t\t\t\telement.style.opacity = '0.0';\n\t\t\t}\n\t\t\tif ( 'cascade' === this.type ) {\n\t\t\t\telement.classList.add( 'frm-init-cascade-animation' );\n\t\t\t}\n\t\t\tif ( 'cascade-3d' === this.type ) {\n\t\t\t\telement.classList.add( 'frm-init-fadein-3d' );\n\t\t\t}\n\t\t\telement.classList.add( 'frm-animate' );\n\t\t});\n\t}\n\n\tresetOpacity() {\n\t\tthis.applyStyleToElements( element => element.style.opacity = '1.0' );\n\t}\n\n\tapplyStyleToElements( callback ) {\n\t\tif ( this.elements instanceof Element ) {\n\t\t\tcallback( this.elements, 0 );\n\t\t\treturn;\n\t\t}\n\t\tif ( 0 < this.elements.length ) {\n\t\t\tthis.elements.forEach( ( element, index ) => callback( element, index ) );\n\t\t}\n\t}\n}\n","export class frmCounter {\n\n\t/**\n\t * Init frmCounter\n\t *\n\t * @param {Element} element\n\t * @param {object} options\n\t * @param {integer} options.timetoFinish - Max time in mileseconds for counter to complete the animation.\n\t */\n\tconstructor( element, options ) {\n\t\tif ( ! element instanceof Element || ! element.dataset.counter ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.template = element.dataset.type || 'default';\n\t\tthis.element = element;\n\t\tthis.value = parseInt( element.dataset.counter, 10 );\n\t\tthis.activeCounter = 0;\n\t\tthis.locale = element.dataset.locale ? element.dataset.locale.replace( '_', '-' ) : 'en-US';\n\t\tthis.timeoutInterval = 50;\n\t\tthis.timeToFinish = 'undefined' !== typeof options && 'undefined' !== typeof options.timetoFinish ? options.timetoFinish : 1400;\n\t\tthis.valueStep = this.value / Math.ceil( this.timeToFinish / this.timeoutInterval );\n\n\t\tif ( 0 === this.value ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.animate();\n\t}\n\n\tformatNumber( number ) {\n\t\tif ( 'currency' === this.template ) {\n\t\t\treturn number.toLocaleString( this.locale, { minimumFractionDigits: 2 });\n\t\t}\n\t\treturn number;\n\t}\n\n\tanimate() {\n\t\tif ( Math.round( this.activeCounter ) < this.value ) {\n\t\t\tthis.activeCounter += this.valueStep;\n\t\t\tthis.element.innerText = this.formatNumber( Math.round( this.activeCounter ) );\n\t\t\tsetTimeout( this.animate.bind( this ), this.timeoutInterval );\n\t\t} else {\n\t\t\tthis.element.innerText = this.formatNumber( this.value );\n\t\t}\n\n\t}\n\n}\n","export class frmTabsNavigator {\n\n\tconstructor( wrapper ) {\n\t\tif ( 'undefined' === typeof wrapper ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.wrapper = wrapper instanceof Element ? wrapper : document.querySelector( wrapper );\n\n\t\tif ( null === this.wrapper ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.flexboxSlidesGap = '16px';\n\t\tthis.navs = this.wrapper.querySelectorAll( '.frm-tabs-navs ul > li' );\n\t\tthis.slideTrackLine = this.wrapper.querySelector( '.frm-tabs-active-underline' );\n\t\tthis.slideTrack = this.wrapper.querySelector( '.frm-tabs-slide-track' );\n\t\tthis.slides = this.wrapper.querySelectorAll( '.frm-tabs-slide-track > div' );\n\n\t\tthis.init();\n\t}\n\n\tinit() {\n\t\tif ( null === this.wrapper || ! this.navs.length || null === this.trackLine || null === this.slideTrack || ! this.slides.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.initDefaultSlideTrackerWidth();\n\t\tthis.navs.forEach( ( nav, index ) => {\n\t\t\tnav.addEventListener( 'click', event => this.onNavClick( event, index ) );\n\t\t});\n\t}\n\n\tonNavClick( event, index ) {\n\t\tthis.removeActiveClassnameFromNavs();\n\t\tevent.target.classList.add( 'frm-active' );\n\t\tthis.initSlideTrackUnderline( event.target, index );\n\t\tthis.changeSlide( index );\n\t}\n\n\tinitDefaultSlideTrackerWidth() {\n\t\tif ( ! this.slideTrackLine.dataset.initialWidth ) {\n\t\t\treturn;\n\t\t}\n\t\tthis.slideTrackLine.style.width = `${this.slideTrackLine.dataset.initialWidth}px`;\n\t}\n\tinitSlideTrackUnderline( nav, index ) {\n\t\tthis.slideTrackLine.classList.remove( 'frm-first', 'frm-last' );\n\t\tconst activeNav = 'undefined' !== typeof nav ? nav : this.navs.filter( nav => nav.classList.contains( 'frm-active' ) ) ;\n\t\tthis.slideTrackLine.style.transform = `translateX(${activeNav.offsetLeft}px)`;\n\t\tthis.slideTrackLine.style.width = activeNav.clientWidth + 'px';\n\n\t\tif ( this.navs.length === index + 1 ) { \n\t\t\tthis.slideTrackLine.classList.add( 'frm-last' );\n\t\t\treturn;\n\t\t}\n\t\tif ( 0 === index ) {\n\t\t\tthis.slideTrackLine.classList.add( 'frm-first' );\n\t\t}\n\t}\n\n\tchangeSlide( index ) {\n\t\tthis.removeActiveClassnameFromSlides();\n\t\tconst translate = index == 0 ? '0px' : `calc( ( ${( index * 100 )}% + ${parseInt( this.flexboxSlidesGap, 10 ) * index }px ) * -1 )`;\n\t\tthis.slideTrack.style.transform = `translateX(${translate})`;\n\t\tif ( index in this.slides ) {\n\t\t\tthis.slides[ index ].classList.add( 'frm-active' );\n\t\t}\n\t}\n\n\tremoveActiveClassnameFromSlides() {\n\t\tthis.slides.forEach( slide => slide.classList.remove( 'frm-active' ) );\n\t}\n\n\tremoveActiveClassnameFromNavs() {\n\t\tthis.navs.forEach( nav => nav.classList.remove( 'frm-active' ) );\n\t}\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { frmTabsNavigator } from './components/class-tabs-navigator';\nimport { frmCounter } from './components/class-counter';\nimport { frmAnimate } from './common/utilities/animation';\n\nclass frmDashboard {\n\n\tconstructor() {\n\n\t\tthis.options = {\n\t\t\tajax: {\n\t\t\t\taction: 'dashboard_ajax_action',\n\t\t\t\tdashboardActions: {\n\t\t\t\t\twelcomeBanner: 'welcome-banner-has-closed',\n\t\t\t\t\tcheckEmailIfSubscribed: 'email-has-subscribed',\n\t\t\t\t\tsaveSubscribedEmail: 'save-subscribed-email'\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tthis.widgetsAnimate = new frmAnimate( document.querySelectorAll( '.frm-dashboard-widget' ), 'cascade' );\n\t}\n\n\tinit() {\n\t\tthis.initInbox();\n\t\tthis.initCounters();\n\t\tthis.initCloseWelcomeBanner();\n\n\t\tthis.widgetsAnimate.cascadeFadeIn();\n\t}\n\n\tinitInbox() {\n\t\tnew frmTabsNavigator( '.frm-inbox-wrapper' );\n\t\tconst userEmailInput = document.querySelector( '#frm_leave_email' );\n\t\tconst subscribeButton = document.querySelector( '#frm-add-my-email-address' );\n\n\t\tsubscribeButton.addEventListener( 'click', () => {\n\t\t\tthis.saveSubscribedEmail( userEmailInput.value ).then();\n\t\t});\n\t}\n\n\tinitCounters() {\n\t\tconst counters = document.querySelectorAll( '.frm-counter' );\n\t\tcounters.forEach( counter => new frmCounter( counter ) );\n\t}\n\n\tinitCloseWelcomeBanner() {\n\t\tconst closeButton = document.querySelector( '.frm-dashboard-banner-close' );\n\t\tconst dashboardBanner = document.querySelector( '.frm-dashboard-banner' );\n\n\t\tif ( ! closeButton || ! dashboardBanner ) {\n\t\t\treturn;\n\t\t}\n\n\t\tcloseButton.addEventListener( 'click', () => {\n\t\t\tthis.closeWelcomeBannerSaveCookieRequest().then( data => {\n\t\t\t\tif ( true === data.success ) {\n\t\t\t\t\tdashboardBanner.remove();\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\tsaveSubscribedEmail( email ) {\n\t\treturn fetch( window.ajaxurl, {\n\t\t\tmethod: 'POST',\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'application/x-www-form-urlencoded'\n\t\t\t},\n\t\t\tbody: new URLSearchParams({\n\t\t\t\taction: this.options.ajax.action,\n\t\t\t\tdashboard_action: this.options.ajax.dashboardActions.saveSubscribedEmail,\n\t\t\t\temail: email\n\t\t\t})\n\t\t}).then( result => result.json() );\n\t}\n\n\tcloseWelcomeBannerSaveCookieRequest() {\n\t\treturn fetch( window.ajaxurl, {\n\t\t\tmethod: 'POST',\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'application/x-www-form-urlencoded'\n\t\t\t},\n\t\t\tbody: new URLSearchParams({\n\t\t\t\taction: this.options.ajax.action,\n\t\t\t\tdashboard_action: this.options.ajax.dashboardActions.welcomeBanner,\n\t\t\t\tbanner_has_closed: 1\n\t\t\t})\n\t\t}).then( result => result.json() );\n\t}\n}\nconst frmDashboardClass = new frmDashboard();\ndocument.addEventListener( 'DOMContentLoaded', () => {\n\tfrmDashboardClass.init();\n});\n"],"names":["frmAnimate","elements","type","arguments","length","undefined","_classCallCheck","prepareElements","_createClass","key","value","fadeIn","_this","applyStyleToElements","element","classList","add","addEventListener","resetOpacity","remove","once","cascadeFadeIn","_this2","delay","setTimeout","index","style","transitionDelay","_this3","opacity","callback","Element","forEach","frmCounter","options","dataset","counter","template","parseInt","activeCounter","locale","replace","timeoutInterval","timeToFinish","timetoFinish","valueStep","Math","ceil","animate","formatNumber","number","toLocaleString","minimumFractionDigits","round","innerText","bind","frmTabsNavigator","wrapper","document","querySelector","flexboxSlidesGap","navs","querySelectorAll","slideTrackLine","slideTrack","slides","init","trackLine","initDefaultSlideTrackerWidth","nav","event","onNavClick","removeActiveClassnameFromNavs","target","initSlideTrackUnderline","changeSlide","initialWidth","width","concat","activeNav","filter","contains","transform","offsetLeft","clientWidth","removeActiveClassnameFromSlides","translate","slide","frmDashboard","ajax","action","dashboardActions","welcomeBanner","checkEmailIfSubscribed","saveSubscribedEmail","widgetsAnimate","initInbox","initCounters","initCloseWelcomeBanner","userEmailInput","subscribeButton","then","counters","closeButton","dashboardBanner","closeWelcomeBannerSaveCookieRequest","data","success","email","fetch","window","ajaxurl","method","headers","body","URLSearchParams","dashboard_action","result","json","banner_has_closed","frmDashboardClass"],"sourceRoot":""} \ No newline at end of file diff --git a/js/formidable_styles.js b/js/formidable_styles.js index 134f64f1a8..912fba6722 100644 --- a/js/formidable_styles.js +++ b/js/formidable_styles.js @@ -1 +1 @@ -!function(){var e={588:function(e){e.exports=function(e,t){var n,r,i=0;function o(){var o,a,s=n,l=arguments.length;e:for(;s;){if(s.args.length===arguments.length){for(a=0;a=0),s.type){case"b":n=parseInt(n,10).toString(2);break;case"c":n=String.fromCharCode(parseInt(n,10));break;case"d":case"i":n=parseInt(n,10);break;case"j":n=JSON.stringify(n,null,s.width?parseInt(s.width):0);break;case"e":n=s.precision?parseFloat(n).toExponential(s.precision):parseFloat(n).toExponential();break;case"f":n=s.precision?parseFloat(n).toFixed(s.precision):parseFloat(n);break;case"g":n=s.precision?String(Number(n.toPrecision(s.precision))):parseFloat(n);break;case"o":n=(parseInt(n,10)>>>0).toString(8);break;case"s":n=String(n),n=s.precision?n.substring(0,s.precision):n;break;case"t":n=String(!!n),n=s.precision?n.substring(0,s.precision):n;break;case"T":n=Object.prototype.toString.call(n).slice(8,-1).toLowerCase(),n=s.precision?n.substring(0,s.precision):n;break;case"u":n=parseInt(n,10)>>>0;break;case"v":n=n.valueOf(),n=s.precision?n.substring(0,s.precision):n;break;case"x":n=(parseInt(n,10)>>>0).toString(16);break;case"X":n=(parseInt(n,10)>>>0).toString(16).toUpperCase()}i.json.test(s.type)?v+=n:(!i.number.test(s.type)||f&&!s.sign?d="":(d=f?"+":"-",n=n.toString().replace(i.sign,"")),c=s.pad_char?"0"===s.pad_char?"0":s.pad_char.charAt(1):" ",u=s.width-(d+n).length,l=s.width&&u>0?c.repeat(u):"",v+=s.align?d+n+l:"0"===c?d+l+n:l+d+n)}return v}(function(e){if(s[e])return s[e];for(var t,n=e,r=[],o=0;n;){if(null!==(t=i.text.exec(n)))r.push(t[0]);else if(null!==(t=i.modulo.exec(n)))r.push("%");else{if(null===(t=i.placeholder.exec(n)))throw new SyntaxError("[sprintf] unexpected placeholder");if(t[2]){o|=1;var a=[],l=t[2],c=[];if(null===(c=i.key.exec(l)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(a.push(c[1]);""!==(l=l.substring(c[0].length));)if(null!==(c=i.key_access.exec(l)))a.push(c[1]);else{if(null===(c=i.index_access.exec(l)))throw new SyntaxError("[sprintf] failed to parse named argument key");a.push(c[1])}t[2]=a}else o|=2;if(3===o)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");r.push({placeholder:t[0],param_no:t[1],keys:t[2],sign:t[3],pad_char:t[4],align:t[5],width:t[6],precision:t[7],type:t[8]})}n=n.substring(t[0].length)}return s[e]=r}(e),arguments)}function a(e,t){return o.apply(null,[e].concat(t||[]))}var s=Object.create(null);"undefined"!=typeof window&&(window.sprintf=o,window.vsprintf=a,void 0===(r=function(){return{sprintf:o,vsprintf:a}}.call(t,n,t,e))||(e.exports=r))}()}},t={};function n(r){var i=t[r];if(void 0!==i)return i.exports;var o=t[r]={exports:{}};return e[r](o,o.exports,n),o.exports}n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,{a:t}),t},n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},function(){"use strict";var e,t,r,i,o=n(588),a=n.n(o);function s(e){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s(e)}function l(e,t,n){return r=function(e,t){if("object"!=s(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,"string");if("object"!=s(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(t),(t="symbol"==s(r)?r:String(r))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e;var r}n(975),a()(console.error),e={"(":9,"!":8,"*":7,"/":7,"%":7,"+":6,"-":6,"<":5,"<=":5,">":5,">=":5,"==":4,"!=":4,"&&":3,"||":2,"?":1,"?:":1},t=["(","?"],r={")":["("],":":["?","?:"]},i=/<=|>=|==|!=|&&|\|\||\?:|\(|!|\*|\/|%|\+|-|<|>|\?|\)|:/;var c={"!":function(e){return!e},"*":function(e,t){return e*t},"/":function(e,t){return e/t},"%":function(e,t){return e%t},"+":function(e,t){return e+t},"-":function(e,t){return e-t},"<":function(e,t){return e":function(e,t){return e>t},">=":function(e,t){return e>=t},"==":function(e,t){return e===t},"!=":function(e,t){return e!==t},"&&":function(e,t){return e&&t},"||":function(e,t){return e||t},"?:":function(e,t,n){if(e)throw t;return n}};var u={contextDelimiter:"",onMissingKey:null};function f(e,t){var n;for(n in this.data=e,this.pluralForms={},this.options={},u)this.options[n]=void 0!==t&&n in t?t[n]:u[n]}function d(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function p(e){for(var t=1;t=0||e[l]3&&void 0!==arguments[3]?arguments[3]:10,a=e[t];if(y(n)&&m(r))if("function"==typeof i)if("number"==typeof o){var s={callback:i,priority:o,namespace:r};if(a[n]){var l,c=a[n].handlers;for(l=c.length;l>0&&!(o>=c[l-1].priority);l--);l===c.length?c[l]=s:c.splice(l,0,s),a.__current.forEach((function(e){e.name===n&&e.currentIndex>=l&&e.currentIndex++}))}else a[n]={handlers:[s],runs:0};"hookAdded"!==n&&e.doAction("hookAdded",n,r,i,o)}else console.error("If specified, the hook priority must be a number.");else console.error("The hook callback must be a function.")}},b=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(r,i){var o=e[t];if(y(r)&&(n||m(i))){if(!o[r])return 0;var a=0;if(n)a=o[r].handlers.length,o[r]={runs:o[r].runs,handlers:[]};else for(var s=o[r].handlers,l=function(e){s[e].namespace===i&&(s.splice(e,1),a++,o.__current.forEach((function(t){t.name===r&&t.currentIndex>=e&&t.currentIndex--})))},c=s.length-1;c>=0;c--)l(c);return"hookRemoved"!==r&&e.doAction("hookRemoved",r,i),a}}},S=function(e,t){return function(n,r){var i=e[t];return void 0!==r?n in i&&i[n].handlers.some((function(e){return e.namespace===r})):n in i}},k=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(r){var i=e[t];i[r]||(i[r]={handlers:[],runs:0}),i[r].runs++;for(var o=i[r].handlers,a=arguments.length,s=new Array(a>1?a-1:0),l=1;l1&&void 0!==arguments[1]?arguments[1]:"default";r.data[t]=p(p(p({},h),r.data[t]),e),r.data[t][""]=p(p({},h[""]),r.data[t][""])},s=function(e,t){a(e,t),o()},l=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default",t=arguments.length>1?arguments[1]:void 0,n=arguments.length>2?arguments[2]:void 0,i=arguments.length>3?arguments[3]:void 0,o=arguments.length>4?arguments[4]:void 0;return r.data[e]||a(void 0,e),r.dcnpgettext(e,t,n,i,o)},c=function(){return arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default"},u=function(e,t,r){var i=l(r,t,e);return n?(i=n.applyFilters("i18n.gettext_with_context",i,e,t,r),n.applyFilters("i18n.gettext_with_context_"+c(r),i,e,t,r)):i};if(n){var d=function(e){v.test(e)&&o()};n.addAction("hookAdded","core/i18n",d),n.addAction("hookRemoved","core/i18n",d)}return{getLocaleData:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default";return r.data[e]},setLocaleData:s,resetLocaleData:function(e,t){r.data={},r.pluralForms={},s(e,t)},subscribe:function(e){return i.add(e),function(){return i.delete(e)}},__:function(e,t){var r=l(t,void 0,e);return n?(r=n.applyFilters("i18n.gettext",r,e,t),n.applyFilters("i18n.gettext_"+c(t),r,e,t)):r},_x:u,_n:function(e,t,r,i){var o=l(i,void 0,e,t,r);return n?(o=n.applyFilters("i18n.ngettext",o,e,t,r,i),n.applyFilters("i18n.ngettext_"+c(i),o,e,t,r,i)):o},_nx:function(e,t,r,i,o){var a=l(o,i,e,t,r);return n?(a=n.applyFilters("i18n.ngettext_with_context",a,e,t,r,i,o),n.applyFilters("i18n.ngettext_with_context_"+c(o),a,e,t,r,i,o)):a},isRTL:function(){return"rtl"===u("ltr","text direction")},hasTranslation:function(e,t,i){var o,a,s=t?t+""+e:e,l=!(null===(o=r.data)||void 0===o||null===(a=o[null!=i?i:"default"])||void 0===a||!a[s]);return n&&(l=n.applyFilters("i18n.has_translation",l,e,t,i),l=n.applyFilters("i18n.has_translation_"+c(i),l,e,t,i)),l}}}(0,0,_)),A=(L.getLocaleData.bind(L),L.setLocaleData.bind(L),L.resetLocaleData.bind(L),L.subscribe.bind(L),L.__.bind(L)),C=(L._x.bind(L),L._n.bind(L),L._nx.bind(L),L.isRTL.bind(L),L.hasTranslation.bind(L),"frm_hidden");function T(e){return T="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},T(e)}function q(e,t){for(var n=0;n=i)){var o=r.querySelector("select").value,a=this.calculateValue(i,n,this.getMaxValue(o,t));r.querySelector('.frm-slider-value input[type="text"]').value=a,r.querySelector(".frm-slider-bullet .frm-slider-value-label").innerText=a,r.querySelector(".frm-slider-active-track").style.width="".concat(n,"px"),this.initChildSlidersWidth(r,n,t,a+o),this.options[t].translateX=n,this.options[t].value=a+o,this.options[t].fullValue=this.updateValue(r,this.options[t].value),this.valueChangeDebouncer(t)}}}},{key:"getMaxValue",value:function(e,t){return"%"===e?100:this.options[t].maxValue}},{key:"enableDragging",value:function(e,t){e.target.classList.add("frm-dragging"),this.options[t].dragging=!0,this.options[t].startX=e.clientX-this.options[t].translateX}},{key:"disableDragging",value:function(e,t){!1!==this.options[e].dragging&&(t.target.classList.remove("frm-dragging"),this.options[e].dragging=!1,this.triggerValueChange(e))}},{key:"triggerValueChange",value:function(e){var t=this;if(null===this.options[e].dependentUpdater){var n=this.sliderElements[e].classList.contains("frm-has-multiple-values")?this.sliderElements[e].closest(".frm-style-component").querySelector('input[type="hidden"]'):this.sliderElements[e].querySelectorAll('.frm-slider-value input[type="hidden"]');n instanceof NodeList?n.forEach((function(n){n.dispatchEvent(t.eventsChange[e])})):n.dispatchEvent(this.eventsChange[e])}else this.options[e].dependentUpdater.updateAllDependentElements(this.options[e].fullValue)}},{key:"calculateValue",value:function(e,t,n){var r=Math.ceil(this.sliderBulletWidth*(t/e)),i=Math.ceil((t+r)/e*n);return Math.min(i,n)}},{key:"updateValue",value:function(e,t){var n=this;if(e.classList.contains("frm-has-multiple-values")){var r=e.closest(".frm-style-component").querySelector('input[type="hidden"]'),i=r.value.split(" "),o=e.dataset.type;switch(i[2]||(i[2]="0px"),i[3]||(i[3]="0px"),o){case"vertical":i[0]=t,i[2]=t;break;case"horizontal":i[1]=t,i[3]=t;break;case"top":i[0]=t;break;case"bottom":i[2]=t;break;case"left":i[3]=t;break;case"right":i[1]=t}var a=i.join(" ");return r.value=a,this.getSliderGroupItems(e).forEach((function(e){var r=n.getUnitMeasureFromValue(t);e.querySelector('.frm-slider-value input[type="text"]').value=parseInt(t,10),e.querySelector("select").value=r})),a}if(e.classList.contains("frm-has-independent-fields")){var s=e.querySelectorAll('.frm-slider-value input[type="hidden"]'),l=e.querySelectorAll('.frm-slider-value input[type="text"]');return s.forEach((function(e,n){e.value=t,l[n+1].value=parseInt(t,10)})),t}return e.querySelector('.frm-slider-value input[type="hidden"]').value=t,t}},{key:"getUnitMeasureFromValue",value:function(e){return["%","px","em"].find((function(t){return e.includes(t)}))||""}}])&&W(t.prototype,n),Object.defineProperty(t,"prototype",{writable:!1}),e}();function R(e){return R="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},R(e)}function U(e,t){for(var n=0;n li"),this.slideTrackLine=this.wrapper.querySelector(".frm-tabs-active-underline"),this.slideTrack=this.wrapper.querySelector(".frm-tabs-slide-track"),this.slides=this.wrapper.querySelectorAll(".frm-tabs-slide-track > div"),this.init()))}var t,n;return t=e,(n=[{key:"init",value:function(){var e=this;null!==this.wrapper&&this.navs.length&&null!==this.trackLine&&null!==this.slideTrack&&this.slides.length&&(this.initDefaultSlideTrackerWidth(),this.navs.forEach((function(t,n){t.addEventListener("click",(function(t){return e.onNavClick(t,n)}))})))}},{key:"onNavClick",value:function(e,t){this.removeActiveClassnameFromNavs(),e.target.classList.add("frm-active"),this.initSlideTrackUnderline(e.target,t),this.changeSlide(t)}},{key:"initDefaultSlideTrackerWidth",value:function(){this.slideTrackLine.dataset.initialWidth&&(this.slideTrackLine.style.width="".concat(this.slideTrackLine.dataset.initialWidth,"px"))}},{key:"initSlideTrackUnderline",value:function(e,t){this.slideTrackLine.classList.remove("frm-first","frm-last");var n=void 0!==e?e:this.navs.filter((function(e){return e.classList.contains("frm-active")}));this.slideTrackLine.style.transform="translateX(".concat(n.offsetLeft,"px)"),this.slideTrackLine.style.width=n.clientWidth+"px",this.navs.length!==t+1?0===t&&this.slideTrackLine.classList.add("frm-first"):this.slideTrackLine.classList.add("frm-last")}},{key:"changeSlide",value:function(e){this.removeActiveClassnameFromSlides();var t=0==e?"0px":"calc( ( ".concat(100*e,"% + ").concat(parseInt(this.flexboxSlidesGap,10)*e,"px ) * -1 )");this.slideTrack.style.transform="translateX(".concat(t,")"),e in this.slides&&this.slides[e].classList.add("frm-active")}},{key:"removeActiveClassnameFromSlides",value:function(){this.slides.forEach((function(e){return e.classList.remove("frm-active")}))}},{key:"removeActiveClassnameFromNavs",value:function(){this.navs.forEach((function(e){return e.classList.remove("frm-active")}))}}])&&U(t.prototype,n),Object.defineProperty(t,"prototype",{writable:!1}),e}();function B(e){return B="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},B(e)}function G(e,t){for(var n=0;n ul").querySelectorAll(":scope > li").forEach((function(e){e.querySelector("h3").addEventListener("mouseover",(function(e){t.style.transform="translateY(".concat(e.target.closest("li").offsetTop,"px)"),t.classList.add("frm-animating"),t.classList.remove("frm_hidden"),setTimeout((function(){t.classList.remove("frm-animating")}),250)}))})),document.querySelectorAll("#frm_style_sidebar .accordion-section h3").forEach((function(e){e.addEventListener("click",(function(){t.classList.add("frm_hidden")}))}))}}},{key:"initStyleClassCopyToClipboard",value:function(e){var t=this;document.querySelector(".frm-copy-text").addEventListener("click",(function(n){var r=n.target.innerText;navigator.clipboard.writeText(r).then((function(){t.success(e)}))}))}}])&&K(t.prototype,n),Object.defineProperty(t,"prototype",{writable:!1}),e}())}()}(); \ No newline at end of file +!function(){var e={588:function(e){e.exports=function(e,t){var n,r,i=0;function o(){var o,a,s=n,l=arguments.length;e:for(;s;){if(s.args.length===arguments.length){for(a=0;a=0),s.type){case"b":n=parseInt(n,10).toString(2);break;case"c":n=String.fromCharCode(parseInt(n,10));break;case"d":case"i":n=parseInt(n,10);break;case"j":n=JSON.stringify(n,null,s.width?parseInt(s.width):0);break;case"e":n=s.precision?parseFloat(n).toExponential(s.precision):parseFloat(n).toExponential();break;case"f":n=s.precision?parseFloat(n).toFixed(s.precision):parseFloat(n);break;case"g":n=s.precision?String(Number(n.toPrecision(s.precision))):parseFloat(n);break;case"o":n=(parseInt(n,10)>>>0).toString(8);break;case"s":n=String(n),n=s.precision?n.substring(0,s.precision):n;break;case"t":n=String(!!n),n=s.precision?n.substring(0,s.precision):n;break;case"T":n=Object.prototype.toString.call(n).slice(8,-1).toLowerCase(),n=s.precision?n.substring(0,s.precision):n;break;case"u":n=parseInt(n,10)>>>0;break;case"v":n=n.valueOf(),n=s.precision?n.substring(0,s.precision):n;break;case"x":n=(parseInt(n,10)>>>0).toString(16);break;case"X":n=(parseInt(n,10)>>>0).toString(16).toUpperCase()}i.json.test(s.type)?v+=n:(!i.number.test(s.type)||f&&!s.sign?d="":(d=f?"+":"-",n=n.toString().replace(i.sign,"")),c=s.pad_char?"0"===s.pad_char?"0":s.pad_char.charAt(1):" ",u=s.width-(d+n).length,l=s.width&&u>0?c.repeat(u):"",v+=s.align?d+n+l:"0"===c?d+l+n:l+d+n)}return v}(function(e){if(s[e])return s[e];for(var t,n=e,r=[],o=0;n;){if(null!==(t=i.text.exec(n)))r.push(t[0]);else if(null!==(t=i.modulo.exec(n)))r.push("%");else{if(null===(t=i.placeholder.exec(n)))throw new SyntaxError("[sprintf] unexpected placeholder");if(t[2]){o|=1;var a=[],l=t[2],c=[];if(null===(c=i.key.exec(l)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(a.push(c[1]);""!==(l=l.substring(c[0].length));)if(null!==(c=i.key_access.exec(l)))a.push(c[1]);else{if(null===(c=i.index_access.exec(l)))throw new SyntaxError("[sprintf] failed to parse named argument key");a.push(c[1])}t[2]=a}else o|=2;if(3===o)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");r.push({placeholder:t[0],param_no:t[1],keys:t[2],sign:t[3],pad_char:t[4],align:t[5],width:t[6],precision:t[7],type:t[8]})}n=n.substring(t[0].length)}return s[e]=r}(e),arguments)}function a(e,t){return o.apply(null,[e].concat(t||[]))}var s=Object.create(null);"undefined"!=typeof window&&(window.sprintf=o,window.vsprintf=a,void 0===(r=function(){return{sprintf:o,vsprintf:a}}.call(t,n,t,e))||(e.exports=r))}()}},t={};function n(r){var i=t[r];if(void 0!==i)return i.exports;var o=t[r]={exports:{}};return e[r](o,o.exports,n),o.exports}n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,{a:t}),t},n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},function(){"use strict";var e,t,r,i,o=n(588),a=n.n(o);function s(e){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s(e)}function l(e,t,n){return r=function(e,t){if("object"!=s(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,"string");if("object"!=s(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(t),(t="symbol"==s(r)?r:String(r))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e;var r}n(975),a()(console.error),e={"(":9,"!":8,"*":7,"/":7,"%":7,"+":6,"-":6,"<":5,"<=":5,">":5,">=":5,"==":4,"!=":4,"&&":3,"||":2,"?":1,"?:":1},t=["(","?"],r={")":["("],":":["?","?:"]},i=/<=|>=|==|!=|&&|\|\||\?:|\(|!|\*|\/|%|\+|-|<|>|\?|\)|:/;var c={"!":function(e){return!e},"*":function(e,t){return e*t},"/":function(e,t){return e/t},"%":function(e,t){return e%t},"+":function(e,t){return e+t},"-":function(e,t){return e-t},"<":function(e,t){return e":function(e,t){return e>t},">=":function(e,t){return e>=t},"==":function(e,t){return e===t},"!=":function(e,t){return e!==t},"&&":function(e,t){return e&&t},"||":function(e,t){return e||t},"?:":function(e,t,n){if(e)throw t;return n}};var u={contextDelimiter:"",onMissingKey:null};function f(e,t){var n;for(n in this.data=e,this.pluralForms={},this.options={},u)this.options[n]=void 0!==t&&n in t?t[n]:u[n]}function d(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function p(e){for(var t=1;t=0||e[l]3&&void 0!==arguments[3]?arguments[3]:10,a=e[t];if(y(n)&&m(r))if("function"==typeof i)if("number"==typeof o){var s={callback:i,priority:o,namespace:r};if(a[n]){var l,c=a[n].handlers;for(l=c.length;l>0&&!(o>=c[l-1].priority);l--);l===c.length?c[l]=s:c.splice(l,0,s),a.__current.forEach((function(e){e.name===n&&e.currentIndex>=l&&e.currentIndex++}))}else a[n]={handlers:[s],runs:0};"hookAdded"!==n&&e.doAction("hookAdded",n,r,i,o)}else console.error("If specified, the hook priority must be a number.");else console.error("The hook callback must be a function.")}},b=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(r,i){var o=e[t];if(y(r)&&(n||m(i))){if(!o[r])return 0;var a=0;if(n)a=o[r].handlers.length,o[r]={runs:o[r].runs,handlers:[]};else for(var s=o[r].handlers,l=function(e){s[e].namespace===i&&(s.splice(e,1),a++,o.__current.forEach((function(t){t.name===r&&t.currentIndex>=e&&t.currentIndex--})))},c=s.length-1;c>=0;c--)l(c);return"hookRemoved"!==r&&e.doAction("hookRemoved",r,i),a}}},S=function(e,t){return function(n,r){var i=e[t];return void 0!==r?n in i&&i[n].handlers.some((function(e){return e.namespace===r})):n in i}},k=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(r){var i=e[t];i[r]||(i[r]={handlers:[],runs:0}),i[r].runs++;for(var o=i[r].handlers,a=arguments.length,s=new Array(a>1?a-1:0),l=1;l1&&void 0!==arguments[1]?arguments[1]:"default";r.data[t]=p(p(p({},h),r.data[t]),e),r.data[t][""]=p(p({},h[""]),r.data[t][""])},s=function(e,t){a(e,t),o()},l=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default",t=arguments.length>1?arguments[1]:void 0,n=arguments.length>2?arguments[2]:void 0,i=arguments.length>3?arguments[3]:void 0,o=arguments.length>4?arguments[4]:void 0;return r.data[e]||a(void 0,e),r.dcnpgettext(e,t,n,i,o)},c=function(){return arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default"},u=function(e,t,r){var i=l(r,t,e);return n?(i=n.applyFilters("i18n.gettext_with_context",i,e,t,r),n.applyFilters("i18n.gettext_with_context_"+c(r),i,e,t,r)):i};if(n){var d=function(e){v.test(e)&&o()};n.addAction("hookAdded","core/i18n",d),n.addAction("hookRemoved","core/i18n",d)}return{getLocaleData:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default";return r.data[e]},setLocaleData:s,resetLocaleData:function(e,t){r.data={},r.pluralForms={},s(e,t)},subscribe:function(e){return i.add(e),function(){return i.delete(e)}},__:function(e,t){var r=l(t,void 0,e);return n?(r=n.applyFilters("i18n.gettext",r,e,t),n.applyFilters("i18n.gettext_"+c(t),r,e,t)):r},_x:u,_n:function(e,t,r,i){var o=l(i,void 0,e,t,r);return n?(o=n.applyFilters("i18n.ngettext",o,e,t,r,i),n.applyFilters("i18n.ngettext_"+c(i),o,e,t,r,i)):o},_nx:function(e,t,r,i,o){var a=l(o,i,e,t,r);return n?(a=n.applyFilters("i18n.ngettext_with_context",a,e,t,r,i,o),n.applyFilters("i18n.ngettext_with_context_"+c(o),a,e,t,r,i,o)):a},isRTL:function(){return"rtl"===u("ltr","text direction")},hasTranslation:function(e,t,i){var o,a,s=t?t+""+e:e,l=!(null===(o=r.data)||void 0===o||null===(a=o[null!=i?i:"default"])||void 0===a||!a[s]);return n&&(l=n.applyFilters("i18n.has_translation",l,e,t,i),l=n.applyFilters("i18n.has_translation_"+c(i),l,e,t,i)),l}}}(0,0,E)),A=(L.getLocaleData.bind(L),L.setLocaleData.bind(L),L.resetLocaleData.bind(L),L.subscribe.bind(L),L.__.bind(L)),C=(L._x.bind(L),L._n.bind(L),L._nx.bind(L),L.isRTL.bind(L),L.hasTranslation.bind(L),"frm_hidden");function T(e){return T="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},T(e)}function q(e,t){for(var n=0;n=i)){var o=r.querySelector("select").value,a=this.calculateValue(i,n,this.getMaxValue(o,t));r.querySelector('.frm-slider-value input[type="text"]').value=a,r.querySelector(".frm-slider-bullet .frm-slider-value-label").innerText=a,r.querySelector(".frm-slider-active-track").style.width="".concat(n,"px"),this.initChildSlidersWidth(r,n,t,a+o),this.options[t].translateX=n,this.options[t].value=a+o,this.options[t].fullValue=this.updateValue(r,this.options[t].value),this.valueChangeDebouncer(t)}}}},{key:"getMaxValue",value:function(e,t){return"%"===e?100:this.options[t].maxValue}},{key:"enableDragging",value:function(e,t){e.target.classList.add("frm-dragging"),this.options[t].dragging=!0,this.options[t].startX=e.clientX-this.options[t].translateX}},{key:"disableDragging",value:function(e,t){!1!==this.options[e].dragging&&(t.target.classList.remove("frm-dragging"),this.options[e].dragging=!1,this.triggerValueChange(e))}},{key:"triggerValueChange",value:function(e){var t=this;if(null===this.options[e].dependentUpdater){var n=this.sliderElements[e].classList.contains("frm-has-multiple-values")?this.sliderElements[e].closest(".frm-style-component").querySelector('input[type="hidden"]'):this.sliderElements[e].querySelectorAll('.frm-slider-value input[type="hidden"]');n instanceof NodeList?n.forEach((function(n){n.dispatchEvent(t.eventsChange[e])})):n.dispatchEvent(this.eventsChange[e])}else this.options[e].dependentUpdater.updateAllDependentElements(this.options[e].fullValue)}},{key:"calculateValue",value:function(e,t,n){var r=Math.ceil(this.sliderBulletWidth*(t/e)),i=Math.ceil((t+r)/e*n);return Math.min(i,n)}},{key:"updateValue",value:function(e,t){var n=this;if(e.classList.contains("frm-has-multiple-values")){var r=e.closest(".frm-style-component").querySelector('input[type="hidden"]'),i=r.value.split(" "),o=e.dataset.type;switch(i[2]||(i[2]="0px"),i[3]||(i[3]="0px"),o){case"vertical":i[0]=t,i[2]=t;break;case"horizontal":i[1]=t,i[3]=t;break;case"top":i[0]=t;break;case"bottom":i[2]=t;break;case"left":i[3]=t;break;case"right":i[1]=t}var a=i.join(" ");return r.value=a,this.getSliderGroupItems(e).forEach((function(e){var r=n.getUnitMeasureFromValue(t);e.querySelector('.frm-slider-value input[type="text"]').value=parseInt(t,10),e.querySelector("select").value=r})),a}if(e.classList.contains("frm-has-independent-fields")){var s=e.querySelectorAll('.frm-slider-value input[type="hidden"]'),l=e.querySelectorAll('.frm-slider-value input[type="text"]');return s.forEach((function(e,n){e.value=t,l[n+1].value=parseInt(t,10)})),t}return e.querySelector('.frm-slider-value input[type="hidden"]').value=t,t}},{key:"getUnitMeasureFromValue",value:function(e){return["%","px","em"].find((function(t){return e.includes(t)}))||""}}])&&W(t.prototype,n),Object.defineProperty(t,"prototype",{writable:!1}),e}();function R(e){return R="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},R(e)}function U(e,t){for(var n=0;n li"),this.slideTrackLine=this.wrapper.querySelector(".frm-tabs-active-underline"),this.slideTrack=this.wrapper.querySelector(".frm-tabs-slide-track"),this.slides=this.wrapper.querySelectorAll(".frm-tabs-slide-track > div"),this.init()))}var t,n;return t=e,(n=[{key:"init",value:function(){var e=this;null!==this.wrapper&&this.navs.length&&null!==this.trackLine&&null!==this.slideTrack&&this.slides.length&&(this.initDefaultSlideTrackerWidth(),this.navs.forEach((function(t,n){t.addEventListener("click",(function(t){return e.onNavClick(t,n)}))})))}},{key:"onNavClick",value:function(e,t){this.removeActiveClassnameFromNavs(),e.target.classList.add("frm-active"),this.initSlideTrackUnderline(e.target,t),this.changeSlide(t)}},{key:"initDefaultSlideTrackerWidth",value:function(){this.slideTrackLine.dataset.initialWidth&&(this.slideTrackLine.style.width="".concat(this.slideTrackLine.dataset.initialWidth,"px"))}},{key:"initSlideTrackUnderline",value:function(e,t){this.slideTrackLine.classList.remove("frm-first","frm-last");var n=void 0!==e?e:this.navs.filter((function(e){return e.classList.contains("frm-active")}));this.slideTrackLine.style.transform="translateX(".concat(n.offsetLeft,"px)"),this.slideTrackLine.style.width=n.clientWidth+"px",this.navs.length!==t+1?0===t&&this.slideTrackLine.classList.add("frm-first"):this.slideTrackLine.classList.add("frm-last")}},{key:"changeSlide",value:function(e){this.removeActiveClassnameFromSlides();var t=0==e?"0px":"calc( ( ".concat(100*e,"% + ").concat(parseInt(this.flexboxSlidesGap,10)*e,"px ) * -1 )");this.slideTrack.style.transform="translateX(".concat(t,")"),e in this.slides&&this.slides[e].classList.add("frm-active")}},{key:"removeActiveClassnameFromSlides",value:function(){this.slides.forEach((function(e){return e.classList.remove("frm-active")}))}},{key:"removeActiveClassnameFromNavs",value:function(){this.navs.forEach((function(e){return e.classList.remove("frm-active")}))}}])&&U(t.prototype,n),Object.defineProperty(t,"prototype",{writable:!1}),e}();function B(e){return B="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},B(e)}function G(e,t){for(var n=0;n ul").querySelectorAll(":scope > li").forEach((function(e){e.querySelector("h3").addEventListener("mouseover",(function(e){t.style.transform="translateY(".concat(e.target.closest("li").offsetTop,"px)"),t.classList.add("frm-animating"),t.classList.remove("frm_hidden"),setTimeout((function(){t.classList.remove("frm-animating")}),250)}))})),document.querySelectorAll("#frm_style_sidebar .accordion-section h3").forEach((function(e){e.addEventListener("click",(function(){t.classList.add("frm_hidden")}))}))}}},{key:"initStyleClassCopyToClipboard",value:function(e){var t=this;document.querySelector(".frm-copy-text").addEventListener("click",(function(n){var r=n.target.innerText;navigator.clipboard.writeText(r).then((function(){t.success(e)}))}))}}])&&K(t.prototype,n),Object.defineProperty(t,"prototype",{writable:!1}),e}())}()}(); \ No newline at end of file diff --git a/js/formidable_styles.js.map b/js/formidable_styles.js.map index e7dcc7747b..e5523c7d3d 100644 --- a/js/formidable_styles.js.map +++ b/js/formidable_styles.js.map @@ -1 +1 @@ -{"version":3,"file":"formidable_styles.js","mappings":";;;;;;;;;;;;;;;;AAAsC;AACE;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,YAAY,aAAa,oBAAoB,MAAM;AACnD;AACe;AACf,aAAa,2DAAO;;AAEpB;AACA,SAAS,4DAAQ;AACjB;AACA;;;;;;;;;;;;;;;;AC5BA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB;AACA,YAAY,GAAG;AACf;AACe;AACf;AACA;;AAEA,cAAc,oBAAoB;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;AC7GsC;;AAEtC;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,YAAY,UAAU;AACtB;AACe;AACf,gBAAgB,2DAAO;;AAEvB;AACA,sBAAsB,OAAO;AAC7B;AACA;;;;;;;;;;;;;;;;ACjBA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,YAAY,UAAU;AACtB;AACe;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;AC3HA;AACA;AACA;AACuD;AACF;AACrD;AACA;AACA;AACA;AACA;AACA,WAAW,sBAAsB;AACjC,WAAW,sBAAsB;AACjC,WAAW,sBAAsB;AACjC,WAAW,sBAAsB;AACjC;;AAEA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA,YAAY,SAAS;AACrB;;AAEA;AACA;AACA;AACA;;AAEA,SAAS,gEAAgB;AACzB;AACA;;AAEA,SAAS,iEAAiB;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;;;AAGN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,QAAQ;;AAEzB;;AAEA,gCAAgC,OAAO;AACvC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA,kBAAkB;AAClB;;;AAGA;AACA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,+DAAe,aAAa,EAAC;AAC7B;;;;;;;;;;;;ACtGA;AACA;AACA;AACA;AACA;AACA,YAAY,sBA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CA;AACA;AAC4B;AAC5B;AACA,aAAa,oBAAoB;AACjC;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,iCAAiC;AAC9C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,8CAA8C;AAC3D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,8CAA8C;AAC3D;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc,YAAY;;AAE1B,cAAc,YAAY;;AAE1B;AACA,aAAa,sDAAsD;AACnE;AACA;AACA;;AAEA;AACA,aAAa,6BAA6B;AAC1C;AACA;;AAEA;AACA,aAAa,2CAA2C;AACxD;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,4DAA4D;AACzE;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,6EAA6E;AAC1F;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,8FAA8F;AAC3G;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,eAAe;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,gEAAgE;AAC7E;AACA;AACA;;AAEA,cAAc,kCAAkC;;AAEhD;AACA;AACA;AACA;AACA,cAAc,eAAe;AAC7B,cAAc,eAAe;AAC7B;AACA,cAAc,iBAAiB;AAC/B;AACA,cAAc,WAAW;AACzB,cAAc,IAAI;AAClB,cAAc,IAAI;AAClB,cAAc,IAAI;AAClB;AACA,cAAc,KAAK;AACnB;AACA,cAAc,OAAO;AACrB,cAAc,gBAAgB;AAC9B;;AAEA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,YAAY,4BAA4B;AACxC;;AAEO;AACP;AACA;AACA;AACA,YAAY;AACZ;AACA,mBAAmB,8CAAM,GAAG;AAC5B;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,aAAa,mBAAmB;AAChC,cAAc,qBAAqB;AACn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A;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;;AAEA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,eAAe,SAAS;AACxB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA,2BAA2B,eAAe;AAC1C,qBAAqB,iBAAiB;AACtC,cAAc,iBAAiB;AAC/B,IAAI;AACJ;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,MAAM,KAA+B,GAAG,EAMtC;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;ACtKA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA,gCAAgC,oBAAoB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA,uBAAuB;AACvB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ,IAA8B;AACtC,QAAQ,eAAkB;AAC1B,QAAQ,gBAAmB;AAC3B;AACA;AACA;AACA;;AAEA,YAAY,IAA6C;AACzD,YAAY,mCAAO;AACnB;AACA;AACA;AACA;AACA,aAAa;AAAA,kGAAC;AACd;AACA;AACA;AACA,CAAC,IAAI;;;;;;;;;;;;;;;;;ACtO0C;;AAE/C;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA,cAAc,mBAAmB;AACjC,cAAc,mBAAmB;AACjC,cAAc,mBAAmB;AACjC;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,iBAAiB;AAC9B;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,gGAAgG;AAC9G;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,qCAAqC;AACnD;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,gBAAgB;AACrD;AACA;AACA,WAAW,QAAQ;AACnB;AACA,YAAY,QAAQ;AACpB;AACA;AACA;;AAEA,qBAAqB;;AAErB,cAAc,kBAAkB;AAChC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,kBAAkB;AAC7B,WAAW,kBAAkB;AAC7B;AACe;AACf;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,QAAQ,gEAAW;AACnB;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,aAAa;AACxB,WAAW,aAAa;AACxB,WAAW,aAAa;AACxB;AACA,WAAW,aAAa;AACxB;AACA,YAAY,QAAQ;AACpB;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACpNe;AACf;AACA,yCAAyC,SAAS;AAClD;AACA;;;;;;;;;;;;;;;;ACJqD;AACtC;AACf,iCAAiC,gEAAgB;AACjD;;;;;;;;;;;;;;;ACHe;AACf;AACA;AACA;AACA;;;;;;;;;;;;;;;ACJe;AACf;AACA;;;;;;;;;;;;;;;ACFe;AACf;AACA;;;;;;;;;;;;;;;;;;;ACFuD;AACJ;AACsB;AAClB;AACxC;AACf,SAAS,iEAAiB,SAAS,+DAAe,SAAS,0EAA0B,SAAS,iEAAiB;AAC/G;;;;;;;;;;;;;;;;ACNqD;AACtC;AACf;AACA,oCAAoC,gEAAgB;AACpD;AACA;AACA;AACA,sFAAsF,gEAAgB;AACtG;;;;;;;;;;;;;;;;ACR+C;AAChC;AACf,QAAQ,6DAAa;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACdkC;AACnB;AACf,kBA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","sources":["webpack://formidable/./node_modules/@tannin/compile/index.js","webpack://formidable/./node_modules/@tannin/evaluate/index.js","webpack://formidable/./node_modules/@tannin/plural-forms/index.js","webpack://formidable/./node_modules/@tannin/postfix/index.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createAddHook.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createCurrentHook.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createDidHook.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createDoingHook.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createHasHook.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createHooks.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createRemoveHook.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createRunHook.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/index.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/validateHookName.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/validateNamespace.js","webpack://formidable/./node_modules/@wordpress/i18n/build-module/create-i18n.js","webpack://formidable/./node_modules/@wordpress/i18n/build-module/default-i18n.js","webpack://formidable/./node_modules/@wordpress/i18n/build-module/index.js","webpack://formidable/./node_modules/@wordpress/i18n/build-module/sprintf.js","webpack://formidable/./js/src/admin/styles/dependent-updater-component.js","webpack://formidable/./js/src/admin/styles/radio-style-component.js","webpack://formidable/./js/src/admin/styles/slider-style-component.js","webpack://formidable/./js/src/admin/styles/tabs-style-component.js","webpack://formidable/./js/src/components/class-tabs-navigator.js","webpack://formidable/./node_modules/memize/index.js","webpack://formidable/./node_modules/sprintf-js/src/sprintf.js","webpack://formidable/./node_modules/tannin/index.js","webpack://formidable/./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://formidable/./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://formidable/./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://formidable/./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://formidable/./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://formidable/./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://formidable/./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://formidable/./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://formidable/./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://formidable/./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://formidable/./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://formidable/webpack/bootstrap","webpack://formidable/webpack/runtime/compat get default export","webpack://formidable/webpack/runtime/define property getters","webpack://formidable/webpack/runtime/hasOwnProperty shorthand","webpack://formidable/webpack/runtime/make namespace object","webpack://formidable/./js/src/admin/styles.js"],"sourcesContent":["import postfix from '@tannin/postfix';\nimport evaluate from '@tannin/evaluate';\n\n/**\n * Given a C expression, returns a function which can be called to evaluate its\n * result.\n *\n * @example\n *\n * ```js\n * import compile from '@tannin/compile';\n *\n * const evaluate = compile( 'n > 1' );\n *\n * evaluate( { n: 2 } );\n * // ⇒ true\n * ```\n *\n * @param {string} expression C expression.\n *\n * @return {(variables?:{[variable:string]:*})=>*} Compiled evaluator.\n */\nexport default function compile( expression ) {\n\tvar terms = postfix( expression );\n\n\treturn function( variables ) {\n\t\treturn evaluate( terms, variables );\n\t};\n}\n","/**\n * Operator callback functions.\n *\n * @type {Object}\n */\nvar OPERATORS = {\n\t'!': function( a ) {\n\t\treturn ! a;\n\t},\n\t'*': function( a, b ) {\n\t\treturn a * b;\n\t},\n\t'/': function( a, b ) {\n\t\treturn a / b;\n\t},\n\t'%': function( a, b ) {\n\t\treturn a % b;\n\t},\n\t'+': function( a, b ) {\n\t\treturn a + b;\n\t},\n\t'-': function( a, b ) {\n\t\treturn a - b;\n\t},\n\t'<': function( a, b ) {\n\t\treturn a < b;\n\t},\n\t'<=': function( a, b ) {\n\t\treturn a <= b;\n\t},\n\t'>': function( a, b ) {\n\t\treturn a > b;\n\t},\n\t'>=': function( a, b ) {\n\t\treturn a >= b;\n\t},\n\t'==': function( a, b ) {\n\t\treturn a === b;\n\t},\n\t'!=': function( a, b ) {\n\t\treturn a !== b;\n\t},\n\t'&&': function( a, b ) {\n\t\treturn a && b;\n\t},\n\t'||': function( a, b ) {\n\t\treturn a || b;\n\t},\n\t'?:': function( a, b, c ) {\n\t\tif ( a ) {\n\t\t\tthrow b;\n\t\t}\n\n\t\treturn c;\n\t},\n};\n\n/**\n * Given an array of postfix terms and operand variables, returns the result of\n * the postfix evaluation.\n *\n * @example\n *\n * ```js\n * import evaluate from '@tannin/evaluate';\n *\n * // 3 + 4 * 5 / 6 ⇒ '3 4 5 * 6 / +'\n * const terms = [ '3', '4', '5', '*', '6', '/', '+' ];\n *\n * evaluate( terms, {} );\n * // ⇒ 6.333333333333334\n * ```\n *\n * @param {string[]} postfix Postfix terms.\n * @param {Object} variables Operand variables.\n *\n * @return {*} Result of evaluation.\n */\nexport default function evaluate( postfix, variables ) {\n\tvar stack = [],\n\t\ti, j, args, getOperatorResult, term, value;\n\n\tfor ( i = 0; i < postfix.length; i++ ) {\n\t\tterm = postfix[ i ];\n\n\t\tgetOperatorResult = OPERATORS[ term ];\n\t\tif ( getOperatorResult ) {\n\t\t\t// Pop from stack by number of function arguments.\n\t\t\tj = getOperatorResult.length;\n\t\t\targs = Array( j );\n\t\t\twhile ( j-- ) {\n\t\t\t\targs[ j ] = stack.pop();\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tvalue = getOperatorResult.apply( null, args );\n\t\t\t} catch ( earlyReturn ) {\n\t\t\t\treturn earlyReturn;\n\t\t\t}\n\t\t} else if ( variables.hasOwnProperty( term ) ) {\n\t\t\tvalue = variables[ term ];\n\t\t} else {\n\t\t\tvalue = +term;\n\t\t}\n\n\t\tstack.push( value );\n\t}\n\n\treturn stack[ 0 ];\n}\n","import compile from '@tannin/compile';\n\n/**\n * Given a C expression, returns a function which, when called with a value,\n * evaluates the result with the value assumed to be the \"n\" variable of the\n * expression. The result will be coerced to its numeric equivalent.\n *\n * @param {string} expression C expression.\n *\n * @return {Function} Evaluator function.\n */\nexport default function pluralForms( expression ) {\n\tvar evaluate = compile( expression );\n\n\treturn function( n ) {\n\t\treturn +evaluate( { n: n } );\n\t};\n}\n","var PRECEDENCE, OPENERS, TERMINATORS, PATTERN;\n\n/**\n * Operator precedence mapping.\n *\n * @type {Object}\n */\nPRECEDENCE = {\n\t'(': 9,\n\t'!': 8,\n\t'*': 7,\n\t'/': 7,\n\t'%': 7,\n\t'+': 6,\n\t'-': 6,\n\t'<': 5,\n\t'<=': 5,\n\t'>': 5,\n\t'>=': 5,\n\t'==': 4,\n\t'!=': 4,\n\t'&&': 3,\n\t'||': 2,\n\t'?': 1,\n\t'?:': 1,\n};\n\n/**\n * Characters which signal pair opening, to be terminated by terminators.\n *\n * @type {string[]}\n */\nOPENERS = [ '(', '?' ];\n\n/**\n * Characters which signal pair termination, the value an array with the\n * opener as its first member. The second member is an optional operator\n * replacement to push to the stack.\n *\n * @type {string[]}\n */\nTERMINATORS = {\n\t')': [ '(' ],\n\t':': [ '?', '?:' ],\n};\n\n/**\n * Pattern matching operators and openers.\n *\n * @type {RegExp}\n */\nPATTERN = /<=|>=|==|!=|&&|\\|\\||\\?:|\\(|!|\\*|\\/|%|\\+|-|<|>|\\?|\\)|:/;\n\n/**\n * Given a C expression, returns the equivalent postfix (Reverse Polish)\n * notation terms as an array.\n *\n * If a postfix string is desired, simply `.join( ' ' )` the result.\n *\n * @example\n *\n * ```js\n * import postfix from '@tannin/postfix';\n *\n * postfix( 'n > 1' );\n * // ⇒ [ 'n', '1', '>' ]\n * ```\n *\n * @param {string} expression C expression.\n *\n * @return {string[]} Postfix terms.\n */\nexport default function postfix( expression ) {\n\tvar terms = [],\n\t\tstack = [],\n\t\tmatch, operator, term, element;\n\n\twhile ( ( match = expression.match( PATTERN ) ) ) {\n\t\toperator = match[ 0 ];\n\n\t\t// Term is the string preceding the operator match. It may contain\n\t\t// whitespace, and may be empty (if operator is at beginning).\n\t\tterm = expression.substr( 0, match.index ).trim();\n\t\tif ( term ) {\n\t\t\tterms.push( term );\n\t\t}\n\n\t\twhile ( ( element = stack.pop() ) ) {\n\t\t\tif ( TERMINATORS[ operator ] ) {\n\t\t\t\tif ( TERMINATORS[ operator ][ 0 ] === element ) {\n\t\t\t\t\t// Substitution works here under assumption that because\n\t\t\t\t\t// the assigned operator will no longer be a terminator, it\n\t\t\t\t\t// will be pushed to the stack during the condition below.\n\t\t\t\t\toperator = TERMINATORS[ operator ][ 1 ] || operator;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else if ( OPENERS.indexOf( element ) >= 0 || PRECEDENCE[ element ] < PRECEDENCE[ operator ] ) {\n\t\t\t\t// Push to stack if either an opener or when pop reveals an\n\t\t\t\t// element of lower precedence.\n\t\t\t\tstack.push( element );\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\t// For each popped from stack, push to terms.\n\t\t\tterms.push( element );\n\t\t}\n\n\t\tif ( ! TERMINATORS[ operator ] ) {\n\t\t\tstack.push( operator );\n\t\t}\n\n\t\t// Slice matched fragment from expression to continue match.\n\t\texpression = expression.substr( match.index + operator.length );\n\t}\n\n\t// Push remainder of operand, if exists, to terms.\n\texpression = expression.trim();\n\tif ( expression ) {\n\t\tterms.push( expression );\n\t}\n\n\t// Pop remaining items from stack into terms.\n\treturn terms.concat( stack.reverse() );\n}\n","/**\n * Internal dependencies\n */\nimport validateNamespace from './validateNamespace.js';\nimport validateHookName from './validateHookName.js';\n/**\n * @callback AddHook\n *\n * Adds the hook to the appropriate hooks container.\n *\n * @param {string} hookName Name of hook to add\n * @param {string} namespace The unique namespace identifying the callback in the form `vendor/plugin/function`.\n * @param {import('.').Callback} callback Function to call when the hook is run\n * @param {number} [priority=10] Priority of this hook\n */\n\n/**\n * Returns a function which, when invoked, will add a hook.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n *\n * @return {AddHook} Function that adds a new hook.\n */\n\nfunction createAddHook(hooks, storeKey) {\n return function addHook(hookName, namespace, callback) {\n var priority = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 10;\n var hooksStore = hooks[storeKey];\n\n if (!validateHookName(hookName)) {\n return;\n }\n\n if (!validateNamespace(namespace)) {\n return;\n }\n\n if ('function' !== typeof callback) {\n // eslint-disable-next-line no-console\n console.error('The hook callback must be a function.');\n return;\n } // Validate numeric priority\n\n\n if ('number' !== typeof priority) {\n // eslint-disable-next-line no-console\n console.error('If specified, the hook priority must be a number.');\n return;\n }\n\n var handler = {\n callback: callback,\n priority: priority,\n namespace: namespace\n };\n\n if (hooksStore[hookName]) {\n // Find the correct insert index of the new hook.\n var handlers = hooksStore[hookName].handlers;\n /** @type {number} */\n\n var i;\n\n for (i = handlers.length; i > 0; i--) {\n if (priority >= handlers[i - 1].priority) {\n break;\n }\n }\n\n if (i === handlers.length) {\n // If append, operate via direct assignment.\n handlers[i] = handler;\n } else {\n // Otherwise, insert before index via splice.\n handlers.splice(i, 0, handler);\n } // We may also be currently executing this hook. If the callback\n // we're adding would come after the current callback, there's no\n // problem; otherwise we need to increase the execution index of\n // any other runs by 1 to account for the added element.\n\n\n hooksStore.__current.forEach(function (hookInfo) {\n if (hookInfo.name === hookName && hookInfo.currentIndex >= i) {\n hookInfo.currentIndex++;\n }\n });\n } else {\n // This is the first hook of its type.\n hooksStore[hookName] = {\n handlers: [handler],\n runs: 0\n };\n }\n\n if (hookName !== 'hookAdded') {\n hooks.doAction('hookAdded', hookName, namespace, callback, priority);\n }\n };\n}\n\nexport default createAddHook;\n//# sourceMappingURL=createAddHook.js.map","/**\n * Returns a function which, when invoked, will return the name of the\n * currently running hook, or `null` if no hook of the given type is currently\n * running.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n *\n * @return {() => string | null} Function that returns the current hook name or null.\n */\nfunction createCurrentHook(hooks, storeKey) {\n return function currentHook() {\n var _hooksStore$__current, _hooksStore$__current2;\n\n var hooksStore = hooks[storeKey];\n return (_hooksStore$__current = (_hooksStore$__current2 = hooksStore.__current[hooksStore.__current.length - 1]) === null || _hooksStore$__current2 === void 0 ? void 0 : _hooksStore$__current2.name) !== null && _hooksStore$__current !== void 0 ? _hooksStore$__current : null;\n };\n}\n\nexport default createCurrentHook;\n//# sourceMappingURL=createCurrentHook.js.map","/**\n * Internal dependencies\n */\nimport validateHookName from './validateHookName.js';\n/**\n * @callback DidHook\n *\n * Returns the number of times an action has been fired.\n *\n * @param {string} hookName The hook name to check.\n *\n * @return {number | undefined} The number of times the hook has run.\n */\n\n/**\n * Returns a function which, when invoked, will return the number of times a\n * hook has been called.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n *\n * @return {DidHook} Function that returns a hook's call count.\n */\n\nfunction createDidHook(hooks, storeKey) {\n return function didHook(hookName) {\n var hooksStore = hooks[storeKey];\n\n if (!validateHookName(hookName)) {\n return;\n }\n\n return hooksStore[hookName] && hooksStore[hookName].runs ? hooksStore[hookName].runs : 0;\n };\n}\n\nexport default createDidHook;\n//# sourceMappingURL=createDidHook.js.map","/**\n * @callback DoingHook\n * Returns whether a hook is currently being executed.\n *\n * @param {string} [hookName] The name of the hook to check for. If\n * omitted, will check for any hook being executed.\n *\n * @return {boolean} Whether the hook is being executed.\n */\n\n/**\n * Returns a function which, when invoked, will return whether a hook is\n * currently being executed.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n *\n * @return {DoingHook} Function that returns whether a hook is currently\n * being executed.\n */\nfunction createDoingHook(hooks, storeKey) {\n return function doingHook(hookName) {\n var hooksStore = hooks[storeKey]; // If the hookName was not passed, check for any current hook.\n\n if ('undefined' === typeof hookName) {\n return 'undefined' !== typeof hooksStore.__current[0];\n } // Return the __current hook.\n\n\n return hooksStore.__current[0] ? hookName === hooksStore.__current[0].name : false;\n };\n}\n\nexport default createDoingHook;\n//# sourceMappingURL=createDoingHook.js.map","/**\n * @callback HasHook\n *\n * Returns whether any handlers are attached for the given hookName and optional namespace.\n *\n * @param {string} hookName The name of the hook to check for.\n * @param {string} [namespace] Optional. The unique namespace identifying the callback\n * in the form `vendor/plugin/function`.\n *\n * @return {boolean} Whether there are handlers that are attached to the given hook.\n */\n\n/**\n * Returns a function which, when invoked, will return whether any handlers are\n * attached to a particular hook.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n *\n * @return {HasHook} Function that returns whether any handlers are\n * attached to a particular hook and optional namespace.\n */\nfunction createHasHook(hooks, storeKey) {\n return function hasHook(hookName, namespace) {\n var hooksStore = hooks[storeKey]; // Use the namespace if provided.\n\n if ('undefined' !== typeof namespace) {\n return hookName in hooksStore && hooksStore[hookName].handlers.some(function (hook) {\n return hook.namespace === namespace;\n });\n }\n\n return hookName in hooksStore;\n };\n}\n\nexport default createHasHook;\n//# sourceMappingURL=createHasHook.js.map","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\n\n/**\n * Internal dependencies\n */\nimport createAddHook from './createAddHook';\nimport createRemoveHook from './createRemoveHook';\nimport createHasHook from './createHasHook';\nimport createRunHook from './createRunHook';\nimport createCurrentHook from './createCurrentHook';\nimport createDoingHook from './createDoingHook';\nimport createDidHook from './createDidHook';\n/**\n * Internal class for constructing hooks. Use `createHooks()` function\n *\n * Note, it is necessary to expose this class to make its type public.\n *\n * @private\n */\n\nexport var _Hooks = function _Hooks() {\n _classCallCheck(this, _Hooks);\n\n /** @type {import('.').Store} actions */\n this.actions = Object.create(null);\n this.actions.__current = [];\n /** @type {import('.').Store} filters */\n\n this.filters = Object.create(null);\n this.filters.__current = [];\n this.addAction = createAddHook(this, 'actions');\n this.addFilter = createAddHook(this, 'filters');\n this.removeAction = createRemoveHook(this, 'actions');\n this.removeFilter = createRemoveHook(this, 'filters');\n this.hasAction = createHasHook(this, 'actions');\n this.hasFilter = createHasHook(this, 'filters');\n this.removeAllActions = createRemoveHook(this, 'actions', true);\n this.removeAllFilters = createRemoveHook(this, 'filters', true);\n this.doAction = createRunHook(this, 'actions');\n this.applyFilters = createRunHook(this, 'filters', true);\n this.currentAction = createCurrentHook(this, 'actions');\n this.currentFilter = createCurrentHook(this, 'filters');\n this.doingAction = createDoingHook(this, 'actions');\n this.doingFilter = createDoingHook(this, 'filters');\n this.didAction = createDidHook(this, 'actions');\n this.didFilter = createDidHook(this, 'filters');\n};\n/** @typedef {_Hooks} Hooks */\n\n/**\n * Returns an instance of the hooks object.\n *\n * @return {Hooks} A Hooks instance.\n */\n\nfunction createHooks() {\n return new _Hooks();\n}\n\nexport default createHooks;\n//# sourceMappingURL=createHooks.js.map","/**\n * Internal dependencies\n */\nimport validateNamespace from './validateNamespace.js';\nimport validateHookName from './validateHookName.js';\n/**\n * @callback RemoveHook\n * Removes the specified callback (or all callbacks) from the hook with a given hookName\n * and namespace.\n *\n * @param {string} hookName The name of the hook to modify.\n * @param {string} namespace The unique namespace identifying the callback in the\n * form `vendor/plugin/function`.\n *\n * @return {number | undefined} The number of callbacks removed.\n */\n\n/**\n * Returns a function which, when invoked, will remove a specified hook or all\n * hooks by the given name.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n * @param {boolean} [removeAll=false] Whether to remove all callbacks for a hookName,\n * without regard to namespace. Used to create\n * `removeAll*` functions.\n *\n * @return {RemoveHook} Function that removes hooks.\n */\n\nfunction createRemoveHook(hooks, storeKey) {\n var removeAll = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n return function removeHook(hookName, namespace) {\n var hooksStore = hooks[storeKey];\n\n if (!validateHookName(hookName)) {\n return;\n }\n\n if (!removeAll && !validateNamespace(namespace)) {\n return;\n } // Bail if no hooks exist by this name\n\n\n if (!hooksStore[hookName]) {\n return 0;\n }\n\n var handlersRemoved = 0;\n\n if (removeAll) {\n handlersRemoved = hooksStore[hookName].handlers.length;\n hooksStore[hookName] = {\n runs: hooksStore[hookName].runs,\n handlers: []\n };\n } else {\n // Try to find the specified callback to remove.\n var handlers = hooksStore[hookName].handlers;\n\n var _loop = function _loop(i) {\n if (handlers[i].namespace === namespace) {\n handlers.splice(i, 1);\n handlersRemoved++; // This callback may also be part of a hook that is\n // currently executing. If the callback we're removing\n // comes after the current callback, there's no problem;\n // otherwise we need to decrease the execution index of any\n // other runs by 1 to account for the removed element.\n\n hooksStore.__current.forEach(function (hookInfo) {\n if (hookInfo.name === hookName && hookInfo.currentIndex >= i) {\n hookInfo.currentIndex--;\n }\n });\n }\n };\n\n for (var i = handlers.length - 1; i >= 0; i--) {\n _loop(i);\n }\n }\n\n if (hookName !== 'hookRemoved') {\n hooks.doAction('hookRemoved', hookName, namespace);\n }\n\n return handlersRemoved;\n };\n}\n\nexport default createRemoveHook;\n//# sourceMappingURL=createRemoveHook.js.map","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\n\n/**\n * Returns a function which, when invoked, will execute all callbacks\n * registered to a hook of the specified type, optionally returning the final\n * value of the call chain.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n * @param {boolean} [returnFirstArg=false] Whether each hook callback is expected to\n * return its first argument.\n *\n * @return {(hookName:string, ...args: unknown[]) => unknown} Function that runs hook callbacks.\n */\nfunction createRunHook(hooks, storeKey) {\n var returnFirstArg = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n return function runHooks(hookName) {\n var hooksStore = hooks[storeKey];\n\n if (!hooksStore[hookName]) {\n hooksStore[hookName] = {\n handlers: [],\n runs: 0\n };\n }\n\n hooksStore[hookName].runs++;\n var handlers = hooksStore[hookName].handlers; // The following code is stripped from production builds.\n\n if ('production' !== process.env.NODE_ENV) {\n // Handle any 'all' hooks registered.\n if ('hookAdded' !== hookName && hooksStore.all) {\n handlers.push.apply(handlers, _toConsumableArray(hooksStore.all.handlers));\n }\n }\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (!handlers || !handlers.length) {\n return returnFirstArg ? args[0] : undefined;\n }\n\n var hookInfo = {\n name: hookName,\n currentIndex: 0\n };\n\n hooksStore.__current.push(hookInfo);\n\n while (hookInfo.currentIndex < handlers.length) {\n var handler = handlers[hookInfo.currentIndex];\n var result = handler.callback.apply(null, args);\n\n if (returnFirstArg) {\n args[0] = result;\n }\n\n hookInfo.currentIndex++;\n }\n\n hooksStore.__current.pop();\n\n if (returnFirstArg) {\n return args[0];\n }\n };\n}\n\nexport default createRunHook;\n//# sourceMappingURL=createRunHook.js.map","/**\n * Internal dependencies\n */\nimport createHooks from './createHooks';\n/** @typedef {(...args: any[])=>any} Callback */\n\n/**\n * @typedef Handler\n * @property {Callback} callback The callback\n * @property {string} namespace The namespace\n * @property {number} priority The namespace\n */\n\n/**\n * @typedef Hook\n * @property {Handler[]} handlers Array of handlers\n * @property {number} runs Run counter\n */\n\n/**\n * @typedef Current\n * @property {string} name Hook name\n * @property {number} currentIndex The index\n */\n\n/**\n * @typedef {Record & {__current: Current[]}} Store\n */\n\n/**\n * @typedef {'actions' | 'filters'} StoreKey\n */\n\n/**\n * @typedef {import('./createHooks').Hooks} Hooks\n */\n\nexport var defaultHooks = createHooks();\nvar addAction = defaultHooks.addAction,\n addFilter = defaultHooks.addFilter,\n removeAction = defaultHooks.removeAction,\n removeFilter = defaultHooks.removeFilter,\n hasAction = defaultHooks.hasAction,\n hasFilter = defaultHooks.hasFilter,\n removeAllActions = defaultHooks.removeAllActions,\n removeAllFilters = defaultHooks.removeAllFilters,\n doAction = defaultHooks.doAction,\n applyFilters = defaultHooks.applyFilters,\n currentAction = defaultHooks.currentAction,\n currentFilter = defaultHooks.currentFilter,\n doingAction = defaultHooks.doingAction,\n doingFilter = defaultHooks.doingFilter,\n didAction = defaultHooks.didAction,\n didFilter = defaultHooks.didFilter,\n actions = defaultHooks.actions,\n filters = defaultHooks.filters;\nexport { createHooks, addAction, addFilter, removeAction, removeFilter, hasAction, hasFilter, removeAllActions, removeAllFilters, doAction, applyFilters, currentAction, currentFilter, doingAction, doingFilter, didAction, didFilter, actions, filters };\n//# sourceMappingURL=index.js.map","/**\n * Validate a hookName string.\n *\n * @param {string} hookName The hook name to validate. Should be a non empty string containing\n * only numbers, letters, dashes, periods and underscores. Also,\n * the hook name cannot begin with `__`.\n *\n * @return {boolean} Whether the hook name is valid.\n */\nfunction validateHookName(hookName) {\n if ('string' !== typeof hookName || '' === hookName) {\n // eslint-disable-next-line no-console\n console.error('The hook name must be a non-empty string.');\n return false;\n }\n\n if (/^__/.test(hookName)) {\n // eslint-disable-next-line no-console\n console.error('The hook name cannot begin with `__`.');\n return false;\n }\n\n if (!/^[a-zA-Z][a-zA-Z0-9_.-]*$/.test(hookName)) {\n // eslint-disable-next-line no-console\n console.error('The hook name can only contain numbers, letters, dashes, periods and underscores.');\n return false;\n }\n\n return true;\n}\n\nexport default validateHookName;\n//# sourceMappingURL=validateHookName.js.map","/**\n * Validate a namespace string.\n *\n * @param {string} namespace The namespace to validate - should take the form\n * `vendor/plugin/function`.\n *\n * @return {boolean} Whether the namespace is valid.\n */\nfunction validateNamespace(namespace) {\n if ('string' !== typeof namespace || '' === namespace) {\n // eslint-disable-next-line no-console\n console.error('The namespace must be a non-empty string.');\n return false;\n }\n\n if (!/^[a-zA-Z][a-zA-Z0-9_.\\-\\/]*$/.test(namespace)) {\n // eslint-disable-next-line no-console\n console.error('The namespace can only contain numbers, letters, dashes, periods, underscores and slashes.');\n return false;\n }\n\n return true;\n}\n\nexport default validateNamespace;\n//# sourceMappingURL=validateNamespace.js.map","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\nimport Tannin from 'tannin';\n/**\n * @typedef {Record} LocaleData\n */\n\n/**\n * Default locale data to use for Tannin domain when not otherwise provided.\n * Assumes an English plural forms expression.\n *\n * @type {LocaleData}\n */\n\nvar DEFAULT_LOCALE_DATA = {\n '': {\n /** @param {number} n */\n plural_forms: function plural_forms(n) {\n return n === 1 ? 0 : 1;\n }\n }\n};\n/*\n * Regular expression that matches i18n hooks like `i18n.gettext`, `i18n.ngettext`,\n * `i18n.gettext_domain` or `i18n.ngettext_with_context` or `i18n.has_translation`.\n */\n\nvar I18N_HOOK_REGEXP = /^i18n\\.(n?gettext|has_translation)(_|$)/;\n/**\n * @typedef {(domain?: string) => LocaleData} GetLocaleData\n *\n * Returns locale data by domain in a\n * Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n */\n\n/**\n * @typedef {(data?: LocaleData, domain?: string) => void} SetLocaleData\n *\n * Merges locale data into the Tannin instance by domain. Accepts data in a\n * Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n */\n\n/**\n * @typedef {(data?: LocaleData, domain?: string) => void} ResetLocaleData\n *\n * Resets all current Tannin instance locale data and sets the specified\n * locale data for the domain. Accepts data in a Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n */\n\n/** @typedef {() => void} SubscribeCallback */\n\n/** @typedef {() => void} UnsubscribeCallback */\n\n/**\n * @typedef {(callback: SubscribeCallback) => UnsubscribeCallback} Subscribe\n *\n * Subscribes to changes of locale data\n */\n\n/**\n * @typedef {(domain?: string) => string} GetFilterDomain\n * Retrieve the domain to use when calling domain-specific filters.\n */\n\n/**\n * @typedef {(text: string, domain?: string) => string} __\n *\n * Retrieve the translation of text.\n *\n * @see https://developer.wordpress.org/reference/functions/__/\n */\n\n/**\n * @typedef {(text: string, context: string, domain?: string) => string} _x\n *\n * Retrieve translated string with gettext context.\n *\n * @see https://developer.wordpress.org/reference/functions/_x/\n */\n\n/**\n * @typedef {(single: string, plural: string, number: number, domain?: string) => string} _n\n *\n * Translates and retrieves the singular or plural form based on the supplied\n * number.\n *\n * @see https://developer.wordpress.org/reference/functions/_n/\n */\n\n/**\n * @typedef {(single: string, plural: string, number: number, context: string, domain?: string) => string} _nx\n *\n * Translates and retrieves the singular or plural form based on the supplied\n * number, with gettext context.\n *\n * @see https://developer.wordpress.org/reference/functions/_nx/\n */\n\n/**\n * @typedef {() => boolean} IsRtl\n *\n * Check if current locale is RTL.\n *\n * **RTL (Right To Left)** is a locale property indicating that text is written from right to left.\n * For example, the `he` locale (for Hebrew) specifies right-to-left. Arabic (ar) is another common\n * language written RTL. The opposite of RTL, LTR (Left To Right) is used in other languages,\n * including English (`en`, `en-US`, `en-GB`, etc.), Spanish (`es`), and French (`fr`).\n */\n\n/**\n * @typedef {(single: string, context?: string, domain?: string) => boolean} HasTranslation\n *\n * Check if there is a translation for a given string in singular form.\n */\n\n/** @typedef {import('@wordpress/hooks').Hooks} Hooks */\n\n/**\n * An i18n instance\n *\n * @typedef I18n\n * @property {GetLocaleData} getLocaleData Returns locale data by domain in a Jed-formatted JSON object shape.\n * @property {SetLocaleData} setLocaleData Merges locale data into the Tannin instance by domain. Accepts data in a\n * Jed-formatted JSON object shape.\n * @property {ResetLocaleData} resetLocaleData Resets all current Tannin instance locale data and sets the specified\n * locale data for the domain. Accepts data in a Jed-formatted JSON object shape.\n * @property {Subscribe} subscribe Subscribes to changes of Tannin locale data.\n * @property {__} __ Retrieve the translation of text.\n * @property {_x} _x Retrieve translated string with gettext context.\n * @property {_n} _n Translates and retrieves the singular or plural form based on the supplied\n * number.\n * @property {_nx} _nx Translates and retrieves the singular or plural form based on the supplied\n * number, with gettext context.\n * @property {IsRtl} isRTL Check if current locale is RTL.\n * @property {HasTranslation} hasTranslation Check if there is a translation for a given string.\n */\n\n/**\n * Create an i18n instance\n *\n * @param {LocaleData} [initialData] Locale data configuration.\n * @param {string} [initialDomain] Domain for which configuration applies.\n * @param {Hooks} [hooks] Hooks implementation.\n * @return {I18n} I18n instance\n */\n\nexport var createI18n = function createI18n(initialData, initialDomain, hooks) {\n /**\n * The underlying instance of Tannin to which exported functions interface.\n *\n * @type {Tannin}\n */\n var tannin = new Tannin({});\n var listeners = new Set();\n\n var notifyListeners = function notifyListeners() {\n listeners.forEach(function (listener) {\n return listener();\n });\n };\n /**\n * Subscribe to changes of locale data.\n *\n * @param {SubscribeCallback} callback Subscription callback.\n * @return {UnsubscribeCallback} Unsubscribe callback.\n */\n\n\n var subscribe = function subscribe(callback) {\n listeners.add(callback);\n return function () {\n return listeners.delete(callback);\n };\n };\n /** @type {GetLocaleData} */\n\n\n var getLocaleData = function getLocaleData() {\n var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default';\n return tannin.data[domain];\n };\n /**\n * @param {LocaleData} [data]\n * @param {string} [domain]\n */\n\n\n var doSetLocaleData = function doSetLocaleData(data) {\n var domain = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default';\n tannin.data[domain] = _objectSpread(_objectSpread(_objectSpread({}, DEFAULT_LOCALE_DATA), tannin.data[domain]), data); // Populate default domain configuration (supported locale date which omits\n // a plural forms expression).\n\n tannin.data[domain][''] = _objectSpread(_objectSpread({}, DEFAULT_LOCALE_DATA['']), tannin.data[domain]['']);\n };\n /** @type {SetLocaleData} */\n\n\n var setLocaleData = function setLocaleData(data, domain) {\n doSetLocaleData(data, domain);\n notifyListeners();\n };\n /** @type {ResetLocaleData} */\n\n\n var resetLocaleData = function resetLocaleData(data, domain) {\n // Reset all current Tannin locale data.\n tannin.data = {}; // Reset cached plural forms functions cache.\n\n tannin.pluralForms = {};\n setLocaleData(data, domain);\n };\n /**\n * Wrapper for Tannin's `dcnpgettext`. Populates default locale data if not\n * otherwise previously assigned.\n *\n * @param {string|undefined} domain Domain to retrieve the translated text.\n * @param {string|undefined} context Context information for the translators.\n * @param {string} single Text to translate if non-plural. Used as\n * fallback return value on a caught error.\n * @param {string} [plural] The text to be used if the number is\n * plural.\n * @param {number} [number] The number to compare against to use\n * either the singular or plural form.\n *\n * @return {string} The translated string.\n */\n\n\n var dcnpgettext = function dcnpgettext() {\n var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default';\n var context = arguments.length > 1 ? arguments[1] : undefined;\n var single = arguments.length > 2 ? arguments[2] : undefined;\n var plural = arguments.length > 3 ? arguments[3] : undefined;\n var number = arguments.length > 4 ? arguments[4] : undefined;\n\n if (!tannin.data[domain]) {\n // use `doSetLocaleData` to set silently, without notifying listeners\n doSetLocaleData(undefined, domain);\n }\n\n return tannin.dcnpgettext(domain, context, single, plural, number);\n };\n /** @type {GetFilterDomain} */\n\n\n var getFilterDomain = function getFilterDomain() {\n var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default';\n return domain;\n };\n /** @type {__} */\n\n\n var __ = function __(text, domain) {\n var translation = dcnpgettext(domain, undefined, text);\n\n if (!hooks) {\n return translation;\n }\n /**\n * Filters text with its translation.\n *\n * @param {string} translation Translated text.\n * @param {string} text Text to translate.\n * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n */\n\n\n translation =\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.gettext', translation, text, domain);\n return (\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.gettext_' + getFilterDomain(domain), translation, text, domain)\n );\n };\n /** @type {_x} */\n\n\n var _x = function _x(text, context, domain) {\n var translation = dcnpgettext(domain, context, text);\n\n if (!hooks) {\n return translation;\n }\n /**\n * Filters text with its translation based on context information.\n *\n * @param {string} translation Translated text.\n * @param {string} text Text to translate.\n * @param {string} context Context information for the translators.\n * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n */\n\n\n translation =\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.gettext_with_context', translation, text, context, domain);\n return (\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.gettext_with_context_' + getFilterDomain(domain), translation, text, context, domain)\n );\n };\n /** @type {_n} */\n\n\n var _n = function _n(single, plural, number, domain) {\n var translation = dcnpgettext(domain, undefined, single, plural, number);\n\n if (!hooks) {\n return translation;\n }\n /**\n * Filters the singular or plural form of a string.\n *\n * @param {string} translation Translated text.\n * @param {string} single The text to be used if the number is singular.\n * @param {string} plural The text to be used if the number is plural.\n * @param {string} number The number to compare against to use either the singular or plural form.\n * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n */\n\n\n translation =\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.ngettext', translation, single, plural, number, domain);\n return (\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.ngettext_' + getFilterDomain(domain), translation, single, plural, number, domain)\n );\n };\n /** @type {_nx} */\n\n\n var _nx = function _nx(single, plural, number, context, domain) {\n var translation = dcnpgettext(domain, context, single, plural, number);\n\n if (!hooks) {\n return translation;\n }\n /**\n * Filters the singular or plural form of a string with gettext context.\n *\n * @param {string} translation Translated text.\n * @param {string} single The text to be used if the number is singular.\n * @param {string} plural The text to be used if the number is plural.\n * @param {string} number The number to compare against to use either the singular or plural form.\n * @param {string} context Context information for the translators.\n * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n */\n\n\n translation =\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.ngettext_with_context', translation, single, plural, number, context, domain);\n return (\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.ngettext_with_context_' + getFilterDomain(domain), translation, single, plural, number, context, domain)\n );\n };\n /** @type {IsRtl} */\n\n\n var isRTL = function isRTL() {\n return 'rtl' === _x('ltr', 'text direction');\n };\n /** @type {HasTranslation} */\n\n\n var hasTranslation = function hasTranslation(single, context, domain) {\n var _tannin$data, _tannin$data2;\n\n var key = context ? context + \"\\x04\" + single : single;\n var result = !!((_tannin$data = tannin.data) !== null && _tannin$data !== void 0 && (_tannin$data2 = _tannin$data[domain !== null && domain !== void 0 ? domain : 'default']) !== null && _tannin$data2 !== void 0 && _tannin$data2[key]);\n\n if (hooks) {\n /**\n * Filters the presence of a translation in the locale data.\n *\n * @param {boolean} hasTranslation Whether the translation is present or not..\n * @param {string} single The singular form of the translated text (used as key in locale data)\n * @param {string} context Context information for the translators.\n * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n */\n result =\n /** @type { boolean } */\n\n /** @type {*} */\n hooks.applyFilters('i18n.has_translation', result, single, context, domain);\n result =\n /** @type { boolean } */\n\n /** @type {*} */\n hooks.applyFilters('i18n.has_translation_' + getFilterDomain(domain), result, single, context, domain);\n }\n\n return result;\n };\n\n if (initialData) {\n setLocaleData(initialData, initialDomain);\n }\n\n if (hooks) {\n /**\n * @param {string} hookName\n */\n var onHookAddedOrRemoved = function onHookAddedOrRemoved(hookName) {\n if (I18N_HOOK_REGEXP.test(hookName)) {\n notifyListeners();\n }\n };\n\n hooks.addAction('hookAdded', 'core/i18n', onHookAddedOrRemoved);\n hooks.addAction('hookRemoved', 'core/i18n', onHookAddedOrRemoved);\n }\n\n return {\n getLocaleData: getLocaleData,\n setLocaleData: setLocaleData,\n resetLocaleData: resetLocaleData,\n subscribe: subscribe,\n __: __,\n _x: _x,\n _n: _n,\n _nx: _nx,\n isRTL: isRTL,\n hasTranslation: hasTranslation\n };\n};\n//# sourceMappingURL=create-i18n.js.map","/**\n * Internal dependencies\n */\nimport { createI18n } from './create-i18n';\n/**\n * WordPress dependencies\n */\n\nimport { defaultHooks } from '@wordpress/hooks';\nvar i18n = createI18n(undefined, undefined, defaultHooks);\n/**\n * Default, singleton instance of `I18n`.\n */\n\nexport default i18n;\n/*\n * Comments in this file are duplicated from ./i18n due to\n * https://github.com/WordPress/gutenberg/pull/20318#issuecomment-590837722\n */\n\n/**\n * @typedef {import('./create-i18n').LocaleData} LocaleData\n * @typedef {import('./create-i18n').SubscribeCallback} SubscribeCallback\n * @typedef {import('./create-i18n').UnsubscribeCallback} UnsubscribeCallback\n */\n\n/**\n * Returns locale data by domain in a Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n *\n * @param {string} [domain] Domain for which to get the data.\n * @return {LocaleData} Locale data.\n */\n\nexport var getLocaleData = i18n.getLocaleData.bind(i18n);\n/**\n * Merges locale data into the Tannin instance by domain. Accepts data in a\n * Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n *\n * @param {LocaleData} [data] Locale data configuration.\n * @param {string} [domain] Domain for which configuration applies.\n */\n\nexport var setLocaleData = i18n.setLocaleData.bind(i18n);\n/**\n * Resets all current Tannin instance locale data and sets the specified\n * locale data for the domain. Accepts data in a Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n *\n * @param {LocaleData} [data] Locale data configuration.\n * @param {string} [domain] Domain for which configuration applies.\n */\n\nexport var resetLocaleData = i18n.resetLocaleData.bind(i18n);\n/**\n * Subscribes to changes of locale data\n *\n * @param {SubscribeCallback} callback Subscription callback\n * @return {UnsubscribeCallback} Unsubscribe callback\n */\n\nexport var subscribe = i18n.subscribe.bind(i18n);\n/**\n * Retrieve the translation of text.\n *\n * @see https://developer.wordpress.org/reference/functions/__/\n *\n * @param {string} text Text to translate.\n * @param {string} [domain] Domain to retrieve the translated text.\n *\n * @return {string} Translated text.\n */\n\nexport var __ = i18n.__.bind(i18n);\n/**\n * Retrieve translated string with gettext context.\n *\n * @see https://developer.wordpress.org/reference/functions/_x/\n *\n * @param {string} text Text to translate.\n * @param {string} context Context information for the translators.\n * @param {string} [domain] Domain to retrieve the translated text.\n *\n * @return {string} Translated context string without pipe.\n */\n\nexport var _x = i18n._x.bind(i18n);\n/**\n * Translates and retrieves the singular or plural form based on the supplied\n * number.\n *\n * @see https://developer.wordpress.org/reference/functions/_n/\n *\n * @param {string} single The text to be used if the number is singular.\n * @param {string} plural The text to be used if the number is plural.\n * @param {number} number The number to compare against to use either the\n * singular or plural form.\n * @param {string} [domain] Domain to retrieve the translated text.\n *\n * @return {string} The translated singular or plural form.\n */\n\nexport var _n = i18n._n.bind(i18n);\n/**\n * Translates and retrieves the singular or plural form based on the supplied\n * number, with gettext context.\n *\n * @see https://developer.wordpress.org/reference/functions/_nx/\n *\n * @param {string} single The text to be used if the number is singular.\n * @param {string} plural The text to be used if the number is plural.\n * @param {number} number The number to compare against to use either the\n * singular or plural form.\n * @param {string} context Context information for the translators.\n * @param {string} [domain] Domain to retrieve the translated text.\n *\n * @return {string} The translated singular or plural form.\n */\n\nexport var _nx = i18n._nx.bind(i18n);\n/**\n * Check if current locale is RTL.\n *\n * **RTL (Right To Left)** is a locale property indicating that text is written from right to left.\n * For example, the `he` locale (for Hebrew) specifies right-to-left. Arabic (ar) is another common\n * language written RTL. The opposite of RTL, LTR (Left To Right) is used in other languages,\n * including English (`en`, `en-US`, `en-GB`, etc.), Spanish (`es`), and French (`fr`).\n *\n * @return {boolean} Whether locale is RTL.\n */\n\nexport var isRTL = i18n.isRTL.bind(i18n);\n/**\n * Check if there is a translation for a given string (in singular form).\n *\n * @param {string} single Singular form of the string to look up.\n * @param {string} [context] Context information for the translators.\n * @param {string} [domain] Domain to retrieve the translated text.\n * @return {boolean} Whether the translation exists or not.\n */\n\nexport var hasTranslation = i18n.hasTranslation.bind(i18n);\n//# sourceMappingURL=default-i18n.js.map","export { sprintf } from './sprintf';\nexport * from './create-i18n';\nexport { default as defaultI18n, setLocaleData, resetLocaleData, getLocaleData, subscribe, __, _x, _n, _nx, isRTL, hasTranslation } from './default-i18n';\n//# sourceMappingURL=index.js.map","/**\n * External dependencies\n */\nimport memoize from 'memize';\nimport sprintfjs from 'sprintf-js';\n/**\n * Log to console, once per message; or more precisely, per referentially equal\n * argument set. Because Jed throws errors, we log these to the console instead\n * to avoid crashing the application.\n *\n * @param {...*} args Arguments to pass to `console.error`\n */\n\nvar logErrorOnce = memoize(console.error); // eslint-disable-line no-console\n\n/**\n * Returns a formatted string. If an error occurs in applying the format, the\n * original format string is returned.\n *\n * @param {string} format The format of the string to generate.\n * @param {...*} args Arguments to apply to the format.\n *\n * @see https://www.npmjs.com/package/sprintf-js\n *\n * @return {string} The formatted string.\n */\n\nexport function sprintf(format) {\n try {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return sprintfjs.sprintf.apply(sprintfjs, [format].concat(args));\n } catch (error) {\n logErrorOnce('sprintf error: \\n\\n' + error.toString());\n return format;\n }\n}\n//# sourceMappingURL=sprintf.js.map","/**\n * This component updates the dependent style element's values and triggers a custom change event for each style element, initiating the style preview.\n * The names of the elements that will be updated are specified using the \"will-change\" attribute.\n * It is primarily used in components from Style/Quick Settings.\n * For instance, when the \"FrmPrimaryColorStyleComponent\" is changed, it simultaneously updates various style elements like border color, text color, and button backgrounds.\n */\nexport default class frmStyleDependentUpdaterComponent {\n\n\t/**\n\t * Creates an instance of frmStyleDependentUpdaterComponent.\n\t * @param {HTMLElement} component - The component element.\n\t */\n\tconstructor( component ) {\n\t\tthis.component = component;\n\t\tthis.data = {\n\t\t\tpropagateInputs: this.initPropagationList( JSON.parse( this.component.dataset.willChange ) ),\n\t\t\tchangeEvent: new Event( 'change', { bubbles: true } )\n\t\t};\n\t}\n\n\t/**\n\t * Initializes the list of inputs to propagate changes to.\n\t * The selection is made by provided input's names list in \"will-change\" attribute.\n\t * @param {string[]} inputNames - The names of the inputs to propagate changes to.\n\t * @return {HTMLElement[]} - The list of inputs to propagate changes to.\n\t */\n\tinitPropagationList( inputNames ) {\n\t\tconst list = [];\n\t\tinputNames.forEach( ( name ) => {\n\t\t\tconst input = document.querySelector( `input[name=\"${name}\"]` );\n\t\t\tif ( null !== input ) {\n\t\t\t\tlist.push( input );\n\t\t\t}\n\t\t});\n\t\treturn list;\n\t}\n\n\t/**\n\t * Updates all dependent elements with the given value.\n\t * @param {string} value - The value to update the dependent elements with.\n\t */\n\tupdateAllDependentElements( value ) {\n\t\tthis.data.propagateInputs.forEach( ( input ) => {\n\t\t\tinput.value = value;\n\t\t});\n\t\tthis.data.propagateInputs[0].dispatchEvent( this.data.changeEvent );\n\t}\n}","/**\n * Represents a radio style component.\n * @class\n */\nexport default class frmRadioStyleComponent {\n\n\tconstructor() {\n\t\tthis.elements = document.querySelectorAll( '.frm-style-component.frm-radio-component' );\n\t\tif ( 0 === this.elements.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.init();\n\t}\n\n\t/**\n\t * Initializes the radio style component.\n\t */\n\tinit() {\n\t\tthis.elements.forEach( ( element ) => {\n\t\t\tthis.initOnRadioChange( element );\n\t\t});\n\t\tthis.initTrackerOnAccordionClick();\n\t}\n\n\tinitTrackerOnAccordionClick() {\n\t\tconst accordionitems = document.querySelectorAll( '#frm_style_sidebar .accordion-section h3' );\n\n\t\taccordionitems.forEach( ( accordionitem ) => {\n\t\t\taccordionitem.addEventListener( 'click', ( event ) => {\n\t\t\t\tconst wrapper = event.target.closest( '.accordion-section' );\n\t\t\t\tconst radioButtons = wrapper.querySelectorAll( '.frm-style-component.frm-radio-component input[type=\"radio\"]:checked' );\n\n\t\t\t\tradioButtons.forEach( ( radio ) => {\n\t\t\t\t\tsetTimeout( () => this.onRadioChange( radio ), 200 );\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Initializes the onRadioChange event for the given wrapper.\n\t * @param {HTMLElement} wrapper - The wrapper element.\n\t */\n\tinitOnRadioChange( wrapper ) {\n\t\twrapper.querySelectorAll( 'input[type=\"radio\"]' ).forEach( ( radio ) => {\n\t\t\tif ( radio.checked ) {\n\t\t\t\tthis.onRadioChange( radio );\n\t\t\t}\n\t\t\tradio.addEventListener( 'change', ( event ) => {\n\t\t\t\tthis.onRadioChange( event.target );\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Handles the onRadioChange event for the given wrapper.\n\t * @param {HTMLElement} target - The active radio button.\n\t */\n\tonRadioChange( target ) {\n\t\tconst wrapper = target.closest( '.frm-style-component.frm-radio-component' );\n\t\tconst activeItem = wrapper.querySelector( 'input[type=\"radio\"]:checked + label' );\n\n\t\tif ( null === activeItem ) { return; }\n\n\t\tthis.moveTracker( activeItem, wrapper );\n\t\tthis.hideExtraElements( target );\n\t\tthis.maybeShowExtraElements( target );\n\t}\n\n\t/**\n\t * Display additional elements related to the selected radio option.\n\t * @param {HTMLElement} radio - The radio button element.\n\t */\n\tmaybeShowExtraElements( radio ) {\n\t\tconst elementAttr = radio.getAttribute( 'data-frm-show-element' );\n\t\tif ( null === elementAttr ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst elements = document.querySelectorAll( `div[data-frm-element=\"${elementAttr}\"]` );\n\n\t\tif ( 0 === elements.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\telements.forEach( ( element ) => {\n\t\t\telement.classList.remove( 'frm_hidden' );\n\t\t\telement.classList.add( 'frm-element-is-visible' );\n\t\t});\n\t}\n\n\t/**\n\t * Hide the possible opepend extra elements.\n\t */\n\thideExtraElements() {\n\t\tconst elements = document.querySelectorAll( '.frm-element-is-visible' );\n\t\tif ( 0 === elements.length ) {\n\t\t\treturn;\n\t\t}\n\t\telements.forEach( ( element ) => {\n\t\t\telement.classList.remove( 'frm-element-is-visible' );\n\t\t\telement.classList.add( 'frm_hidden' );\n\t\t});\n\t}\n\n\t/**\n\t * Moves the tracker to the active item.\n\t * @param {HTMLElement} activeItem - The active item element.\n\t * @param {HTMLElement} wrapper - The wrapper element.\n\t */\n\tmoveTracker( activeItem, wrapper ) {\n\t\tconst offset = activeItem.offsetLeft;\n\t\tconst width = activeItem.offsetWidth;\n\t\tconst tracker = wrapper.querySelector( '.frm-radio-active-tracker' );\n\n\t\ttracker.style.left = 0;\n\t\ttracker.style.width = width + 'px';\n\t\ttracker.style.transform = `translateX(${ offset }px)`;\n\t}\n}","import frmStyleDependentUpdaterComponent from './dependent-updater-component';\n/**\n * Represents a slider style component.\n * @class frmSliderStyleComponent\n */\nexport default class frmSliderStyleComponent {\n\n\tconstructor() {\n\t\tthis.elements = document.querySelectorAll( '.frm-slider-component' );\n\t\tif ( 0 === this.elements.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// The slider bullet point width in pixels. Used in value calculation on drag event.\n\t\tthis.sliderBulletWidth = 16;\n\t\tthis.sliderMarginRight = 5;\n\t\tthis.eventsChange = [];\n\n\t\tconst { debounce } = frmDom.util;\n\t\tthis.valueChangeDebouncer = debounce( ( index ) => this.triggerValueChange( index ), 25 );\n\n\t\tthis.initOptions();\n\t\tthis.init();\n\t}\n\n\t/**\n\t * Initializes the options for the slider style component.\n\t */\n\tinitOptions() {\n\t\tthis.options = [];\n\t\tthis.elements.forEach( ( element, index ) => {\n\t\t\tconst parentWrapper = element.classList.contains( 'frm-has-multiple-values' ) ? element.closest( '.frm-style-component' ) : element;\n\t\t\tthis.options.push({\n\t\t\t\tdragging: false,\n\t\t\t\tstartX: 0,\n\t\t\t\ttranslateX: 0,\n\t\t\t\tmaxValue: parseInt( element.dataset.maxValue, 10 ),\n\t\t\t\telement: element,\n\t\t\t\tindex: index,\n\t\t\t\tvalue: 0,\n\t\t\t\tdependentUpdater: parentWrapper.classList.contains( 'frm-style-dependent-updater-component' ) ? new frmStyleDependentUpdaterComponent( parentWrapper ) : null\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Initializes the slider style component.\n\t */\n\tinit() {\n\t\tthis.initSlidersPosition();\n\t\tthis.initDraggable();\n\t}\n\n\t/**\n\t * Initializes the draggable functionality for the slider style component.\n\t */\n\tinitDraggable() {\n\t\tthis.elements.forEach( ( element, index ) => {\n\t\t\tthis.eventsChange[ index ] = new Event( 'change', { \n\t\t\t\t'bubbles': true,\n\t\t\t\t'cancelable': true\n\t\t\t} );\n\t\t\tconst draggableBullet = element.querySelector( '.frm-slider-bullet' );\n\t\t\tconst valueInput = element.querySelector( '.frm-slider-value input[type=\"text\"]' );\n\n\t\t\tvalueInput.addEventListener( 'change', ( event ) => {\n\t\t\t\tconst unit = element.querySelector( 'select' ).value;\n\n\t\t\t\tif ( this.getMaxValue( unit, index ) < parseInt( event.target.value, 10 ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.initSliderWidth( element );\n\t\t\t\tthis.updateValue( element, valueInput.value + unit );\n\t\t\t\tthis.triggerValueChange( index );\n\t\t\t});\n\n\t\t\tthis.expandSliderGroup( element );\n\t\t\tthis.updateOnUnitChange( element, valueInput, index );\n\t\t\tthis.changeSliderPositionOnClick( element, valueInput, index );\n\n\t\t\tdraggableBullet.addEventListener( 'mousedown', ( event ) => {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tevent.stopPropagation();\n\t\t\t\tif ( element.classList.contains( 'frm-disabled' ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.enableDragging( event, index );\n\t\t\t});\n\n\t\t\tdraggableBullet.addEventListener( 'mousemove', ( event ) => {\n\t\t\t\tif ( element.classList.contains( 'frm-disabled' ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.moveTracker( event, index );\n\t\t\t});\n\n\t\t\tdraggableBullet.addEventListener( 'mouseup', ( event) => {\n\t\t\t\tif ( element.classList.contains( 'frm-disabled' ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.disableDragging( index, event );\n\t\t\t});\n\n\t\t\tdraggableBullet.addEventListener( 'mouseleave', ( event ) => {\n\t\t\t\tif ( element.classList.contains( 'frm-disabled' ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.disableDragging( index, event );\n\t\t\t});\n\t\t});\n\t}\n\n\texpandSliderGroup( element ) {\n\t\tconst svgIcon = element.querySelector( '.frmsvg' );\n\n\t\tif ( 'undefined' === typeof element.dataset.displaySliders || null === svgIcon ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst sliderGroupItems = this.getSliderGroupItems( element );\n\t\tsvgIcon.addEventListener( 'click', ( ) => {\n\t\t\tsliderGroupItems.forEach( ( item ) => {\n\t\t\t\titem.classList.toggle( 'frm_hidden' );\n\t\t\t});\n\t\t});\n\t}\n\n\tupdateOnUnitChange( element, valueInput, index ) {\n\t\telement.querySelector( 'select' ).addEventListener( 'change', ( event ) => {\n\t\t\tconst unit = event.target.value.toLowerCase();\n\n\t\t\tif ( 'auto' === unit ) {\n\t\t\t\telement.classList.add( 'frm-disabled' );\n\t\t\t\tthis.updateValue( element, 'auto' );\n\t\t\t\tthis.triggerValueChange( index );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\telement.classList.remove( 'frm-disabled' );\n\t\t\tthis.options[ index ].fullValue = valueInput.value + unit;\n\t\t\tthis.updateValue( element, this.options[ index ].fullValue );\n\t\t\tthis.triggerValueChange( index );\n\t\t});\n\t}\n\n\tchangeSliderPositionOnClick( element, valueInput, index ) {\n\t\tconst frmSlider = element.querySelector( '.frm-slider' );\n\t\tconst customEvent = new Event( 'change', {\n\t\t\t'bubbles': true,\n\t\t\t'cancelable': true\n\t\t});\n\n\t\tfrmSlider.addEventListener( 'click', ( event ) => {\n\t\t\tif ( element.classList.contains( 'frm-disabled' ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\n\t\t\tif ( ! event.target.classList.contains( 'frm-slider' ) && ! event.target.classList.contains( 'frm-slider-active-track' ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst sliderWidth = frmSlider.offsetWidth - this.sliderBulletWidth;\n\t\t\tconst sliderRect = frmSlider.getBoundingClientRect();\n\t\t\tconst deltaX = event.clientX - sliderRect.left - this.sliderBulletWidth;\n\t\t\tconst unit = element.querySelector( 'select' ).value;\n\t\t\tconst value = this.calculateValue( sliderWidth, deltaX, this.getMaxValue( unit, index ) );\n\n\t\t\tif ( value < 0 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.options[ index ].fullValue = this.updateValue( element, value + unit );\n\t\t\tthis.initChildSlidersWidth( element, deltaX, index, value + unit );\n\n\t\t\tvalueInput.value = value;\n\t\t\tvalueInput.dispatchEvent( customEvent );\n\n\t\t});\n\t}\n\n\t/**\n\t * Retrieves an array of slider group items based on the provided element.\n\t *\n\t * @param {HTMLElement} element - The element to retrieve slider group items from.\n\t * @return {NodeList} - An array-like object containing the slider group items.\n\t */\n\tgetSliderGroupItems( element ) {\n\t\tif ( 'undefined' === typeof element.dataset.displaySliders ) {\n\t\t\treturn [];\n\t\t}\n\t\tconst slidersGroup = element.dataset.displaySliders.split( ',' );\n\t\tconst query = slidersGroup.map( ( item ) => {\n\t\t\treturn `.frm-slider-component[data-type=\"${item}\"]`;\n\t\t}).join( ', ' );\n\n\t\treturn element.closest( '.frm-style-component' ).querySelectorAll( query )\n\t}\n\n\t/**\n\t * Initializes the position of sliders when a style accordion section is opened.\n\t */\n\tinitSlidersPosition() {\n\t\tconst accordionitems = document.querySelectorAll( '#frm_style_sidebar .accordion-section h3' );\n\t\tconst quickSettings = document.querySelector( '.frm-quick-settings' );\n\n\t\tif ( null !== quickSettings ) {\n\t\t\tthis.initSlidersWidth( quickSettings );\n\t\t}\n\n\t\taccordionitems.forEach( ( item ) => {\n\t\t\titem.addEventListener( 'click', ( event ) => {\n\t\t\t\tthis.initSlidersWidth( event.target.closest( '.accordion-section' ) );\n\t\t\t});\n\t\t});\n\n\t\tthis.initSliderPositionOnFieldShapeChange();\n\t}\n\n\t/**\n\t * Initializes the width of \"Corner Radius\" slider that is dynamically is displayed on \"Field Shape\" option change from \"Quick Settings\".\n\t *\n\t * @return {void}\n\t */\n\tinitSliderPositionOnFieldShapeChange() {\n\t\tconst fieldShapeType = document.querySelector( '.frm-style-component.frm-field-shape' );\n\n\t\tif ( null === fieldShapeType ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst radioButtons = fieldShapeType.querySelectorAll( 'input[type=\"radio\"]' );\n\t\tradioButtons.forEach( ( radio ) => {\n\t\t\tradio.addEventListener( 'change', ( event ) => {\n\t\t\t\tif ( event.target.checked && 'rounded-corner' === event.target.value ) {\n\t\t\t\t\tconst slider = document.querySelector( 'div[data-frm-element=\"field-shape-corner-radius\"] .frm-slider-component' );\n\t\t\t\t\tthis.initSliderWidth( slider );\n\t\t\t\t}\n\t\t\t})\n\t\t});\n\t}\n\n\t/**\n\t * Initializes the width of sliders within a given section.\n\t *\n\t * @param {HTMLElement} section - The section containing the sliders.\n\t * @return {void}\n\t */\n\tinitSlidersWidth( section ) {\n\t\tconst sliders = section.querySelectorAll( '.frm-slider-component' );\n\t\tsliders.forEach( ( slider ) => {\n\t\t\tsetTimeout( () => {\n\t\t\t\tthis.initSliderWidth( slider );\n\t\t\t}, 100 );\n\t\t});\n\t}\n\n\t/**\n\t * Initializes the width of a slider.\n\t *\n\t * @param {HTMLElement} slider - The slider element.\n\t * @return {void}\n\t */\n\tinitSliderWidth( slider ) {\n\t\tconst index = this.getSliderIndex( slider );\n\t\tconst sliderWidth = slider.querySelector( '.frm-slider' ).offsetWidth - this.sliderBulletWidth;\n\t\tconst value = parseInt( slider.querySelector( '.frm-slider-value input[type=\"text\"]' ).value, 10 );\n\t\tconst unit = slider.querySelector( 'select' ).value;\n\t\tconst deltaX = '%' === unit ? Math.round( sliderWidth * value / 100 ) : Math.ceil( ( value / this.options[ index ].maxValue ) * sliderWidth );\n\n\t\tslider.querySelector( '.frm-slider-active-track' ).style.width = `${deltaX}px`;\n\t\tthis.options[ index ].translateX = deltaX;\n\t\tthis.options[ index ].value = value + unit;\n\t}\n\n\t/**\n\t * Initializes the width of child sliders.\n\t *\n\t * @param {HTMLElement} slider - The parent slider element.\n\t * @param {number} width - The width to set for the child sliders.\n\t * @param {number} index - The starting index for the child sliders.\n\t * @param {number} value - The value to set for the child sliders.\n\t */\n\tinitChildSlidersWidth( slider, width, index, value ) {\n\t\tif ( ! slider.classList.contains( 'frm-has-independent-fields' ) && ! slider.classList.contains( 'frm-has-multiple-values' ) ) {\n\t\t\treturn;\n\t\t}\n\t\tconst childSliders = slider.classList.contains( 'frm-has-independent-fields' ) ? slider.querySelectorAll( '.frm-independent-slider-field' ) : this.getSliderGroupItems( slider );\n\n\t\tchildSliders.forEach( ( item, childIndex ) => {\n\t\t\titem.querySelector( '.frm-slider-active-track' ).style.width = `${width}px`;\n\t\t\tthis.options[ index + childIndex + 1 ].translateX = width;\n\t\t\tthis.options[ index + childIndex + 1 ].value = value;\n\t\t});\n\t}\n\n\t/**\n\t * Returns the index of the specified slider element.\n\t *\n\t * @param {HTMLElement} slider - The slider element.\n\t * @return {number} The index of the slider element.\n\t */\n\tgetSliderIndex( slider ) {\n\t\treturn this.options.filter( ( option ) => {\n\t\t\treturn option.element === slider;\n\t\t})[0].index;\n\t};\n\n\t/**\n\t * Handles the movement of the slider tracker.\n\t *\n\t * @param {Event} event - The event object representing the mouse movement.\n\t * @param {number} index - The index of the slider element.\n\t * @return {void}\n\t */\n\tmoveTracker( event, index ) {\n\t\tif ( ! this.options[ index ].dragging ) {\n\t\t\treturn;\n\t\t}\n\t\tlet deltaX = event.clientX - this.options[ index ].startX;\n\t\tconst element = this.elements[ index ];\n\t\tconst sliderWidth = element.querySelector( '.frm-slider' ).offsetWidth;\n\n\t\t// Ensure deltaX does not go below 0\n\t\tdeltaX = Math.max( deltaX, 0 );\n\n\t\tif ( deltaX + this.sliderBulletWidth / 2 + this.sliderMarginRight >= sliderWidth ) {\n\t\t\treturn;\n\t\t}\n\t\tconst unit = element.querySelector( 'select' ).value;\n\t\tconst value = this.calculateValue( sliderWidth, deltaX, this.getMaxValue( unit, index ) );\n\n\t\telement.querySelector( '.frm-slider-value input[type=\"text\"]' ).value = value;\n\t\telement.querySelector( '.frm-slider-bullet .frm-slider-value-label' ).innerText = value;\n\t\telement.querySelector( '.frm-slider-active-track' ).style.width = `${deltaX}px`;\n\t\tthis.initChildSlidersWidth( element, deltaX, index, value + unit );\n\n\t\tthis.options[ index ].translateX = deltaX;\n\t\tthis.options[ index ].value = value + unit;\n\t\tthis.options[ index ].fullValue = this.updateValue( element, this.options[ index ].value );\n\t\tthis.valueChangeDebouncer( index );\n\t}\n\n\t/**\n\t * Get the maximum value based on the unit and index.\n\t *\n\t * @param {string} unit - The unit of measurement.\n\t * @param {number} index - The index of the option.\n\t * @return {number} The maximum value.\n\t */\n\tgetMaxValue( unit, index ) {\n\t\treturn '%' === unit ? 100 : this.options[ index ].maxValue;\n\t}\n\n\t/**\n\t * Enables dragging for the slider style component.\n\t *\n\t * @param {Event} event - The event object.\n\t * @param {number} index - The index of the option being dragged.\n\t */\n\tenableDragging( event, index ) {\n\t\tevent.target.classList.add( 'frm-dragging' );\n\t\tthis.options[ index ].dragging = true;\n\t\tthis.options[ index ].startX = event.clientX - this.options[ index ].translateX;\n\t}\n\n\t/**\n\t * Disables dragging for a specific index.\n\t *\n\t * @param {number} index - The index of the option to disable dragging for.\n\t * @param {Event} event - The event object triggered by the dragging action.\n\t */\n\tdisableDragging( index, event ) {\n\t\tif ( false === this.options[ index ].dragging ) { return; }\n\t\tevent.target.classList.remove( 'frm-dragging' );\n\t\tthis.options[ index ].dragging = false;\n\t\tthis.triggerValueChange( index );\n\t}\n\n\t/**\n\t * Triggers a value change for the specified index.\n\t *\n\t * @param {number} index - The index of the value to be changed.\n\t */\n\ttriggerValueChange( index ) {\n\t\tif ( null !== this.options[ index ].dependentUpdater ) {\n\t\t\tthis.options[ index ].dependentUpdater.updateAllDependentElements( this.options[ index ].fullValue );\n\t\t\treturn;\n\t\t}\n\n\t\tconst input = this.elements[ index ].classList.contains( 'frm-has-multiple-values' ) ? this.elements[ index ].closest('.frm-style-component').querySelector( 'input[type=\"hidden\"]' ) : this.elements[ index ].querySelectorAll( '.frm-slider-value input[type=\"hidden\"]' );\n\t\tif ( input instanceof NodeList ) {\n\t\t\tinput.forEach( ( item ) => {\n\t\t\t\titem.dispatchEvent( this.eventsChange[ index ] );\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tinput.dispatchEvent( this.eventsChange[ index ] );\n\t}\n\n\t/**\n\t * Calculates the value based on the width, deltaX, and maxValue.\n\t *\n\t * @param {number} width - The width of the slider.\n\t * @param {number} deltaX - The change in x-coordinate.\n\t * @param {number} maxValue - The maximum value.\n\t * @return {number} - The calculated value.\n\t */\n\tcalculateValue( width, deltaX, maxValue ) {\n\n\t\t// Indicates the additional value generated by the slider's drag progress (up to 100%) and the width of the slider bullet.\n\t\t// Generates a more accurate value for the slider's start (0) and end (maximum value) positions, taking into account the slider's position and bullet width.\n\t\tconst delta = Math.ceil( this.sliderBulletWidth * ( deltaX / width ) );\n\n\t\tconst value = Math.ceil( ( ( deltaX + delta ) / width ) * maxValue );\n\n\t\treturn Math.min( value, maxValue )\n\t}\n\n\t/**\n\t * Updates the value of a slider component.\n\t *\n\t * @param {HTMLElement} element - The slider component element.\n\t * @param {string} value - The new value to be set.\n\t * @return {string} - The updated value.\n\t */\n\tupdateValue( element, value ) {\n\t\tif ( element.classList.contains( 'frm-has-multiple-values' ) ) {\n\t\t\tconst input = element.closest( '.frm-style-component' ).querySelector( 'input[type=\"hidden\"]' );\n\t\t\tconst inputValue = input.value.split( ' ' );\n\t\t\tconst type = element.dataset.type;\n\n\t\t\tif ( ! inputValue[2] ) {\n\t\t\t\tinputValue[2] = '0px';\n\t\t\t}\n\n\t\t\tif ( ! inputValue[3] ) {\n\t\t\t\tinputValue[3] = '0px';\n\t\t\t}\n\n\t\t\tswitch ( type ) {\n\t\t\t\tcase 'vertical':\n\t\t\t\t\tinputValue[0] = value;\n\t\t\t\t\tinputValue[2] = value;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'horizontal':\n\t\t\t\t\tinputValue[1] = value;\n\t\t\t\t\tinputValue[3] = value;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'top':\n\t\t\t\t\tinputValue[0] = value;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'bottom':\n\t\t\t\t\tinputValue[2] = value;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'left':\n\t\t\t\t\tinputValue[3] = value;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'right':\n\t\t\t\t\tinputValue[1] = value;\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst newValue = inputValue.join( ' ' );\n\t\t\tinput.value = newValue;\n\n\t\t\tconst childSlidersGroup = this.getSliderGroupItems( element );\n\t\t\tchildSlidersGroup.forEach( ( slider ) => {\n\t\t\t\tconst unitMeasure = this.getUnitMeasureFromValue( value );\n\t\t\t\tslider.querySelector( '.frm-slider-value input[type=\"text\"]' ).value = parseInt( value, 10 );\n\t\t\t\tslider.querySelector( 'select' ).value = unitMeasure;\n\t\t\t});\n\n\t\t\treturn newValue;\n\t\t}\n\n\t\tif ( element.classList.contains( 'frm-has-independent-fields' ) ) {\n\t\t\tconst inputValues = element.querySelectorAll( '.frm-slider-value input[type=\"hidden\"]' );\n\t\t\tconst visibleValues = element.querySelectorAll( '.frm-slider-value input[type=\"text\"]' );\n\t\t\tinputValues.forEach( ( input, index ) => {\n\t\t\t\tinput.value = value;\n\t\t\t\tvisibleValues[ index + 1 ].value = parseInt( value, 10 );\n\t\t\t});\n\n\t\t\treturn value;\n\t\t}\n\n\t\telement.querySelector( '.frm-slider-value input[type=\"hidden\"]' ).value = value;\n\t\treturn value;\n\t}\n\n\t/**\n\t * Returns the unit of measurement used in the given value.\n\t *\n\t * @param {string} value - The value to check for the unit of measurement.\n\t * @return {string} The unit of measurement ('%', 'px', 'em') found in the value, or an empty string if none is found.\n\t */\n\tgetUnitMeasureFromValue( value ) {\n\t\treturn [ '%', 'px', 'em' ].find( unit => value.includes( unit ) ) || '';\n\t}\n}","import { frmTabsNavigator } from '../../components/class-tabs-navigator';\n/**\n * Represents a Tabs Style Component.\n * @class\n */\nexport default class frmTabsStyleComponent {\n\n\tconstructor() {\n\t\tthis.elements = document.querySelectorAll( '.frm-style-tabs-wrapper' );\n\t\tif ( 0 === this.elements.length ) {\n\t\t\treturn;\n\t\t}\n\t\tthis.init();\n\t}\n\n\t/**\n\t * Initializes the Tabs Style Component.\n\t */\n\tinit() {\n\t\tthis.elements.forEach( ( element ) => {\n\t\t\tnew frmTabsNavigator( element );\n\t\t});\n\t}\n\n\t/**\n\t * Initializes the component on tab click.\n\t * @param {Element} wrapper - The wrapper element.\n\t */\n\tinitOnTabClick( wrapper ) {\n\t\tthis.initActiveBackgroundWidth( wrapper );\n\t\twrapper.querySelectorAll( '.frm-tab-item' ).forEach( ( tab ) => {\n\t\t\ttab.addEventListener( 'click', ( event ) => {\n\t\t\t\tthis.onTabClick( event.target.closest( '.frm-tabs-wrapper' ) );\n\t\t\t});\n\t\t});\n\t}\n}","export class frmTabsNavigator {\n\n\tconstructor( wrapper ) {\n\t\tif ( 'undefined' === typeof wrapper ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.wrapper = wrapper instanceof Element ? wrapper : document.querySelector( wrapper ) ;\n\n\t\tif ( null === this.wrapper ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.flexboxSlidesGap = '16px';\n\t\tthis.navs = this.wrapper.querySelectorAll( '.frm-tabs-navs ul > li' );\n\t\tthis.slideTrackLine = this.wrapper.querySelector( '.frm-tabs-active-underline' );\n\t\tthis.slideTrack = this.wrapper.querySelector( '.frm-tabs-slide-track' );\n\t\tthis.slides = this.wrapper.querySelectorAll( '.frm-tabs-slide-track > div' );\n\n\t\tthis.init();\n\t}\n\n\tinit() {\n\t\tif ( null === this.wrapper || ! this.navs.length || null === this.trackLine || null === this.slideTrack || ! this.slides.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.initDefaultSlideTrackerWidth();\n\t\tthis.navs.forEach( ( nav, index ) => {\n\t\t\tnav.addEventListener( 'click', event => this.onNavClick( event, index ) );\n\t\t});\n\t}\n\n\tonNavClick( event, index ) {\n\t\tthis.removeActiveClassnameFromNavs();\n\t\tevent.target.classList.add( 'frm-active' );\n\t\tthis.initSlideTrackUnderline( event.target, index );\n\t\tthis.changeSlide( index );\n\t}\n\n\tinitDefaultSlideTrackerWidth() {\n\t\tif ( ! this.slideTrackLine.dataset.initialWidth ) {\n\t\t\treturn;\n\t\t}\n\t\tthis.slideTrackLine.style.width = `${this.slideTrackLine.dataset.initialWidth}px`;\n\t}\n\tinitSlideTrackUnderline( nav, index ) {\n\t\tthis.slideTrackLine.classList.remove( 'frm-first', 'frm-last' );\n\t\tconst activeNav = 'undefined' !== typeof nav ? nav : this.navs.filter( nav => nav.classList.contains( 'frm-active' ) ) ;\n\t\tthis.slideTrackLine.style.transform = `translateX(${activeNav.offsetLeft}px)`;\n\t\tthis.slideTrackLine.style.width = activeNav.clientWidth + 'px';\n\n\t\tif ( this.navs.length === index + 1 ) { \n\t\t\tthis.slideTrackLine.classList.add( 'frm-last' );\n\t\t\treturn;\n\t\t}\n\t\tif ( 0 === index ) {\n\t\t\tthis.slideTrackLine.classList.add( 'frm-first' );\n\t\t}\n\t}\n\n\tchangeSlide( index ) {\n\t\tthis.removeActiveClassnameFromSlides();\n\t\tconst translate = index == 0 ? '0px' : `calc( ( ${( index * 100 )}% + ${parseInt( this.flexboxSlidesGap, 10 ) * index }px ) * -1 )`;\n\t\tthis.slideTrack.style.transform = `translateX(${translate})`;\n\t\tif ( index in this.slides ) {\n\t\t\tthis.slides[ index ].classList.add( 'frm-active' );\n\t\t}\n\t}\n\n\tremoveActiveClassnameFromSlides() {\n\t\tthis.slides.forEach( slide => slide.classList.remove( 'frm-active' ) );\n\t}\n\n\tremoveActiveClassnameFromNavs() {\n\t\tthis.navs.forEach( nav => nav.classList.remove( 'frm-active' ) );\n\t}\n}\n","/**\n * Memize options object.\n *\n * @typedef MemizeOptions\n *\n * @property {number} [maxSize] Maximum size of the cache.\n */\n\n/**\n * Internal cache entry.\n *\n * @typedef MemizeCacheNode\n *\n * @property {?MemizeCacheNode|undefined} [prev] Previous node.\n * @property {?MemizeCacheNode|undefined} [next] Next node.\n * @property {Array<*>} args Function arguments for cache\n * entry.\n * @property {*} val Function result.\n */\n\n/**\n * Properties of the enhanced function for controlling cache.\n *\n * @typedef MemizeMemoizedFunction\n *\n * @property {()=>void} clear Clear the cache.\n */\n\n/**\n * Accepts a function to be memoized, and returns a new memoized function, with\n * optional options.\n *\n * @template {Function} F\n *\n * @param {F} fn Function to memoize.\n * @param {MemizeOptions} [options] Options object.\n *\n * @return {F & MemizeMemoizedFunction} Memoized function.\n */\nfunction memize( fn, options ) {\n\tvar size = 0;\n\n\t/** @type {?MemizeCacheNode|undefined} */\n\tvar head;\n\n\t/** @type {?MemizeCacheNode|undefined} */\n\tvar tail;\n\n\toptions = options || {};\n\n\tfunction memoized( /* ...args */ ) {\n\t\tvar node = head,\n\t\t\tlen = arguments.length,\n\t\t\targs, i;\n\n\t\tsearchCache: while ( node ) {\n\t\t\t// Perform a shallow equality test to confirm that whether the node\n\t\t\t// under test is a candidate for the arguments passed. Two arrays\n\t\t\t// are shallowly equal if their length matches and each entry is\n\t\t\t// strictly equal between the two sets. Avoid abstracting to a\n\t\t\t// function which could incur an arguments leaking deoptimization.\n\n\t\t\t// Check whether node arguments match arguments length\n\t\t\tif ( node.args.length !== arguments.length ) {\n\t\t\t\tnode = node.next;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Check whether node arguments match arguments values\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tif ( node.args[ i ] !== arguments[ i ] ) {\n\t\t\t\t\tnode = node.next;\n\t\t\t\t\tcontinue searchCache;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// At this point we can assume we've found a match\n\n\t\t\t// Surface matched node to head if not already\n\t\t\tif ( node !== head ) {\n\t\t\t\t// As tail, shift to previous. Must only shift if not also\n\t\t\t\t// head, since if both head and tail, there is no previous.\n\t\t\t\tif ( node === tail ) {\n\t\t\t\t\ttail = node.prev;\n\t\t\t\t}\n\n\t\t\t\t// Adjust siblings to point to each other. If node was tail,\n\t\t\t\t// this also handles new tail's empty `next` assignment.\n\t\t\t\t/** @type {MemizeCacheNode} */ ( node.prev ).next = node.next;\n\t\t\t\tif ( node.next ) {\n\t\t\t\t\tnode.next.prev = node.prev;\n\t\t\t\t}\n\n\t\t\t\tnode.next = head;\n\t\t\t\tnode.prev = null;\n\t\t\t\t/** @type {MemizeCacheNode} */ ( head ).prev = node;\n\t\t\t\thead = node;\n\t\t\t}\n\n\t\t\t// Return immediately\n\t\t\treturn node.val;\n\t\t}\n\n\t\t// No cached value found. Continue to insertion phase:\n\n\t\t// Create a copy of arguments (avoid leaking deoptimization)\n\t\targs = new Array( len );\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tnode = {\n\t\t\targs: args,\n\n\t\t\t// Generate the result from original function\n\t\t\tval: fn.apply( null, args ),\n\t\t};\n\n\t\t// Don't need to check whether node is already head, since it would\n\t\t// have been returned above already if it was\n\n\t\t// Shift existing head down list\n\t\tif ( head ) {\n\t\t\thead.prev = node;\n\t\t\tnode.next = head;\n\t\t} else {\n\t\t\t// If no head, follows that there's no tail (at initial or reset)\n\t\t\ttail = node;\n\t\t}\n\n\t\t// Trim tail if we're reached max size and are pending cache insertion\n\t\tif ( size === /** @type {MemizeOptions} */ ( options ).maxSize ) {\n\t\t\ttail = /** @type {MemizeCacheNode} */ ( tail ).prev;\n\t\t\t/** @type {MemizeCacheNode} */ ( tail ).next = null;\n\t\t} else {\n\t\t\tsize++;\n\t\t}\n\n\t\thead = node;\n\n\t\treturn node.val;\n\t}\n\n\tmemoized.clear = function() {\n\t\thead = null;\n\t\ttail = null;\n\t\tsize = 0;\n\t};\n\n\tif ( process.env.NODE_ENV === 'test' ) {\n\t\t// Cache is not exposed in the public API, but used in tests to ensure\n\t\t// expected list progression\n\t\tmemoized.getCache = function() {\n\t\t\treturn [ head, tail, size ];\n\t\t};\n\t}\n\n\t// Ignore reason: There's not a clear solution to create an intersection of\n\t// the function with additional properties, where the goal is to retain the\n\t// function signature of the incoming argument and add control properties\n\t// on the return value.\n\n\t// @ts-ignore\n\treturn memoized;\n}\n\nmodule.exports = memize;\n","/* global window, exports, define */\n\n!function() {\n 'use strict'\n\n var re = {\n not_string: /[^s]/,\n not_bool: /[^t]/,\n not_type: /[^T]/,\n not_primitive: /[^v]/,\n number: /[diefg]/,\n numeric_arg: /[bcdiefguxX]/,\n json: /[j]/,\n not_json: /[^j]/,\n text: /^[^\\x25]+/,\n modulo: /^\\x25{2}/,\n placeholder: /^\\x25(?:([1-9]\\d*)\\$|\\(([^)]+)\\))?(\\+)?(0|'[^$])?(-)?(\\d+)?(?:\\.(\\d+))?([b-gijostTuvxX])/,\n key: /^([a-z_][a-z_\\d]*)/i,\n key_access: /^\\.([a-z_][a-z_\\d]*)/i,\n index_access: /^\\[(\\d+)\\]/,\n sign: /^[+-]/\n }\n\n function sprintf(key) {\n // `arguments` is not an array, but should be fine for this call\n return sprintf_format(sprintf_parse(key), arguments)\n }\n\n function vsprintf(fmt, argv) {\n return sprintf.apply(null, [fmt].concat(argv || []))\n }\n\n function sprintf_format(parse_tree, argv) {\n var cursor = 1, tree_length = parse_tree.length, arg, output = '', i, k, ph, pad, pad_character, pad_length, is_positive, sign\n for (i = 0; i < tree_length; i++) {\n if (typeof parse_tree[i] === 'string') {\n output += parse_tree[i]\n }\n else if (typeof parse_tree[i] === 'object') {\n ph = parse_tree[i] // convenience purposes only\n if (ph.keys) { // keyword argument\n arg = argv[cursor]\n for (k = 0; k < ph.keys.length; k++) {\n if (arg == undefined) {\n throw new Error(sprintf('[sprintf] Cannot access property \"%s\" of undefined value \"%s\"', ph.keys[k], ph.keys[k-1]))\n }\n arg = arg[ph.keys[k]]\n }\n }\n else if (ph.param_no) { // positional argument (explicit)\n arg = argv[ph.param_no]\n }\n else { // positional argument (implicit)\n arg = argv[cursor++]\n }\n\n if (re.not_type.test(ph.type) && re.not_primitive.test(ph.type) && arg instanceof Function) {\n arg = arg()\n }\n\n if (re.numeric_arg.test(ph.type) && (typeof arg !== 'number' && isNaN(arg))) {\n throw new TypeError(sprintf('[sprintf] expecting number but found %T', arg))\n }\n\n if (re.number.test(ph.type)) {\n is_positive = arg >= 0\n }\n\n switch (ph.type) {\n case 'b':\n arg = parseInt(arg, 10).toString(2)\n break\n case 'c':\n arg = String.fromCharCode(parseInt(arg, 10))\n break\n case 'd':\n case 'i':\n arg = parseInt(arg, 10)\n break\n case 'j':\n arg = JSON.stringify(arg, null, ph.width ? parseInt(ph.width) : 0)\n break\n case 'e':\n arg = ph.precision ? parseFloat(arg).toExponential(ph.precision) : parseFloat(arg).toExponential()\n break\n case 'f':\n arg = ph.precision ? parseFloat(arg).toFixed(ph.precision) : parseFloat(arg)\n break\n case 'g':\n arg = ph.precision ? String(Number(arg.toPrecision(ph.precision))) : parseFloat(arg)\n break\n case 'o':\n arg = (parseInt(arg, 10) >>> 0).toString(8)\n break\n case 's':\n arg = String(arg)\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 't':\n arg = String(!!arg)\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 'T':\n arg = Object.prototype.toString.call(arg).slice(8, -1).toLowerCase()\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 'u':\n arg = parseInt(arg, 10) >>> 0\n break\n case 'v':\n arg = arg.valueOf()\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 'x':\n arg = (parseInt(arg, 10) >>> 0).toString(16)\n break\n case 'X':\n arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase()\n break\n }\n if (re.json.test(ph.type)) {\n output += arg\n }\n else {\n if (re.number.test(ph.type) && (!is_positive || ph.sign)) {\n sign = is_positive ? '+' : '-'\n arg = arg.toString().replace(re.sign, '')\n }\n else {\n sign = ''\n }\n pad_character = ph.pad_char ? ph.pad_char === '0' ? '0' : ph.pad_char.charAt(1) : ' '\n pad_length = ph.width - (sign + arg).length\n pad = ph.width ? (pad_length > 0 ? pad_character.repeat(pad_length) : '') : ''\n output += ph.align ? sign + arg + pad : (pad_character === '0' ? sign + pad + arg : pad + sign + arg)\n }\n }\n }\n return output\n }\n\n var sprintf_cache = Object.create(null)\n\n function sprintf_parse(fmt) {\n if (sprintf_cache[fmt]) {\n return sprintf_cache[fmt]\n }\n\n var _fmt = fmt, match, parse_tree = [], arg_names = 0\n while (_fmt) {\n if ((match = re.text.exec(_fmt)) !== null) {\n parse_tree.push(match[0])\n }\n else if ((match = re.modulo.exec(_fmt)) !== null) {\n parse_tree.push('%')\n }\n else if ((match = re.placeholder.exec(_fmt)) !== null) {\n if (match[2]) {\n arg_names |= 1\n var field_list = [], replacement_field = match[2], field_match = []\n if ((field_match = re.key.exec(replacement_field)) !== null) {\n field_list.push(field_match[1])\n while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') {\n if ((field_match = re.key_access.exec(replacement_field)) !== null) {\n field_list.push(field_match[1])\n }\n else if ((field_match = re.index_access.exec(replacement_field)) !== null) {\n field_list.push(field_match[1])\n }\n else {\n throw new SyntaxError('[sprintf] failed to parse named argument key')\n }\n }\n }\n else {\n throw new SyntaxError('[sprintf] failed to parse named argument key')\n }\n match[2] = field_list\n }\n else {\n arg_names |= 2\n }\n if (arg_names === 3) {\n throw new Error('[sprintf] mixing positional and named placeholders is not (yet) supported')\n }\n\n parse_tree.push(\n {\n placeholder: match[0],\n param_no: match[1],\n keys: match[2],\n sign: match[3],\n pad_char: match[4],\n align: match[5],\n width: match[6],\n precision: match[7],\n type: match[8]\n }\n )\n }\n else {\n throw new SyntaxError('[sprintf] unexpected placeholder')\n }\n _fmt = _fmt.substring(match[0].length)\n }\n return sprintf_cache[fmt] = parse_tree\n }\n\n /**\n * export to either browser or node.js\n */\n /* eslint-disable quote-props */\n if (typeof exports !== 'undefined') {\n exports['sprintf'] = sprintf\n exports['vsprintf'] = vsprintf\n }\n if (typeof window !== 'undefined') {\n window['sprintf'] = sprintf\n window['vsprintf'] = vsprintf\n\n if (typeof define === 'function' && define['amd']) {\n define(function() {\n return {\n 'sprintf': sprintf,\n 'vsprintf': vsprintf\n }\n })\n }\n }\n /* eslint-enable quote-props */\n}(); // eslint-disable-line\n","import pluralForms from '@tannin/plural-forms';\n\n/**\n * Tannin constructor options.\n *\n * @typedef {Object} TanninOptions\n *\n * @property {string} [contextDelimiter] Joiner in string lookup with context.\n * @property {Function} [onMissingKey] Callback to invoke when key missing.\n */\n\n/**\n * Domain metadata.\n *\n * @typedef {Object} TanninDomainMetadata\n *\n * @property {string} [domain] Domain name.\n * @property {string} [lang] Language code.\n * @property {(string|Function)} [plural_forms] Plural forms expression or\n * function evaluator.\n */\n\n/**\n * Domain translation pair respectively representing the singular and plural\n * translation.\n *\n * @typedef {[string,string]} TanninTranslation\n */\n\n/**\n * Locale data domain. The key is used as reference for lookup, the value an\n * array of two string entries respectively representing the singular and plural\n * translation.\n *\n * @typedef {{[key:string]:TanninDomainMetadata|TanninTranslation,'':TanninDomainMetadata|TanninTranslation}} TanninLocaleDomain\n */\n\n/**\n * Jed-formatted locale data.\n *\n * @see http://messageformat.github.io/Jed/\n *\n * @typedef {{[domain:string]:TanninLocaleDomain}} TanninLocaleData\n */\n\n/**\n * Default Tannin constructor options.\n *\n * @type {TanninOptions}\n */\nvar DEFAULT_OPTIONS = {\n\tcontextDelimiter: '\\u0004',\n\tonMissingKey: null,\n};\n\n/**\n * Given a specific locale data's config `plural_forms` value, returns the\n * expression.\n *\n * @example\n *\n * ```\n * getPluralExpression( 'nplurals=2; plural=(n != 1);' ) === '(n != 1)'\n * ```\n *\n * @param {string} pf Locale data plural forms.\n *\n * @return {string} Plural forms expression.\n */\nfunction getPluralExpression( pf ) {\n\tvar parts, i, part;\n\n\tparts = pf.split( ';' );\n\n\tfor ( i = 0; i < parts.length; i++ ) {\n\t\tpart = parts[ i ].trim();\n\t\tif ( part.indexOf( 'plural=' ) === 0 ) {\n\t\t\treturn part.substr( 7 );\n\t\t}\n\t}\n}\n\n/**\n * Tannin constructor.\n *\n * @class\n *\n * @param {TanninLocaleData} data Jed-formatted locale data.\n * @param {TanninOptions} [options] Tannin options.\n */\nexport default function Tannin( data, options ) {\n\tvar key;\n\n\t/**\n\t * Jed-formatted locale data.\n\t *\n\t * @name Tannin#data\n\t * @type {TanninLocaleData}\n\t */\n\tthis.data = data;\n\n\t/**\n\t * Plural forms function cache, keyed by plural forms string.\n\t *\n\t * @name Tannin#pluralForms\n\t * @type {Object}\n\t */\n\tthis.pluralForms = {};\n\n\t/**\n\t * Effective options for instance, including defaults.\n\t *\n\t * @name Tannin#options\n\t * @type {TanninOptions}\n\t */\n\tthis.options = {};\n\n\tfor ( key in DEFAULT_OPTIONS ) {\n\t\tthis.options[ key ] = options !== undefined && key in options\n\t\t\t? options[ key ]\n\t\t\t: DEFAULT_OPTIONS[ key ];\n\t}\n}\n\n/**\n * Returns the plural form index for the given domain and value.\n *\n * @param {string} domain Domain on which to calculate plural form.\n * @param {number} n Value for which plural form is to be calculated.\n *\n * @return {number} Plural form index.\n */\nTannin.prototype.getPluralForm = function( domain, n ) {\n\tvar getPluralForm = this.pluralForms[ domain ],\n\t\tconfig, plural, pf;\n\n\tif ( ! getPluralForm ) {\n\t\tconfig = this.data[ domain ][ '' ];\n\n\t\tpf = (\n\t\t\tconfig[ 'Plural-Forms' ] ||\n\t\t\tconfig[ 'plural-forms' ] ||\n\t\t\t// Ignore reason: As known, there's no way to document the empty\n\t\t\t// string property on a key to guarantee this as metadata.\n\t\t\t// @ts-ignore\n\t\t\tconfig.plural_forms\n\t\t);\n\n\t\tif ( typeof pf !== 'function' ) {\n\t\t\tplural = getPluralExpression(\n\t\t\t\tconfig[ 'Plural-Forms' ] ||\n\t\t\t\tconfig[ 'plural-forms' ] ||\n\t\t\t\t// Ignore reason: As known, there's no way to document the empty\n\t\t\t\t// string property on a key to guarantee this as metadata.\n\t\t\t\t// @ts-ignore\n\t\t\t\tconfig.plural_forms\n\t\t\t);\n\n\t\t\tpf = pluralForms( plural );\n\t\t}\n\n\t\tgetPluralForm = this.pluralForms[ domain ] = pf;\n\t}\n\n\treturn getPluralForm( n );\n};\n\n/**\n * Translate a string.\n *\n * @param {string} domain Translation domain.\n * @param {string|void} context Context distinguishing terms of the same name.\n * @param {string} singular Primary key for translation lookup.\n * @param {string=} plural Fallback value used for non-zero plural\n * form index.\n * @param {number=} n Value to use in calculating plural form.\n *\n * @return {string} Translated string.\n */\nTannin.prototype.dcnpgettext = function( domain, context, singular, plural, n ) {\n\tvar index, key, entry;\n\n\tif ( n === undefined ) {\n\t\t// Default to singular.\n\t\tindex = 0;\n\t} else {\n\t\t// Find index by evaluating plural form for value.\n\t\tindex = this.getPluralForm( domain, n );\n\t}\n\n\tkey = singular;\n\n\t// If provided, context is prepended to key with delimiter.\n\tif ( context ) {\n\t\tkey = context + this.options.contextDelimiter + singular;\n\t}\n\n\tentry = this.data[ domain ][ key ];\n\n\t// Verify not only that entry exists, but that the intended index is within\n\t// range and non-empty.\n\tif ( entry && entry[ index ] ) {\n\t\treturn entry[ index ];\n\t}\n\n\tif ( this.options.onMissingKey ) {\n\t\tthis.options.onMissingKey( singular, domain );\n\t}\n\n\t// If entry not found, fall back to singular vs. plural with zero index\n\t// representing the singular value.\n\treturn index === 0 ? singular : plural;\n};\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","import _typeof from \"./typeof.js\";\nexport default function toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : String(i);\n}","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { __ } from '@wordpress/i18n';\nimport frmRadioStyleComponent from './styles/radio-style-component.js';\nimport frmSliderStyleComponent from './styles/slider-style-component.js';\nimport frmTabsStyleComponent from './styles/tabs-style-component.js';\nimport frmStyleDependentUpdaterComponent from './styles/dependent-updater-component.js';\n\n/**\n * Represents the frmStyleOptions class.\n * @class\n */\nclass frmStyleOptions {\n\n\tconstructor() {\n\t\tthis.success = frmDom.success;\n\t\tthis.init();\n\t\tthis.initHover();\n\t}\n\n\t/**\n\t * Initializes the style components: frmRadioStyleComponent, frmSliderStyleComponent, and frmTabsStyleComponent.\n\t * Init the dependent \n\t */\n\tinit() {\n\t\tnew frmRadioStyleComponent();\n\t\tnew frmSliderStyleComponent();\n\t\tnew frmTabsStyleComponent();\n\n\t\tthis.initColorPickerDependentUpdaterComponents();\n\t\tthis.initStyleClassCopyToClipboard( __( 'The class name has been copied.', 'formidable' ) );\n\t}\n\n\t/**\n\t * Initializes the color picker dependent updater components.\n\t * Retrieves the components and elements, and adds them to the elements array.\n\t * Adds an action hook for the frm_style_options_color_change event.\n\t */\n\tinitColorPickerDependentUpdaterComponents() {\n\t\tconst components = document.querySelectorAll( '.frm-style-dependent-updater-component.frm-colorpicker' );\n\t\tconst elements = [];\n\n\t\tcomponents.forEach( ( component ) => {\n\t\t\tconst element = component.querySelector( 'input.hex' );\n\t\t\tconst id = 'undefined' !== typeof element ? element.getAttribute( 'id' ) : null;\n\n\t\t\tif ( null !== id ) {\n\t\t\t\telements.push({\n\t\t\t\t\tid: id,\n\t\t\t\t\tdependentUpdaterClass: new frmStyleDependentUpdaterComponent( component, 'colorpicker' )\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\twp.hooks.addAction( 'frm_style_options_color_change', 'formidable', ( { event, value } ) => {\n\t\t\tconst container = event.target.closest( '.wp-picker-container' );\n\t\t\tconst id = event.target.getAttribute( 'id' );\n\n\t\t\tcontainer.querySelector( '.wp-color-result-text' ).innerText = value;\n\n\t\t\telements.forEach( ( element ) => {\n\t\t\t\tif ( element.id === id ) {\n\t\t\t\t\telement.dependentUpdaterClass.updateAllDependentElements( value );\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Initializes the hover functionality for the style options.\n\t * Creates a hover element and appends it to the settingsWrapper.\n\t * Adds event listeners for mouseover and click events.\n\t */\n\tinitHover() {\n\t\tconst settingsWrapper = document.querySelector( '.frm-right-panel .styling_settings .accordion-container' );\n\t\tif ( null === settingsWrapper ) {\n\t\t\treturn;\n\t\t}\n\t\tconst hoverElement = document.createElement( 'div' );\n\t\thoverElement.classList.add( 'frm_hidden' );\n\t\thoverElement.classList.add( 'frm-style-settings-hover' );\n\t\tsettingsWrapper.appendChild( hoverElement );\n\n\t\tconst styleOptionsMenu = settingsWrapper.querySelector( ':scope > ul' );\n\n\t\tstyleOptionsMenu.querySelectorAll( ':scope > li' ).forEach( ( item ) => {\n\t\t\titem.querySelector('h3').addEventListener( 'mouseover', ( event ) => {\n\t\t\t\thoverElement.style.transform = `translateY(${event.target.closest('li').offsetTop}px)`;\n\t\t\t\thoverElement.classList.add( 'frm-animating' );\n\t\t\t\thoverElement.classList.remove( 'frm_hidden' );\n\t\t\t\tsetTimeout( () => { hoverElement.classList.remove( 'frm-animating' ); }, 250 );\n\t\t\t});\n\t\t});\n\n\t\tconst accordionitems = document.querySelectorAll( '#frm_style_sidebar .accordion-section h3' );\n\t\taccordionitems.forEach( ( item ) => {\n\t\t\titem.addEventListener( 'click', () => {\n\t\t\t\thoverElement.classList.add( 'frm_hidden' );\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Initializes the copy to clipboard functionality for style classes.\n\t * Adds a click event listener to the copyLabel element.\n\t * Copies the class name to the clipboard and displays a success message.\n\t * @param {string} successMessage - The success message to display.\n\t */\n\tinitStyleClassCopyToClipboard( successMessage ) {\n\t\tconst copyLabel = document.querySelector( '.frm-copy-text' );\n\t\tcopyLabel.addEventListener( 'click', ( event ) => {\n\t\t\tconst className = event.target.innerText;\n\t\t\tnavigator.clipboard.writeText( className ).then( () => {\n\t\t\t\tthis.success( successMessage );\n\t\t\t});\n\t\t})\n\t}\n}\n\nnew frmStyleOptions();\n"],"names":["frmStyleDependentUpdaterComponent","component","_classCallCheck","data","propagateInputs","initPropagationList","JSON","parse","dataset","willChange","changeEvent","Event","bubbles","_createClass","key","value","inputNames","list","forEach","name","input","document","querySelector","concat","push","updateAllDependentElements","dispatchEvent","default","frmRadioStyleComponent","elements","querySelectorAll","length","init","_this","element","initOnRadioChange","initTrackerOnAccordionClick","_this2","accordionitems","accordionitem","addEventListener","event","wrapper","target","closest","radioButtons","radio","setTimeout","onRadioChange","_this3","checked","activeItem","moveTracker","hideExtraElements","maybeShowExtraElements","elementAttr","getAttribute","classList","remove","add","offset","offsetLeft","width","offsetWidth","tracker","style","left","transform","frmSliderStyleComponent","sliderBulletWidth","sliderMarginRight","eventsChange","debounce","frmDom","util","valueChangeDebouncer","index","triggerValueChange","initOptions","options","parentWrapper","contains","dragging","startX","translateX","maxValue","parseInt","dependentUpdater","initSlidersPosition","initDraggable","draggableBullet","valueInput","unit","getMaxValue","initSliderWidth","updateValue","expandSliderGroup","updateOnUnitChange","changeSliderPositionOnClick","preventDefault","stopPropagation","enableDragging","disableDragging","svgIcon","displaySliders","sliderGroupItems","getSliderGroupItems","item","toggle","_this4","toLowerCase","fullValue","_this5","frmSlider","customEvent","sliderWidth","sliderRect","getBoundingClientRect","deltaX","clientX","calculateValue","initChildSlidersWidth","slidersGroup","split","query","map","join","_this6","quickSettings","initSlidersWidth","initSliderPositionOnFieldShapeChange","_this7","fieldShapeType","slider","section","_this8","sliders","getSliderIndex","Math","round","ceil","_this9","childSliders","childIndex","filter","option","max","innerText","_this10","NodeList","delta","min","_this11","inputValue","type","newValue","childSlidersGroup","unitMeasure","getUnitMeasureFromValue","inputValues","visibleValues","find","includes","frmTabsNavigator","frmTabsStyleComponent","initOnTabClick","initActiveBackgroundWidth","tab","onTabClick","Element","flexboxSlidesGap","navs","slideTrackLine","slideTrack","slides","trackLine","initDefaultSlideTrackerWidth","nav","onNavClick","removeActiveClassnameFromNavs","initSlideTrackUnderline","changeSlide","initialWidth","activeNav","clientWidth","removeActiveClassnameFromSlides","translate","slide","__","frmStyleOptions","success","initHover","initColorPickerDependentUpdaterComponents","initStyleClassCopyToClipboard","components","id","dependentUpdaterClass","wp","hooks","addAction","_ref","container","settingsWrapper","hoverElement","createElement","appendChild","styleOptionsMenu","offsetTop","successMessage","copyLabel","className","navigator","clipboard","writeText","then"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"formidable_styles.js","mappings":";;;;;;;;;;;;;;;;AAAsC;AACE;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,YAAY,aAAa,oBAAoB,MAAM;AACnD;AACe;AACf,aAAa,2DAAO;;AAEpB;AACA,SAAS,4DAAQ;AACjB;AACA;;;;;;;;;;;;;;;;AC5BA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB;AACA,YAAY,GAAG;AACf;AACe;AACf;AACA;;AAEA,cAAc,oBAAoB;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;AC7GsC;;AAEtC;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,YAAY,UAAU;AACtB;AACe;AACf,gBAAgB,2DAAO;;AAEvB;AACA,sBAAsB,OAAO;AAC7B;AACA;;;;;;;;;;;;;;;;ACjBA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,YAAY,UAAU;AACtB;AACe;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;AC3HA;AACA;AACA;AACuD;AACF;AACrD;AACA;AACA;AACA;AACA;AACA,WAAW,sBAAsB;AACjC,WAAW,sBAAsB;AACjC,WAAW,sBAAsB;AACjC,WAAW,sBAAsB;AACjC;;AAEA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA,YAAY,SAAS;AACrB;;AAEA;AACA;AACA;AACA;;AAEA,SAAS,gEAAgB;AACzB;AACA;;AAEA,SAAS,iEAAiB;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;;;AAGN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,QAAQ;;AAEzB;;AAEA,gCAAgC,OAAO;AACvC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA,kBAAkB;AAClB;;;AAGA;AACA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,+DAAe,aAAa,EAAC;AAC7B;;;;;;;;;;;;ACtGA;AACA;AACA;AACA;AACA;AACA,YAAY,sBA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CA;AACA;AAC4B;AAC5B;AACA,aAAa,oBAAoB;AACjC;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,iCAAiC;AAC9C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,8CAA8C;AAC3D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,8CAA8C;AAC3D;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc,YAAY;;AAE1B,cAAc,YAAY;;AAE1B;AACA,aAAa,sDAAsD;AACnE;AACA;AACA;;AAEA;AACA,aAAa,6BAA6B;AAC1C;AACA;;AAEA;AACA,aAAa,2CAA2C;AACxD;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,4DAA4D;AACzE;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,6EAA6E;AAC1F;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,8FAA8F;AAC3G;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,eAAe;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,gEAAgE;AAC7E;AACA;AACA;;AAEA,cAAc,kCAAkC;;AAEhD;AACA;AACA;AACA;AACA,cAAc,eAAe;AAC7B,cAAc,eAAe;AAC7B;AACA,cAAc,iBAAiB;AAC/B;AACA,cAAc,WAAW;AACzB,cAAc,IAAI;AAClB,cAAc,IAAI;AAClB,cAAc,IAAI;AAClB;AACA,cAAc,KAAK;AACnB;AACA,cAAc,OAAO;AACrB,cAAc,gBAAgB;AAC9B;;AAEA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,YAAY,4BAA4B;AACxC;;AAEO;AACP;AACA;AACA;AACA,YAAY;AACZ;AACA,mBAAmB,8CAAM,GAAG;AAC5B;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,aAAa,mBAAmB;AAChC,cAAc,qBAAqB;AACn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GAAG,EAMtC;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;ACtKA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA,gCAAgC,oBAAoB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA,uBAAuB;AACvB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ,IAA8B;AACtC,QAAQ,eAAkB;AAC1B,QAAQ,gBAAmB;AAC3B;AACA;AACA;AACA;;AAEA,YAAY,IAA6C;AACzD,YAAY,mCAAO;AACnB;AACA;AACA;AACA;AACA,aAAa;AAAA,kGAAC;AACd;AACA;AACA;AACA,CAAC,IAAI;;;;;;;;;;;;;;;;;ACtO0C;;AAE/C;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA,cAAc,mBAAmB;AACjC,cAAc,mBAAmB;AACjC,cAAc,mBAAmB;AACjC;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,iBAAiB;AAC9B;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,gGAAgG;AAC9G;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,qCAAqC;AACnD;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,gBAAgB;AACrD;AACA;AACA,WAAW,QAAQ;AACnB;AACA,YAAY,QAAQ;AACpB;AACA;AACA;;AAEA,qBAAqB;;AAErB,cAAc,kBAAkB;AAChC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,kBAAkB;AAC7B,WAAW,kBAAkB;AAC7B;AACe;AACf;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,QAAQ,gEAAW;AACnB;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,aAAa;AAC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","sources":["webpack://formidable/./node_modules/@tannin/compile/index.js","webpack://formidable/./node_modules/@tannin/evaluate/index.js","webpack://formidable/./node_modules/@tannin/plural-forms/index.js","webpack://formidable/./node_modules/@tannin/postfix/index.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createAddHook.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createCurrentHook.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createDidHook.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createDoingHook.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createHasHook.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createHooks.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createRemoveHook.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createRunHook.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/index.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/validateHookName.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/validateNamespace.js","webpack://formidable/./node_modules/@wordpress/i18n/build-module/create-i18n.js","webpack://formidable/./node_modules/@wordpress/i18n/build-module/default-i18n.js","webpack://formidable/./node_modules/@wordpress/i18n/build-module/index.js","webpack://formidable/./node_modules/@wordpress/i18n/build-module/sprintf.js","webpack://formidable/./js/src/admin/styles/dependent-updater-component.js","webpack://formidable/./js/src/admin/styles/radio-style-component.js","webpack://formidable/./js/src/admin/styles/slider-style-component.js","webpack://formidable/./js/src/admin/styles/tabs-style-component.js","webpack://formidable/./js/src/common/constants.js","webpack://formidable/./js/src/common/utilities/animation.js","webpack://formidable/./js/src/common/utilities/index.js","webpack://formidable/./js/src/common/utilities/requestQueue.js","webpack://formidable/./js/src/common/utilities/uiUtils.js","webpack://formidable/./js/src/common/utilities/url.js","webpack://formidable/./js/src/common/utilities/validation.js","webpack://formidable/./js/src/common/utilities/visibility.js","webpack://formidable/./js/src/components/class-tabs-navigator.js","webpack://formidable/./node_modules/memize/index.js","webpack://formidable/./node_modules/sprintf-js/src/sprintf.js","webpack://formidable/./node_modules/tannin/index.js","webpack://formidable/./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://formidable/./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://formidable/./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://formidable/./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://formidable/./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://formidable/./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://formidable/./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://formidable/./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://formidable/./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://formidable/./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://formidable/./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://formidable/webpack/bootstrap","webpack://formidable/webpack/runtime/compat get default export","webpack://formidable/webpack/runtime/define property getters","webpack://formidable/webpack/runtime/hasOwnProperty shorthand","webpack://formidable/webpack/runtime/make namespace object","webpack://formidable/./js/src/admin/styles.js"],"sourcesContent":["import postfix from '@tannin/postfix';\nimport evaluate from '@tannin/evaluate';\n\n/**\n * Given a C expression, returns a function which can be called to evaluate its\n * result.\n *\n * @example\n *\n * ```js\n * import compile from '@tannin/compile';\n *\n * const evaluate = compile( 'n > 1' );\n *\n * evaluate( { n: 2 } );\n * // ⇒ true\n * ```\n *\n * @param {string} expression C expression.\n *\n * @return {(variables?:{[variable:string]:*})=>*} Compiled evaluator.\n */\nexport default function compile( expression ) {\n\tvar terms = postfix( expression );\n\n\treturn function( variables ) {\n\t\treturn evaluate( terms, variables );\n\t};\n}\n","/**\n * Operator callback functions.\n *\n * @type {Object}\n */\nvar OPERATORS = {\n\t'!': function( a ) {\n\t\treturn ! a;\n\t},\n\t'*': function( a, b ) {\n\t\treturn a * b;\n\t},\n\t'/': function( a, b ) {\n\t\treturn a / b;\n\t},\n\t'%': function( a, b ) {\n\t\treturn a % b;\n\t},\n\t'+': function( a, b ) {\n\t\treturn a + b;\n\t},\n\t'-': function( a, b ) {\n\t\treturn a - b;\n\t},\n\t'<': function( a, b ) {\n\t\treturn a < b;\n\t},\n\t'<=': function( a, b ) {\n\t\treturn a <= b;\n\t},\n\t'>': function( a, b ) {\n\t\treturn a > b;\n\t},\n\t'>=': function( a, b ) {\n\t\treturn a >= b;\n\t},\n\t'==': function( a, b ) {\n\t\treturn a === b;\n\t},\n\t'!=': function( a, b ) {\n\t\treturn a !== b;\n\t},\n\t'&&': function( a, b ) {\n\t\treturn a && b;\n\t},\n\t'||': function( a, b ) {\n\t\treturn a || b;\n\t},\n\t'?:': function( a, b, c ) {\n\t\tif ( a ) {\n\t\t\tthrow b;\n\t\t}\n\n\t\treturn c;\n\t},\n};\n\n/**\n * Given an array of postfix terms and operand variables, returns the result of\n * the postfix evaluation.\n *\n * @example\n *\n * ```js\n * import evaluate from '@tannin/evaluate';\n *\n * // 3 + 4 * 5 / 6 ⇒ '3 4 5 * 6 / +'\n * const terms = [ '3', '4', '5', '*', '6', '/', '+' ];\n *\n * evaluate( terms, {} );\n * // ⇒ 6.333333333333334\n * ```\n *\n * @param {string[]} postfix Postfix terms.\n * @param {Object} variables Operand variables.\n *\n * @return {*} Result of evaluation.\n */\nexport default function evaluate( postfix, variables ) {\n\tvar stack = [],\n\t\ti, j, args, getOperatorResult, term, value;\n\n\tfor ( i = 0; i < postfix.length; i++ ) {\n\t\tterm = postfix[ i ];\n\n\t\tgetOperatorResult = OPERATORS[ term ];\n\t\tif ( getOperatorResult ) {\n\t\t\t// Pop from stack by number of function arguments.\n\t\t\tj = getOperatorResult.length;\n\t\t\targs = Array( j );\n\t\t\twhile ( j-- ) {\n\t\t\t\targs[ j ] = stack.pop();\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tvalue = getOperatorResult.apply( null, args );\n\t\t\t} catch ( earlyReturn ) {\n\t\t\t\treturn earlyReturn;\n\t\t\t}\n\t\t} else if ( variables.hasOwnProperty( term ) ) {\n\t\t\tvalue = variables[ term ];\n\t\t} else {\n\t\t\tvalue = +term;\n\t\t}\n\n\t\tstack.push( value );\n\t}\n\n\treturn stack[ 0 ];\n}\n","import compile from '@tannin/compile';\n\n/**\n * Given a C expression, returns a function which, when called with a value,\n * evaluates the result with the value assumed to be the \"n\" variable of the\n * expression. The result will be coerced to its numeric equivalent.\n *\n * @param {string} expression C expression.\n *\n * @return {Function} Evaluator function.\n */\nexport default function pluralForms( expression ) {\n\tvar evaluate = compile( expression );\n\n\treturn function( n ) {\n\t\treturn +evaluate( { n: n } );\n\t};\n}\n","var PRECEDENCE, OPENERS, TERMINATORS, PATTERN;\n\n/**\n * Operator precedence mapping.\n *\n * @type {Object}\n */\nPRECEDENCE = {\n\t'(': 9,\n\t'!': 8,\n\t'*': 7,\n\t'/': 7,\n\t'%': 7,\n\t'+': 6,\n\t'-': 6,\n\t'<': 5,\n\t'<=': 5,\n\t'>': 5,\n\t'>=': 5,\n\t'==': 4,\n\t'!=': 4,\n\t'&&': 3,\n\t'||': 2,\n\t'?': 1,\n\t'?:': 1,\n};\n\n/**\n * Characters which signal pair opening, to be terminated by terminators.\n *\n * @type {string[]}\n */\nOPENERS = [ '(', '?' ];\n\n/**\n * Characters which signal pair termination, the value an array with the\n * opener as its first member. The second member is an optional operator\n * replacement to push to the stack.\n *\n * @type {string[]}\n */\nTERMINATORS = {\n\t')': [ '(' ],\n\t':': [ '?', '?:' ],\n};\n\n/**\n * Pattern matching operators and openers.\n *\n * @type {RegExp}\n */\nPATTERN = /<=|>=|==|!=|&&|\\|\\||\\?:|\\(|!|\\*|\\/|%|\\+|-|<|>|\\?|\\)|:/;\n\n/**\n * Given a C expression, returns the equivalent postfix (Reverse Polish)\n * notation terms as an array.\n *\n * If a postfix string is desired, simply `.join( ' ' )` the result.\n *\n * @example\n *\n * ```js\n * import postfix from '@tannin/postfix';\n *\n * postfix( 'n > 1' );\n * // ⇒ [ 'n', '1', '>' ]\n * ```\n *\n * @param {string} expression C expression.\n *\n * @return {string[]} Postfix terms.\n */\nexport default function postfix( expression ) {\n\tvar terms = [],\n\t\tstack = [],\n\t\tmatch, operator, term, element;\n\n\twhile ( ( match = expression.match( PATTERN ) ) ) {\n\t\toperator = match[ 0 ];\n\n\t\t// Term is the string preceding the operator match. It may contain\n\t\t// whitespace, and may be empty (if operator is at beginning).\n\t\tterm = expression.substr( 0, match.index ).trim();\n\t\tif ( term ) {\n\t\t\tterms.push( term );\n\t\t}\n\n\t\twhile ( ( element = stack.pop() ) ) {\n\t\t\tif ( TERMINATORS[ operator ] ) {\n\t\t\t\tif ( TERMINATORS[ operator ][ 0 ] === element ) {\n\t\t\t\t\t// Substitution works here under assumption that because\n\t\t\t\t\t// the assigned operator will no longer be a terminator, it\n\t\t\t\t\t// will be pushed to the stack during the condition below.\n\t\t\t\t\toperator = TERMINATORS[ operator ][ 1 ] || operator;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else if ( OPENERS.indexOf( element ) >= 0 || PRECEDENCE[ element ] < PRECEDENCE[ operator ] ) {\n\t\t\t\t// Push to stack if either an opener or when pop reveals an\n\t\t\t\t// element of lower precedence.\n\t\t\t\tstack.push( element );\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\t// For each popped from stack, push to terms.\n\t\t\tterms.push( element );\n\t\t}\n\n\t\tif ( ! TERMINATORS[ operator ] ) {\n\t\t\tstack.push( operator );\n\t\t}\n\n\t\t// Slice matched fragment from expression to continue match.\n\t\texpression = expression.substr( match.index + operator.length );\n\t}\n\n\t// Push remainder of operand, if exists, to terms.\n\texpression = expression.trim();\n\tif ( expression ) {\n\t\tterms.push( expression );\n\t}\n\n\t// Pop remaining items from stack into terms.\n\treturn terms.concat( stack.reverse() );\n}\n","/**\n * Internal dependencies\n */\nimport validateNamespace from './validateNamespace.js';\nimport validateHookName from './validateHookName.js';\n/**\n * @callback AddHook\n *\n * Adds the hook to the appropriate hooks container.\n *\n * @param {string} hookName Name of hook to add\n * @param {string} namespace The unique namespace identifying the callback in the form `vendor/plugin/function`.\n * @param {import('.').Callback} callback Function to call when the hook is run\n * @param {number} [priority=10] Priority of this hook\n */\n\n/**\n * Returns a function which, when invoked, will add a hook.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n *\n * @return {AddHook} Function that adds a new hook.\n */\n\nfunction createAddHook(hooks, storeKey) {\n return function addHook(hookName, namespace, callback) {\n var priority = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 10;\n var hooksStore = hooks[storeKey];\n\n if (!validateHookName(hookName)) {\n return;\n }\n\n if (!validateNamespace(namespace)) {\n return;\n }\n\n if ('function' !== typeof callback) {\n // eslint-disable-next-line no-console\n console.error('The hook callback must be a function.');\n return;\n } // Validate numeric priority\n\n\n if ('number' !== typeof priority) {\n // eslint-disable-next-line no-console\n console.error('If specified, the hook priority must be a number.');\n return;\n }\n\n var handler = {\n callback: callback,\n priority: priority,\n namespace: namespace\n };\n\n if (hooksStore[hookName]) {\n // Find the correct insert index of the new hook.\n var handlers = hooksStore[hookName].handlers;\n /** @type {number} */\n\n var i;\n\n for (i = handlers.length; i > 0; i--) {\n if (priority >= handlers[i - 1].priority) {\n break;\n }\n }\n\n if (i === handlers.length) {\n // If append, operate via direct assignment.\n handlers[i] = handler;\n } else {\n // Otherwise, insert before index via splice.\n handlers.splice(i, 0, handler);\n } // We may also be currently executing this hook. If the callback\n // we're adding would come after the current callback, there's no\n // problem; otherwise we need to increase the execution index of\n // any other runs by 1 to account for the added element.\n\n\n hooksStore.__current.forEach(function (hookInfo) {\n if (hookInfo.name === hookName && hookInfo.currentIndex >= i) {\n hookInfo.currentIndex++;\n }\n });\n } else {\n // This is the first hook of its type.\n hooksStore[hookName] = {\n handlers: [handler],\n runs: 0\n };\n }\n\n if (hookName !== 'hookAdded') {\n hooks.doAction('hookAdded', hookName, namespace, callback, priority);\n }\n };\n}\n\nexport default createAddHook;\n//# sourceMappingURL=createAddHook.js.map","/**\n * Returns a function which, when invoked, will return the name of the\n * currently running hook, or `null` if no hook of the given type is currently\n * running.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n *\n * @return {() => string | null} Function that returns the current hook name or null.\n */\nfunction createCurrentHook(hooks, storeKey) {\n return function currentHook() {\n var _hooksStore$__current, _hooksStore$__current2;\n\n var hooksStore = hooks[storeKey];\n return (_hooksStore$__current = (_hooksStore$__current2 = hooksStore.__current[hooksStore.__current.length - 1]) === null || _hooksStore$__current2 === void 0 ? void 0 : _hooksStore$__current2.name) !== null && _hooksStore$__current !== void 0 ? _hooksStore$__current : null;\n };\n}\n\nexport default createCurrentHook;\n//# sourceMappingURL=createCurrentHook.js.map","/**\n * Internal dependencies\n */\nimport validateHookName from './validateHookName.js';\n/**\n * @callback DidHook\n *\n * Returns the number of times an action has been fired.\n *\n * @param {string} hookName The hook name to check.\n *\n * @return {number | undefined} The number of times the hook has run.\n */\n\n/**\n * Returns a function which, when invoked, will return the number of times a\n * hook has been called.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n *\n * @return {DidHook} Function that returns a hook's call count.\n */\n\nfunction createDidHook(hooks, storeKey) {\n return function didHook(hookName) {\n var hooksStore = hooks[storeKey];\n\n if (!validateHookName(hookName)) {\n return;\n }\n\n return hooksStore[hookName] && hooksStore[hookName].runs ? hooksStore[hookName].runs : 0;\n };\n}\n\nexport default createDidHook;\n//# sourceMappingURL=createDidHook.js.map","/**\n * @callback DoingHook\n * Returns whether a hook is currently being executed.\n *\n * @param {string} [hookName] The name of the hook to check for. If\n * omitted, will check for any hook being executed.\n *\n * @return {boolean} Whether the hook is being executed.\n */\n\n/**\n * Returns a function which, when invoked, will return whether a hook is\n * currently being executed.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n *\n * @return {DoingHook} Function that returns whether a hook is currently\n * being executed.\n */\nfunction createDoingHook(hooks, storeKey) {\n return function doingHook(hookName) {\n var hooksStore = hooks[storeKey]; // If the hookName was not passed, check for any current hook.\n\n if ('undefined' === typeof hookName) {\n return 'undefined' !== typeof hooksStore.__current[0];\n } // Return the __current hook.\n\n\n return hooksStore.__current[0] ? hookName === hooksStore.__current[0].name : false;\n };\n}\n\nexport default createDoingHook;\n//# sourceMappingURL=createDoingHook.js.map","/**\n * @callback HasHook\n *\n * Returns whether any handlers are attached for the given hookName and optional namespace.\n *\n * @param {string} hookName The name of the hook to check for.\n * @param {string} [namespace] Optional. The unique namespace identifying the callback\n * in the form `vendor/plugin/function`.\n *\n * @return {boolean} Whether there are handlers that are attached to the given hook.\n */\n\n/**\n * Returns a function which, when invoked, will return whether any handlers are\n * attached to a particular hook.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n *\n * @return {HasHook} Function that returns whether any handlers are\n * attached to a particular hook and optional namespace.\n */\nfunction createHasHook(hooks, storeKey) {\n return function hasHook(hookName, namespace) {\n var hooksStore = hooks[storeKey]; // Use the namespace if provided.\n\n if ('undefined' !== typeof namespace) {\n return hookName in hooksStore && hooksStore[hookName].handlers.some(function (hook) {\n return hook.namespace === namespace;\n });\n }\n\n return hookName in hooksStore;\n };\n}\n\nexport default createHasHook;\n//# sourceMappingURL=createHasHook.js.map","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\n\n/**\n * Internal dependencies\n */\nimport createAddHook from './createAddHook';\nimport createRemoveHook from './createRemoveHook';\nimport createHasHook from './createHasHook';\nimport createRunHook from './createRunHook';\nimport createCurrentHook from './createCurrentHook';\nimport createDoingHook from './createDoingHook';\nimport createDidHook from './createDidHook';\n/**\n * Internal class for constructing hooks. Use `createHooks()` function\n *\n * Note, it is necessary to expose this class to make its type public.\n *\n * @private\n */\n\nexport var _Hooks = function _Hooks() {\n _classCallCheck(this, _Hooks);\n\n /** @type {import('.').Store} actions */\n this.actions = Object.create(null);\n this.actions.__current = [];\n /** @type {import('.').Store} filters */\n\n this.filters = Object.create(null);\n this.filters.__current = [];\n this.addAction = createAddHook(this, 'actions');\n this.addFilter = createAddHook(this, 'filters');\n this.removeAction = createRemoveHook(this, 'actions');\n this.removeFilter = createRemoveHook(this, 'filters');\n this.hasAction = createHasHook(this, 'actions');\n this.hasFilter = createHasHook(this, 'filters');\n this.removeAllActions = createRemoveHook(this, 'actions', true);\n this.removeAllFilters = createRemoveHook(this, 'filters', true);\n this.doAction = createRunHook(this, 'actions');\n this.applyFilters = createRunHook(this, 'filters', true);\n this.currentAction = createCurrentHook(this, 'actions');\n this.currentFilter = createCurrentHook(this, 'filters');\n this.doingAction = createDoingHook(this, 'actions');\n this.doingFilter = createDoingHook(this, 'filters');\n this.didAction = createDidHook(this, 'actions');\n this.didFilter = createDidHook(this, 'filters');\n};\n/** @typedef {_Hooks} Hooks */\n\n/**\n * Returns an instance of the hooks object.\n *\n * @return {Hooks} A Hooks instance.\n */\n\nfunction createHooks() {\n return new _Hooks();\n}\n\nexport default createHooks;\n//# sourceMappingURL=createHooks.js.map","/**\n * Internal dependencies\n */\nimport validateNamespace from './validateNamespace.js';\nimport validateHookName from './validateHookName.js';\n/**\n * @callback RemoveHook\n * Removes the specified callback (or all callbacks) from the hook with a given hookName\n * and namespace.\n *\n * @param {string} hookName The name of the hook to modify.\n * @param {string} namespace The unique namespace identifying the callback in the\n * form `vendor/plugin/function`.\n *\n * @return {number | undefined} The number of callbacks removed.\n */\n\n/**\n * Returns a function which, when invoked, will remove a specified hook or all\n * hooks by the given name.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n * @param {boolean} [removeAll=false] Whether to remove all callbacks for a hookName,\n * without regard to namespace. Used to create\n * `removeAll*` functions.\n *\n * @return {RemoveHook} Function that removes hooks.\n */\n\nfunction createRemoveHook(hooks, storeKey) {\n var removeAll = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n return function removeHook(hookName, namespace) {\n var hooksStore = hooks[storeKey];\n\n if (!validateHookName(hookName)) {\n return;\n }\n\n if (!removeAll && !validateNamespace(namespace)) {\n return;\n } // Bail if no hooks exist by this name\n\n\n if (!hooksStore[hookName]) {\n return 0;\n }\n\n var handlersRemoved = 0;\n\n if (removeAll) {\n handlersRemoved = hooksStore[hookName].handlers.length;\n hooksStore[hookName] = {\n runs: hooksStore[hookName].runs,\n handlers: []\n };\n } else {\n // Try to find the specified callback to remove.\n var handlers = hooksStore[hookName].handlers;\n\n var _loop = function _loop(i) {\n if (handlers[i].namespace === namespace) {\n handlers.splice(i, 1);\n handlersRemoved++; // This callback may also be part of a hook that is\n // currently executing. If the callback we're removing\n // comes after the current callback, there's no problem;\n // otherwise we need to decrease the execution index of any\n // other runs by 1 to account for the removed element.\n\n hooksStore.__current.forEach(function (hookInfo) {\n if (hookInfo.name === hookName && hookInfo.currentIndex >= i) {\n hookInfo.currentIndex--;\n }\n });\n }\n };\n\n for (var i = handlers.length - 1; i >= 0; i--) {\n _loop(i);\n }\n }\n\n if (hookName !== 'hookRemoved') {\n hooks.doAction('hookRemoved', hookName, namespace);\n }\n\n return handlersRemoved;\n };\n}\n\nexport default createRemoveHook;\n//# sourceMappingURL=createRemoveHook.js.map","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\n\n/**\n * Returns a function which, when invoked, will execute all callbacks\n * registered to a hook of the specified type, optionally returning the final\n * value of the call chain.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n * @param {boolean} [returnFirstArg=false] Whether each hook callback is expected to\n * return its first argument.\n *\n * @return {(hookName:string, ...args: unknown[]) => unknown} Function that runs hook callbacks.\n */\nfunction createRunHook(hooks, storeKey) {\n var returnFirstArg = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n return function runHooks(hookName) {\n var hooksStore = hooks[storeKey];\n\n if (!hooksStore[hookName]) {\n hooksStore[hookName] = {\n handlers: [],\n runs: 0\n };\n }\n\n hooksStore[hookName].runs++;\n var handlers = hooksStore[hookName].handlers; // The following code is stripped from production builds.\n\n if ('production' !== process.env.NODE_ENV) {\n // Handle any 'all' hooks registered.\n if ('hookAdded' !== hookName && hooksStore.all) {\n handlers.push.apply(handlers, _toConsumableArray(hooksStore.all.handlers));\n }\n }\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (!handlers || !handlers.length) {\n return returnFirstArg ? args[0] : undefined;\n }\n\n var hookInfo = {\n name: hookName,\n currentIndex: 0\n };\n\n hooksStore.__current.push(hookInfo);\n\n while (hookInfo.currentIndex < handlers.length) {\n var handler = handlers[hookInfo.currentIndex];\n var result = handler.callback.apply(null, args);\n\n if (returnFirstArg) {\n args[0] = result;\n }\n\n hookInfo.currentIndex++;\n }\n\n hooksStore.__current.pop();\n\n if (returnFirstArg) {\n return args[0];\n }\n };\n}\n\nexport default createRunHook;\n//# sourceMappingURL=createRunHook.js.map","/**\n * Internal dependencies\n */\nimport createHooks from './createHooks';\n/** @typedef {(...args: any[])=>any} Callback */\n\n/**\n * @typedef Handler\n * @property {Callback} callback The callback\n * @property {string} namespace The namespace\n * @property {number} priority The namespace\n */\n\n/**\n * @typedef Hook\n * @property {Handler[]} handlers Array of handlers\n * @property {number} runs Run counter\n */\n\n/**\n * @typedef Current\n * @property {string} name Hook name\n * @property {number} currentIndex The index\n */\n\n/**\n * @typedef {Record & {__current: Current[]}} Store\n */\n\n/**\n * @typedef {'actions' | 'filters'} StoreKey\n */\n\n/**\n * @typedef {import('./createHooks').Hooks} Hooks\n */\n\nexport var defaultHooks = createHooks();\nvar addAction = defaultHooks.addAction,\n addFilter = defaultHooks.addFilter,\n removeAction = defaultHooks.removeAction,\n removeFilter = defaultHooks.removeFilter,\n hasAction = defaultHooks.hasAction,\n hasFilter = defaultHooks.hasFilter,\n removeAllActions = defaultHooks.removeAllActions,\n removeAllFilters = defaultHooks.removeAllFilters,\n doAction = defaultHooks.doAction,\n applyFilters = defaultHooks.applyFilters,\n currentAction = defaultHooks.currentAction,\n currentFilter = defaultHooks.currentFilter,\n doingAction = defaultHooks.doingAction,\n doingFilter = defaultHooks.doingFilter,\n didAction = defaultHooks.didAction,\n didFilter = defaultHooks.didFilter,\n actions = defaultHooks.actions,\n filters = defaultHooks.filters;\nexport { createHooks, addAction, addFilter, removeAction, removeFilter, hasAction, hasFilter, removeAllActions, removeAllFilters, doAction, applyFilters, currentAction, currentFilter, doingAction, doingFilter, didAction, didFilter, actions, filters };\n//# sourceMappingURL=index.js.map","/**\n * Validate a hookName string.\n *\n * @param {string} hookName The hook name to validate. Should be a non empty string containing\n * only numbers, letters, dashes, periods and underscores. Also,\n * the hook name cannot begin with `__`.\n *\n * @return {boolean} Whether the hook name is valid.\n */\nfunction validateHookName(hookName) {\n if ('string' !== typeof hookName || '' === hookName) {\n // eslint-disable-next-line no-console\n console.error('The hook name must be a non-empty string.');\n return false;\n }\n\n if (/^__/.test(hookName)) {\n // eslint-disable-next-line no-console\n console.error('The hook name cannot begin with `__`.');\n return false;\n }\n\n if (!/^[a-zA-Z][a-zA-Z0-9_.-]*$/.test(hookName)) {\n // eslint-disable-next-line no-console\n console.error('The hook name can only contain numbers, letters, dashes, periods and underscores.');\n return false;\n }\n\n return true;\n}\n\nexport default validateHookName;\n//# sourceMappingURL=validateHookName.js.map","/**\n * Validate a namespace string.\n *\n * @param {string} namespace The namespace to validate - should take the form\n * `vendor/plugin/function`.\n *\n * @return {boolean} Whether the namespace is valid.\n */\nfunction validateNamespace(namespace) {\n if ('string' !== typeof namespace || '' === namespace) {\n // eslint-disable-next-line no-console\n console.error('The namespace must be a non-empty string.');\n return false;\n }\n\n if (!/^[a-zA-Z][a-zA-Z0-9_.\\-\\/]*$/.test(namespace)) {\n // eslint-disable-next-line no-console\n console.error('The namespace can only contain numbers, letters, dashes, periods, underscores and slashes.');\n return false;\n }\n\n return true;\n}\n\nexport default validateNamespace;\n//# sourceMappingURL=validateNamespace.js.map","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\nimport Tannin from 'tannin';\n/**\n * @typedef {Record} LocaleData\n */\n\n/**\n * Default locale data to use for Tannin domain when not otherwise provided.\n * Assumes an English plural forms expression.\n *\n * @type {LocaleData}\n */\n\nvar DEFAULT_LOCALE_DATA = {\n '': {\n /** @param {number} n */\n plural_forms: function plural_forms(n) {\n return n === 1 ? 0 : 1;\n }\n }\n};\n/*\n * Regular expression that matches i18n hooks like `i18n.gettext`, `i18n.ngettext`,\n * `i18n.gettext_domain` or `i18n.ngettext_with_context` or `i18n.has_translation`.\n */\n\nvar I18N_HOOK_REGEXP = /^i18n\\.(n?gettext|has_translation)(_|$)/;\n/**\n * @typedef {(domain?: string) => LocaleData} GetLocaleData\n *\n * Returns locale data by domain in a\n * Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n */\n\n/**\n * @typedef {(data?: LocaleData, domain?: string) => void} SetLocaleData\n *\n * Merges locale data into the Tannin instance by domain. Accepts data in a\n * Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n */\n\n/**\n * @typedef {(data?: LocaleData, domain?: string) => void} ResetLocaleData\n *\n * Resets all current Tannin instance locale data and sets the specified\n * locale data for the domain. Accepts data in a Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n */\n\n/** @typedef {() => void} SubscribeCallback */\n\n/** @typedef {() => void} UnsubscribeCallback */\n\n/**\n * @typedef {(callback: SubscribeCallback) => UnsubscribeCallback} Subscribe\n *\n * Subscribes to changes of locale data\n */\n\n/**\n * @typedef {(domain?: string) => string} GetFilterDomain\n * Retrieve the domain to use when calling domain-specific filters.\n */\n\n/**\n * @typedef {(text: string, domain?: string) => string} __\n *\n * Retrieve the translation of text.\n *\n * @see https://developer.wordpress.org/reference/functions/__/\n */\n\n/**\n * @typedef {(text: string, context: string, domain?: string) => string} _x\n *\n * Retrieve translated string with gettext context.\n *\n * @see https://developer.wordpress.org/reference/functions/_x/\n */\n\n/**\n * @typedef {(single: string, plural: string, number: number, domain?: string) => string} _n\n *\n * Translates and retrieves the singular or plural form based on the supplied\n * number.\n *\n * @see https://developer.wordpress.org/reference/functions/_n/\n */\n\n/**\n * @typedef {(single: string, plural: string, number: number, context: string, domain?: string) => string} _nx\n *\n * Translates and retrieves the singular or plural form based on the supplied\n * number, with gettext context.\n *\n * @see https://developer.wordpress.org/reference/functions/_nx/\n */\n\n/**\n * @typedef {() => boolean} IsRtl\n *\n * Check if current locale is RTL.\n *\n * **RTL (Right To Left)** is a locale property indicating that text is written from right to left.\n * For example, the `he` locale (for Hebrew) specifies right-to-left. Arabic (ar) is another common\n * language written RTL. The opposite of RTL, LTR (Left To Right) is used in other languages,\n * including English (`en`, `en-US`, `en-GB`, etc.), Spanish (`es`), and French (`fr`).\n */\n\n/**\n * @typedef {(single: string, context?: string, domain?: string) => boolean} HasTranslation\n *\n * Check if there is a translation for a given string in singular form.\n */\n\n/** @typedef {import('@wordpress/hooks').Hooks} Hooks */\n\n/**\n * An i18n instance\n *\n * @typedef I18n\n * @property {GetLocaleData} getLocaleData Returns locale data by domain in a Jed-formatted JSON object shape.\n * @property {SetLocaleData} setLocaleData Merges locale data into the Tannin instance by domain. Accepts data in a\n * Jed-formatted JSON object shape.\n * @property {ResetLocaleData} resetLocaleData Resets all current Tannin instance locale data and sets the specified\n * locale data for the domain. Accepts data in a Jed-formatted JSON object shape.\n * @property {Subscribe} subscribe Subscribes to changes of Tannin locale data.\n * @property {__} __ Retrieve the translation of text.\n * @property {_x} _x Retrieve translated string with gettext context.\n * @property {_n} _n Translates and retrieves the singular or plural form based on the supplied\n * number.\n * @property {_nx} _nx Translates and retrieves the singular or plural form based on the supplied\n * number, with gettext context.\n * @property {IsRtl} isRTL Check if current locale is RTL.\n * @property {HasTranslation} hasTranslation Check if there is a translation for a given string.\n */\n\n/**\n * Create an i18n instance\n *\n * @param {LocaleData} [initialData] Locale data configuration.\n * @param {string} [initialDomain] Domain for which configuration applies.\n * @param {Hooks} [hooks] Hooks implementation.\n * @return {I18n} I18n instance\n */\n\nexport var createI18n = function createI18n(initialData, initialDomain, hooks) {\n /**\n * The underlying instance of Tannin to which exported functions interface.\n *\n * @type {Tannin}\n */\n var tannin = new Tannin({});\n var listeners = new Set();\n\n var notifyListeners = function notifyListeners() {\n listeners.forEach(function (listener) {\n return listener();\n });\n };\n /**\n * Subscribe to changes of locale data.\n *\n * @param {SubscribeCallback} callback Subscription callback.\n * @return {UnsubscribeCallback} Unsubscribe callback.\n */\n\n\n var subscribe = function subscribe(callback) {\n listeners.add(callback);\n return function () {\n return listeners.delete(callback);\n };\n };\n /** @type {GetLocaleData} */\n\n\n var getLocaleData = function getLocaleData() {\n var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default';\n return tannin.data[domain];\n };\n /**\n * @param {LocaleData} [data]\n * @param {string} [domain]\n */\n\n\n var doSetLocaleData = function doSetLocaleData(data) {\n var domain = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default';\n tannin.data[domain] = _objectSpread(_objectSpread(_objectSpread({}, DEFAULT_LOCALE_DATA), tannin.data[domain]), data); // Populate default domain configuration (supported locale date which omits\n // a plural forms expression).\n\n tannin.data[domain][''] = _objectSpread(_objectSpread({}, DEFAULT_LOCALE_DATA['']), tannin.data[domain]['']);\n };\n /** @type {SetLocaleData} */\n\n\n var setLocaleData = function setLocaleData(data, domain) {\n doSetLocaleData(data, domain);\n notifyListeners();\n };\n /** @type {ResetLocaleData} */\n\n\n var resetLocaleData = function resetLocaleData(data, domain) {\n // Reset all current Tannin locale data.\n tannin.data = {}; // Reset cached plural forms functions cache.\n\n tannin.pluralForms = {};\n setLocaleData(data, domain);\n };\n /**\n * Wrapper for Tannin's `dcnpgettext`. Populates default locale data if not\n * otherwise previously assigned.\n *\n * @param {string|undefined} domain Domain to retrieve the translated text.\n * @param {string|undefined} context Context information for the translators.\n * @param {string} single Text to translate if non-plural. Used as\n * fallback return value on a caught error.\n * @param {string} [plural] The text to be used if the number is\n * plural.\n * @param {number} [number] The number to compare against to use\n * either the singular or plural form.\n *\n * @return {string} The translated string.\n */\n\n\n var dcnpgettext = function dcnpgettext() {\n var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default';\n var context = arguments.length > 1 ? arguments[1] : undefined;\n var single = arguments.length > 2 ? arguments[2] : undefined;\n var plural = arguments.length > 3 ? arguments[3] : undefined;\n var number = arguments.length > 4 ? arguments[4] : undefined;\n\n if (!tannin.data[domain]) {\n // use `doSetLocaleData` to set silently, without notifying listeners\n doSetLocaleData(undefined, domain);\n }\n\n return tannin.dcnpgettext(domain, context, single, plural, number);\n };\n /** @type {GetFilterDomain} */\n\n\n var getFilterDomain = function getFilterDomain() {\n var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default';\n return domain;\n };\n /** @type {__} */\n\n\n var __ = function __(text, domain) {\n var translation = dcnpgettext(domain, undefined, text);\n\n if (!hooks) {\n return translation;\n }\n /**\n * Filters text with its translation.\n *\n * @param {string} translation Translated text.\n * @param {string} text Text to translate.\n * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n */\n\n\n translation =\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.gettext', translation, text, domain);\n return (\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.gettext_' + getFilterDomain(domain), translation, text, domain)\n );\n };\n /** @type {_x} */\n\n\n var _x = function _x(text, context, domain) {\n var translation = dcnpgettext(domain, context, text);\n\n if (!hooks) {\n return translation;\n }\n /**\n * Filters text with its translation based on context information.\n *\n * @param {string} translation Translated text.\n * @param {string} text Text to translate.\n * @param {string} context Context information for the translators.\n * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n */\n\n\n translation =\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.gettext_with_context', translation, text, context, domain);\n return (\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.gettext_with_context_' + getFilterDomain(domain), translation, text, context, domain)\n );\n };\n /** @type {_n} */\n\n\n var _n = function _n(single, plural, number, domain) {\n var translation = dcnpgettext(domain, undefined, single, plural, number);\n\n if (!hooks) {\n return translation;\n }\n /**\n * Filters the singular or plural form of a string.\n *\n * @param {string} translation Translated text.\n * @param {string} single The text to be used if the number is singular.\n * @param {string} plural The text to be used if the number is plural.\n * @param {string} number The number to compare against to use either the singular or plural form.\n * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n */\n\n\n translation =\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.ngettext', translation, single, plural, number, domain);\n return (\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.ngettext_' + getFilterDomain(domain), translation, single, plural, number, domain)\n );\n };\n /** @type {_nx} */\n\n\n var _nx = function _nx(single, plural, number, context, domain) {\n var translation = dcnpgettext(domain, context, single, plural, number);\n\n if (!hooks) {\n return translation;\n }\n /**\n * Filters the singular or plural form of a string with gettext context.\n *\n * @param {string} translation Translated text.\n * @param {string} single The text to be used if the number is singular.\n * @param {string} plural The text to be used if the number is plural.\n * @param {string} number The number to compare against to use either the singular or plural form.\n * @param {string} context Context information for the translators.\n * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n */\n\n\n translation =\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.ngettext_with_context', translation, single, plural, number, context, domain);\n return (\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.ngettext_with_context_' + getFilterDomain(domain), translation, single, plural, number, context, domain)\n );\n };\n /** @type {IsRtl} */\n\n\n var isRTL = function isRTL() {\n return 'rtl' === _x('ltr', 'text direction');\n };\n /** @type {HasTranslation} */\n\n\n var hasTranslation = function hasTranslation(single, context, domain) {\n var _tannin$data, _tannin$data2;\n\n var key = context ? context + \"\\x04\" + single : single;\n var result = !!((_tannin$data = tannin.data) !== null && _tannin$data !== void 0 && (_tannin$data2 = _tannin$data[domain !== null && domain !== void 0 ? domain : 'default']) !== null && _tannin$data2 !== void 0 && _tannin$data2[key]);\n\n if (hooks) {\n /**\n * Filters the presence of a translation in the locale data.\n *\n * @param {boolean} hasTranslation Whether the translation is present or not..\n * @param {string} single The singular form of the translated text (used as key in locale data)\n * @param {string} context Context information for the translators.\n * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n */\n result =\n /** @type { boolean } */\n\n /** @type {*} */\n hooks.applyFilters('i18n.has_translation', result, single, context, domain);\n result =\n /** @type { boolean } */\n\n /** @type {*} */\n hooks.applyFilters('i18n.has_translation_' + getFilterDomain(domain), result, single, context, domain);\n }\n\n return result;\n };\n\n if (initialData) {\n setLocaleData(initialData, initialDomain);\n }\n\n if (hooks) {\n /**\n * @param {string} hookName\n */\n var onHookAddedOrRemoved = function onHookAddedOrRemoved(hookName) {\n if (I18N_HOOK_REGEXP.test(hookName)) {\n notifyListeners();\n }\n };\n\n hooks.addAction('hookAdded', 'core/i18n', onHookAddedOrRemoved);\n hooks.addAction('hookRemoved', 'core/i18n', onHookAddedOrRemoved);\n }\n\n return {\n getLocaleData: getLocaleData,\n setLocaleData: setLocaleData,\n resetLocaleData: resetLocaleData,\n subscribe: subscribe,\n __: __,\n _x: _x,\n _n: _n,\n _nx: _nx,\n isRTL: isRTL,\n hasTranslation: hasTranslation\n };\n};\n//# sourceMappingURL=create-i18n.js.map","/**\n * Internal dependencies\n */\nimport { createI18n } from './create-i18n';\n/**\n * WordPress dependencies\n */\n\nimport { defaultHooks } from '@wordpress/hooks';\nvar i18n = createI18n(undefined, undefined, defaultHooks);\n/**\n * Default, singleton instance of `I18n`.\n */\n\nexport default i18n;\n/*\n * Comments in this file are duplicated from ./i18n due to\n * https://github.com/WordPress/gutenberg/pull/20318#issuecomment-590837722\n */\n\n/**\n * @typedef {import('./create-i18n').LocaleData} LocaleData\n * @typedef {import('./create-i18n').SubscribeCallback} SubscribeCallback\n * @typedef {import('./create-i18n').UnsubscribeCallback} UnsubscribeCallback\n */\n\n/**\n * Returns locale data by domain in a Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n *\n * @param {string} [domain] Domain for which to get the data.\n * @return {LocaleData} Locale data.\n */\n\nexport var getLocaleData = i18n.getLocaleData.bind(i18n);\n/**\n * Merges locale data into the Tannin instance by domain. Accepts data in a\n * Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n *\n * @param {LocaleData} [data] Locale data configuration.\n * @param {string} [domain] Domain for which configuration applies.\n */\n\nexport var setLocaleData = i18n.setLocaleData.bind(i18n);\n/**\n * Resets all current Tannin instance locale data and sets the specified\n * locale data for the domain. Accepts data in a Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n *\n * @param {LocaleData} [data] Locale data configuration.\n * @param {string} [domain] Domain for which configuration applies.\n */\n\nexport var resetLocaleData = i18n.resetLocaleData.bind(i18n);\n/**\n * Subscribes to changes of locale data\n *\n * @param {SubscribeCallback} callback Subscription callback\n * @return {UnsubscribeCallback} Unsubscribe callback\n */\n\nexport var subscribe = i18n.subscribe.bind(i18n);\n/**\n * Retrieve the translation of text.\n *\n * @see https://developer.wordpress.org/reference/functions/__/\n *\n * @param {string} text Text to translate.\n * @param {string} [domain] Domain to retrieve the translated text.\n *\n * @return {string} Translated text.\n */\n\nexport var __ = i18n.__.bind(i18n);\n/**\n * Retrieve translated string with gettext context.\n *\n * @see https://developer.wordpress.org/reference/functions/_x/\n *\n * @param {string} text Text to translate.\n * @param {string} context Context information for the translators.\n * @param {string} [domain] Domain to retrieve the translated text.\n *\n * @return {string} Translated context string without pipe.\n */\n\nexport var _x = i18n._x.bind(i18n);\n/**\n * Translates and retrieves the singular or plural form based on the supplied\n * number.\n *\n * @see https://developer.wordpress.org/reference/functions/_n/\n *\n * @param {string} single The text to be used if the number is singular.\n * @param {string} plural The text to be used if the number is plural.\n * @param {number} number The number to compare against to use either the\n * singular or plural form.\n * @param {string} [domain] Domain to retrieve the translated text.\n *\n * @return {string} The translated singular or plural form.\n */\n\nexport var _n = i18n._n.bind(i18n);\n/**\n * Translates and retrieves the singular or plural form based on the supplied\n * number, with gettext context.\n *\n * @see https://developer.wordpress.org/reference/functions/_nx/\n *\n * @param {string} single The text to be used if the number is singular.\n * @param {string} plural The text to be used if the number is plural.\n * @param {number} number The number to compare against to use either the\n * singular or plural form.\n * @param {string} context Context information for the translators.\n * @param {string} [domain] Domain to retrieve the translated text.\n *\n * @return {string} The translated singular or plural form.\n */\n\nexport var _nx = i18n._nx.bind(i18n);\n/**\n * Check if current locale is RTL.\n *\n * **RTL (Right To Left)** is a locale property indicating that text is written from right to left.\n * For example, the `he` locale (for Hebrew) specifies right-to-left. Arabic (ar) is another common\n * language written RTL. The opposite of RTL, LTR (Left To Right) is used in other languages,\n * including English (`en`, `en-US`, `en-GB`, etc.), Spanish (`es`), and French (`fr`).\n *\n * @return {boolean} Whether locale is RTL.\n */\n\nexport var isRTL = i18n.isRTL.bind(i18n);\n/**\n * Check if there is a translation for a given string (in singular form).\n *\n * @param {string} single Singular form of the string to look up.\n * @param {string} [context] Context information for the translators.\n * @param {string} [domain] Domain to retrieve the translated text.\n * @return {boolean} Whether the translation exists or not.\n */\n\nexport var hasTranslation = i18n.hasTranslation.bind(i18n);\n//# sourceMappingURL=default-i18n.js.map","export { sprintf } from './sprintf';\nexport * from './create-i18n';\nexport { default as defaultI18n, setLocaleData, resetLocaleData, getLocaleData, subscribe, __, _x, _n, _nx, isRTL, hasTranslation } from './default-i18n';\n//# sourceMappingURL=index.js.map","/**\n * External dependencies\n */\nimport memoize from 'memize';\nimport sprintfjs from 'sprintf-js';\n/**\n * Log to console, once per message; or more precisely, per referentially equal\n * argument set. Because Jed throws errors, we log these to the console instead\n * to avoid crashing the application.\n *\n * @param {...*} args Arguments to pass to `console.error`\n */\n\nvar logErrorOnce = memoize(console.error); // eslint-disable-line no-console\n\n/**\n * Returns a formatted string. If an error occurs in applying the format, the\n * original format string is returned.\n *\n * @param {string} format The format of the string to generate.\n * @param {...*} args Arguments to apply to the format.\n *\n * @see https://www.npmjs.com/package/sprintf-js\n *\n * @return {string} The formatted string.\n */\n\nexport function sprintf(format) {\n try {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return sprintfjs.sprintf.apply(sprintfjs, [format].concat(args));\n } catch (error) {\n logErrorOnce('sprintf error: \\n\\n' + error.toString());\n return format;\n }\n}\n//# sourceMappingURL=sprintf.js.map","/**\n * This component updates the dependent style element's values and triggers a custom change event for each style element, initiating the style preview.\n * The names of the elements that will be updated are specified using the \"will-change\" attribute.\n * It is primarily used in components from Style/Quick Settings.\n * For instance, when the \"FrmPrimaryColorStyleComponent\" is changed, it simultaneously updates various style elements like border color, text color, and button backgrounds.\n */\nexport default class frmStyleDependentUpdaterComponent {\n\n\t/**\n\t * Creates an instance of frmStyleDependentUpdaterComponent.\n\t * @param {HTMLElement} component - The component element.\n\t */\n\tconstructor( component ) {\n\t\tthis.component = component;\n\t\ttry {\n\t\t\tconst willChangeData = JSON.parse( this.component.dataset.willChange );\n\t\t\tthis.data = {\n\t\t\t\tpropagateInputs: this.initPropagationList( willChangeData ),\n\t\t\t\tchangeEvent: new Event( 'change', { bubbles: true } )\n\t\t\t};\n\t\t} catch ( error ) {\n\t\t\tconsole.error( 'Error parsing JSON data from \"will-change\" attribute.', error );\n\t\t}\n\t}\n\n\t/**\n\t * Initializes the list of inputs to propagate changes to.\n\t * The selection is made by provided input's names list in \"will-change\" attribute.\n\t * @param {string[]} inputNames - The names of the inputs to propagate changes to.\n\t * @return {HTMLElement[]} - The list of inputs to propagate changes to.\n\t */\n\tinitPropagationList( inputNames ) {\n\t\tconst list = [];\n\t\tinputNames.forEach( ( name ) => {\n\t\t\tconst input = document.querySelector( `input[name=\"${name}\"]` );\n\t\t\tif ( null !== input ) {\n\t\t\t\tlist.push( input );\n\t\t\t}\n\t\t});\n\t\treturn list;\n\t}\n\n\t/**\n\t * Updates all dependent elements with the given value.\n\t * @param {string} value - The value to update the dependent elements with.\n\t */\n\tupdateAllDependentElements( value ) {\n\t\tthis.data.propagateInputs.forEach( ( input ) => {\n\t\t\tinput.value = value;\n\t\t});\n\t\tthis.data.propagateInputs[0].dispatchEvent( this.data.changeEvent );\n\t}\n}","import { show, hide } from '../../common/utilities';\n/**\n * Represents a radio style component.\n * @class\n */\nexport default class frmRadioStyleComponent {\n\n\tconstructor() {\n\t\tthis.radioElements = document.querySelectorAll( '.frm-style-component.frm-radio-component' );\n\t\tif ( 0 < this.radioElements.length ) {\n\t\t\tthis.init();\n\t\t}\n\t}\n\n\t/**\n\t * Initializes the radio style component.\n\t */\n\tinit() {\n\t\tthis.radioElements.forEach( ( element ) => {\n\t\t\tthis.initOnRadioChange( element );\n\t\t});\n\t\tthis.initTrackerOnAccordionClick();\n\t}\n\n\tinitTrackerOnAccordionClick() {\n\t\tconst accordionitems = document.querySelectorAll( '#frm_style_sidebar .accordion-section h3' );\n\n\t\taccordionitems.forEach( ( accordionitem ) => {\n\t\t\taccordionitem.addEventListener( 'click', ( event ) => {\n\t\t\t\tconst wrapper = event.target.closest( '.accordion-section' );\n\t\t\t\tconst radioButtons = wrapper.querySelectorAll( '.frm-style-component.frm-radio-component input[type=\"radio\"]:checked' );\n\n\t\t\t\tradioButtons.forEach( ( radio ) => {\n\t\t\t\t\tsetTimeout( () => this.onRadioChange( radio ), 200 );\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Initializes the onRadioChange event for the given wrapper.\n\t * @param {HTMLElement} radioElement - The radio element.\n\t */\n\tinitOnRadioChange( radioElement ) {\n\t\tradioElement.querySelectorAll( 'input[type=\"radio\"]' ).forEach( ( radio ) => {\n\t\t\tif ( radio.checked ) {\n\t\t\t\tthis.onRadioChange( radio );\n\t\t\t}\n\t\t\tradio.addEventListener( 'change', ( event ) => {\n\t\t\t\tthis.onRadioChange( event.target );\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Handles the onRadioChange event for the given wrapper.\n\t * @param {HTMLElement} target - The active radio button.\n\t */\n\tonRadioChange( target ) {\n\t\tconst wrapper = target.closest( '.frm-style-component.frm-radio-component' );\n\t\tconst activeItem = wrapper.querySelector( 'input[type=\"radio\"]:checked + label' );\n\n\t\tif ( null === activeItem ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.moveTracker( activeItem, wrapper );\n\t\tthis.hideExtraElements( target );\n\t\tthis.maybeShowExtraElements( target );\n\t}\n\n\t/**\n\t * Display additional elements related to the selected radio option.\n\t * @param {HTMLElement} radio - The radio button element.\n\t */\n\tmaybeShowExtraElements( radio ) {\n\t\tconst elementAttr = radio.getAttribute( 'data-frm-show-element' );\n\t\tif ( null === elementAttr ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst elements = document.querySelectorAll( `div[data-frm-element=\"${elementAttr}\"]` );\n\n\t\tif ( 0 === elements.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\telements.forEach( ( element ) => {\n\t\t\tshow( element );\n\t\t\telement.classList.add( 'frm-element-is-visible' );\n\t\t});\n\t}\n\n\t/**\n\t * Hide the possible opepend extra elements.\n\t */\n\thideExtraElements() {\n\t\tconst elements = document.querySelectorAll( '.frm-element-is-visible' );\n\t\tif ( 0 === elements.length ) {\n\t\t\treturn;\n\t\t}\n\t\telements.forEach( ( element ) => {\n\t\t\telement.classList.remove( 'frm-element-is-visible' );\n\t\t\telement.classList.add( 'frm_hidden' );\n\t\t\thide( element );\n\t\t});\n\t}\n\n\t/**\n\t * Moves the tracker to the active item.\n\t * @param {HTMLElement} activeItem - The active item element.\n\t * @param {HTMLElement} wrapper - The wrapper element.\n\t */\n\tmoveTracker( activeItem, wrapper ) {\n\t\tconst offset = activeItem.offsetLeft;\n\t\tconst width = activeItem.offsetWidth;\n\t\tconst tracker = wrapper.querySelector( '.frm-radio-active-tracker' );\n\n\t\ttracker.style.left = 0;\n\t\ttracker.style.width = `${width}px`;\n\t\ttracker.style.transform = `translateX(${ offset }px)`;\n\t}\n}","import frmStyleDependentUpdaterComponent from './dependent-updater-component';\n/**\n * Represents a slider style component.\n * @class frmSliderStyleComponent\n */\nexport default class frmSliderStyleComponent {\n\n\tconstructor() {\n\t\tthis.sliderElements = document.querySelectorAll( '.frm-slider-component' );\n\t\tif ( 0 === this.sliderElements.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// The slider bullet point width in pixels. Used in value calculation on drag event.\n\t\tthis.sliderBulletWidth = 16;\n\t\tthis.sliderMarginRight = 5;\n\t\tthis.eventsChange = [];\n\n\t\tconst { debounce } = frmDom.util;\n\t\tthis.valueChangeDebouncer = debounce( ( index ) => this.triggerValueChange( index ), 25 );\n\n\t\tthis.initOptions();\n\t\tthis.init();\n\t}\n\n\t/**\n\t * Initializes the options for the slider style component.\n\t */\n\tinitOptions() {\n\t\tthis.options = [];\n\t\tthis.sliderElements.forEach( ( element, index ) => {\n\t\t\tconst parentWrapper = element.classList.contains( 'frm-has-multiple-values' ) ? element.closest( '.frm-style-component' ) : element;\n\t\t\tthis.options.push({\n\t\t\t\tdragging: false,\n\t\t\t\tstartX: 0,\n\t\t\t\ttranslateX: 0,\n\t\t\t\tmaxValue: parseInt( element.dataset.maxValue, 10 ),\n\t\t\t\telement: element,\n\t\t\t\tindex: index,\n\t\t\t\tvalue: 0,\n\t\t\t\tdependentUpdater: parentWrapper.classList.contains( 'frm-style-dependent-updater-component' ) ? new frmStyleDependentUpdaterComponent( parentWrapper ) : null\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Initializes the slider style component.\n\t */\n\tinit() {\n\t\tthis.initSlidersPosition();\n\t\tthis.initDraggable();\n\t}\n\n\t/**\n\t * Initializes the draggable functionality for the slider style component.\n\t */\n\tinitDraggable() {\n\t\tthis.sliderElements.forEach( ( element, index ) => {\n\t\t\tthis.eventsChange[ index ] = new Event( 'change', { \n\t\t\t\tbubbles: true,\n\t\t\t\tcancelable: true\n\t\t\t});\n\t\t\tconst draggableBullet = element.querySelector( '.frm-slider-bullet' );\n\t\t\tconst valueInput = element.querySelector( '.frm-slider-value input[type=\"text\"]' );\n\n\t\t\tvalueInput.addEventListener( 'change', ( event ) => {\n\t\t\t\tconst unit = element.querySelector( 'select' ).value;\n\n\t\t\t\tif ( this.getMaxValue( unit, index ) < parseInt( event.target.value, 10 ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.initSliderWidth( element );\n\t\t\t\tthis.updateValue( element, valueInput.value + unit );\n\t\t\t\tthis.triggerValueChange( index );\n\t\t\t});\n\n\t\t\tthis.expandSliderGroup( element );\n\t\t\tthis.updateOnUnitChange( element, valueInput, index );\n\t\t\tthis.changeSliderPositionOnClick( element, valueInput, index );\n\n\t\t\tdraggableBullet.addEventListener( 'mousedown', ( event ) => {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tevent.stopPropagation();\n\t\t\t\tif ( element.classList.contains( 'frm-disabled' ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.enableDragging( event, index );\n\t\t\t});\n\n\t\t\tdraggableBullet.addEventListener( 'mousemove', ( event ) => {\n\t\t\t\tif ( element.classList.contains( 'frm-disabled' ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.moveTracker( event, index );\n\t\t\t});\n\n\t\t\tdraggableBullet.addEventListener( 'mouseup', ( event) => {\n\t\t\t\tif ( element.classList.contains( 'frm-disabled' ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.disableDragging( index, event );\n\t\t\t});\n\n\t\t\tdraggableBullet.addEventListener( 'mouseleave', ( event ) => {\n\t\t\t\tif ( element.classList.contains( 'frm-disabled' ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.disableDragging( index, event );\n\t\t\t});\n\t\t});\n\t}\n\n\texpandSliderGroup( element ) {\n\t\tconst svgIcon = element.querySelector( '.frmsvg' );\n\n\t\tif ( 'undefined' === typeof element.dataset.displaySliders || null === svgIcon ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst sliderGroupItems = this.getSliderGroupItems( element );\n\t\tsvgIcon.addEventListener( 'click', ( ) => {\n\t\t\tsliderGroupItems.forEach( ( item ) => {\n\t\t\t\titem.classList.toggle( 'frm_hidden' );\n\t\t\t});\n\t\t});\n\t}\n\n\tupdateOnUnitChange( element, valueInput, index ) {\n\t\telement.querySelector( 'select' ).addEventListener( 'change', ( event ) => {\n\t\t\tconst unit = event.target.value.toLowerCase();\n\n\t\t\tif ( 'auto' === unit ) {\n\t\t\t\telement.classList.add( 'frm-disabled' );\n\t\t\t\tthis.updateValue( element, 'auto' );\n\t\t\t\tthis.triggerValueChange( index );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\telement.classList.remove( 'frm-disabled' );\n\t\t\tthis.options[ index ].fullValue = valueInput.value + unit;\n\t\t\tthis.updateValue( element, this.options[ index ].fullValue );\n\t\t\tthis.triggerValueChange( index );\n\t\t});\n\t}\n\n\tchangeSliderPositionOnClick( element, valueInput, index ) {\n\t\tconst frmSlider = element.querySelector( '.frm-slider' );\n\t\tconst customEvent = new Event( 'change', {\n\t\t\t'bubbles': true,\n\t\t\t'cancelable': true\n\t\t});\n\n\t\tfrmSlider.addEventListener( 'click', ( event ) => {\n\t\t\tif ( element.classList.contains( 'frm-disabled' ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\n\t\t\tif ( ! event.target.classList.contains( 'frm-slider' ) && ! event.target.classList.contains( 'frm-slider-active-track' ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst sliderWidth = frmSlider.offsetWidth - this.sliderBulletWidth;\n\t\t\tconst sliderRect = frmSlider.getBoundingClientRect();\n\t\t\tconst deltaX = event.clientX - sliderRect.left - this.sliderBulletWidth;\n\t\t\tconst unit = element.querySelector( 'select' ).value;\n\t\t\tconst value = this.calculateValue( sliderWidth, deltaX, this.getMaxValue( unit, index ) );\n\n\t\t\tif ( value < 0 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.options[ index ].fullValue = this.updateValue( element, value + unit );\n\t\t\tthis.initChildSlidersWidth( element, deltaX, index, value + unit );\n\n\t\t\tvalueInput.value = value;\n\t\t\tvalueInput.dispatchEvent( customEvent );\n\n\t\t});\n\t}\n\n\t/**\n\t * Retrieves an array of slider group items based on the provided element.\n\t *\n\t * @param {HTMLElement} element - The element to retrieve slider group items from.\n\t * @return {NodeList} - An array-like object containing the slider group items.\n\t */\n\tgetSliderGroupItems( element ) {\n\t\tif ( 'undefined' === typeof element.dataset.displaySliders ) {\n\t\t\treturn [];\n\t\t}\n\t\tconst slidersGroup = element.dataset.displaySliders.split( ',' );\n\t\tconst query = slidersGroup.map( ( item ) => {\n\t\t\treturn `.frm-slider-component[data-type=\"${item}\"]`;\n\t\t}).join( ', ' );\n\n\t\treturn element.closest( '.frm-style-component' ).querySelectorAll( query )\n\t}\n\n\t/**\n\t * Initializes the position of sliders when a style accordion section is opened.\n\t */\n\tinitSlidersPosition() {\n\t\tconst accordionitems = document.querySelectorAll( '#frm_style_sidebar .accordion-section h3' );\n\t\tconst quickSettings = document.querySelector( '.frm-quick-settings' );\n\t\tconst openedAccordion = document.querySelector( '.accordion-section.open' );\n\n\t\t// Detect if upload background image upload has triggered and initialize the \"Image Opacity\" slider width.\n\t\twp.hooks.addAction( 'frm_pro_on_bg_image_upload', 'formidable', ( event ) => {\n\t\t\tconst imageBackgroundOpacitySlider = event.closest( '.accordion-section-content' ).querySelector( '#frm-bg-image-opacity-slider' );\n\t\t\tthis.initSlidersWidth( imageBackgroundOpacitySlider );\n\t\t});\n\n\t\t// init the sliders width from \"Quick Settings\" page.\n\t\tif ( null !== quickSettings ) {\n\t\t\tthis.initSlidersWidth( quickSettings );\n\t\t}\n\n\t\t// Init the sliders width in opened accordion section from \"Advanced Settings\" page.\n\t\tif ( null !== openedAccordion ) {\n\t\t\tthis.initSlidersWidth( openedAccordion );\n\t\t}\n\n\t\t// init the sliders width everytime when an accordion section is opened from \"Advanced Settings\" page.\n\t\taccordionitems.forEach( ( item ) => {\n\t\t\titem.addEventListener( 'click', ( event ) => {\n\t\t\t\tthis.initSlidersWidth( event.target.closest( '.accordion-section' ) );\n\t\t\t});\n\t\t});\n\n\t\tthis.initSliderPositionOnFieldShapeChange();\n\t}\n\n\t/**\n\t * Initializes the width of \"Corner Radius\" slider that is dynamically is displayed on \"Field Shape\" option change from \"Quick Settings\".\n\t *\n\t * @return {void}\n\t */\n\tinitSliderPositionOnFieldShapeChange() {\n\t\tconst fieldShapeType = document.querySelector( '.frm-style-component.frm-field-shape' );\n\n\t\tif ( null === fieldShapeType ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst radioButtons = fieldShapeType.querySelectorAll( 'input[type=\"radio\"]' );\n\t\tradioButtons.forEach( ( radio ) => {\n\t\t\tradio.addEventListener( 'change', ( event ) => {\n\t\t\t\tif ( event.target.checked && 'rounded-corner' === event.target.value ) {\n\t\t\t\t\tconst slider = document.querySelector( 'div[data-frm-element=\"field-shape-corner-radius\"] .frm-slider-component' );\n\t\t\t\t\tthis.initSliderWidth( slider );\n\t\t\t\t}\n\t\t\t})\n\t\t});\n\t}\n\n\t/**\n\t * Initializes the width of sliders within a given section.\n\t *\n\t * @param {HTMLElement} section - The section containing the sliders.\n\t * @return {void}\n\t */\n\tinitSlidersWidth( section ) {\n\t\tconst sliders = section.querySelectorAll( '.frm-slider-component' );\n\t\tsliders.forEach( ( slider ) => {\n\t\t\tsetTimeout( () => {\n\t\t\t\tthis.initSliderWidth( slider );\n\t\t\t}, 100 );\n\t\t});\n\t}\n\n\t/**\n\t * Initializes the width of a slider.\n\t *\n\t * @param {HTMLElement} slider - The slider element.\n\t * @return {void}\n\t */\n\tinitSliderWidth( slider ) {\n\t\tconst index = this.getSliderIndex( slider );\n\t\tconst sliderWidth = slider.querySelector( '.frm-slider' ).offsetWidth - this.sliderBulletWidth;\n\t\tconst value = parseInt( slider.querySelector( '.frm-slider-value input[type=\"text\"]' ).value, 10 );\n\t\tconst unit = slider.querySelector( 'select' ).value;\n\t\tconst deltaX = '%' === unit ? Math.round( sliderWidth * value / 100 ) : Math.ceil( ( value / this.options[ index ].maxValue ) * sliderWidth );\n\n\t\tslider.querySelector( '.frm-slider-active-track' ).style.width = `${deltaX}px`;\n\t\tthis.options[ index ].translateX = deltaX;\n\t\tthis.options[ index ].value = value + unit;\n\t}\n\n\t/**\n\t * Initializes the width of child sliders.\n\t *\n\t * @param {HTMLElement} slider - The parent slider element.\n\t * @param {number} width - The width to set for the child sliders.\n\t * @param {number} index - The starting index for the child sliders.\n\t * @param {number} value - The value to set for the child sliders.\n\t */\n\tinitChildSlidersWidth( slider, width, index, value ) {\n\t\tif ( ! slider.classList.contains( 'frm-has-independent-fields' ) && ! slider.classList.contains( 'frm-has-multiple-values' ) ) {\n\t\t\treturn;\n\t\t}\n\t\tconst childSliders = slider.classList.contains( 'frm-has-independent-fields' ) ? slider.querySelectorAll( '.frm-independent-slider-field' ) : this.getSliderGroupItems( slider );\n\n\t\tchildSliders.forEach( ( item, childIndex ) => {\n\t\t\titem.querySelector( '.frm-slider-active-track' ).style.width = `${width}px`;\n\t\t\tthis.options[ index + childIndex + 1 ].translateX = width;\n\t\t\tthis.options[ index + childIndex + 1 ].value = value;\n\t\t});\n\t}\n\n\t/**\n\t * Returns the index of the specified slider element.\n\t *\n\t * @param {HTMLElement} slider - The slider element.\n\t * @return {number} The index of the slider element.\n\t */\n\tgetSliderIndex( slider ) {\n\t\treturn this.options.filter( ( option ) => {\n\t\t\treturn option.element === slider;\n\t\t})[0].index;\n\t};\n\n\t/**\n\t * Handles the movement of the slider tracker.\n\t *\n\t * @param {Event} event - The event object representing the mouse movement.\n\t * @param {number} index - The index of the slider element.\n\t * @return {void}\n\t */\n\tmoveTracker( event, index ) {\n\t\tif ( ! this.options[ index ].dragging ) {\n\t\t\treturn;\n\t\t}\n\t\tlet deltaX = event.clientX - this.options[ index ].startX;\n\t\tconst element = this.sliderElements[ index ];\n\t\tconst sliderWidth = element.querySelector( '.frm-slider' ).offsetWidth;\n\n\t\t// Ensure deltaX does not go below 0\n\t\tdeltaX = Math.max( deltaX, 0 );\n\n\t\tif ( deltaX + this.sliderBulletWidth / 2 + this.sliderMarginRight >= sliderWidth ) {\n\t\t\treturn;\n\t\t}\n\t\tconst unit = element.querySelector( 'select' ).value;\n\t\tconst value = this.calculateValue( sliderWidth, deltaX, this.getMaxValue( unit, index ) );\n\n\t\telement.querySelector( '.frm-slider-value input[type=\"text\"]' ).value = value;\n\t\telement.querySelector( '.frm-slider-bullet .frm-slider-value-label' ).innerText = value;\n\t\telement.querySelector( '.frm-slider-active-track' ).style.width = `${deltaX}px`;\n\t\tthis.initChildSlidersWidth( element, deltaX, index, value + unit );\n\n\t\tthis.options[ index ].translateX = deltaX;\n\t\tthis.options[ index ].value = value + unit;\n\t\tthis.options[ index ].fullValue = this.updateValue( element, this.options[ index ].value );\n\t\tthis.valueChangeDebouncer( index );\n\t}\n\n\t/**\n\t * Get the maximum value based on the unit and index.\n\t *\n\t * @param {string} unit - The unit of measurement.\n\t * @param {number} index - The index of the option.\n\t * @return {number} The maximum value.\n\t */\n\tgetMaxValue( unit, index ) {\n\t\treturn '%' === unit ? 100 : this.options[ index ].maxValue;\n\t}\n\n\t/**\n\t * Enables dragging for the slider style component.\n\t *\n\t * @param {Event} event - The event object.\n\t * @param {number} index - The index of the option being dragged.\n\t */\n\tenableDragging( event, index ) {\n\t\tevent.target.classList.add( 'frm-dragging' );\n\t\tthis.options[ index ].dragging = true;\n\t\tthis.options[ index ].startX = event.clientX - this.options[ index ].translateX;\n\t}\n\n\t/**\n\t * Disables dragging for a specific index.\n\t *\n\t * @param {number} index - The index of the option to disable dragging for.\n\t * @param {Event} event - The event object triggered by the dragging action.\n\t */\n\tdisableDragging( index, event ) {\n\t\tif ( false === this.options[ index ].dragging ) {\n\t\t\treturn;\n\t\t}\n\t\tevent.target.classList.remove( 'frm-dragging' );\n\t\tthis.options[ index ].dragging = false;\n\t\tthis.triggerValueChange( index );\n\t}\n\n\t/**\n\t * Triggers a value change for the specified index.\n\t *\n\t * @param {number} index - The index of the value to be changed.\n\t */\n\ttriggerValueChange( index ) {\n\t\tif ( null !== this.options[ index ].dependentUpdater ) {\n\t\t\tthis.options[ index ].dependentUpdater.updateAllDependentElements( this.options[ index ].fullValue );\n\t\t\treturn;\n\t\t}\n\n\t\tconst input = this.sliderElements[ index ].classList.contains( 'frm-has-multiple-values' ) ? this.sliderElements[ index ].closest('.frm-style-component').querySelector( 'input[type=\"hidden\"]' ) : this.sliderElements[ index ].querySelectorAll( '.frm-slider-value input[type=\"hidden\"]' );\n\t\tif ( input instanceof NodeList ) {\n\t\t\tinput.forEach( ( item ) => {\n\t\t\t\titem.dispatchEvent( this.eventsChange[ index ] );\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tinput.dispatchEvent( this.eventsChange[ index ] );\n\t}\n\n\t/**\n\t * Calculates the value based on the width, deltaX, and maxValue.\n\t *\n\t * @param {number} width - The width of the slider.\n\t * @param {number} deltaX - The change in x-coordinate.\n\t * @param {number} maxValue - The maximum value.\n\t * @return {number} - The calculated value.\n\t */\n\tcalculateValue( width, deltaX, maxValue ) {\n\n\t\t// Indicates the additional value generated by the slider's drag progress (up to 100%) and the width of the slider bullet.\n\t\t// Generates a more accurate value for the slider's start (0) and end (maximum value) positions, taking into account the slider's position and bullet width.\n\t\tconst delta = Math.ceil( this.sliderBulletWidth * ( deltaX / width ) );\n\n\t\tconst value = Math.ceil( ( ( deltaX + delta ) / width ) * maxValue );\n\n\t\treturn Math.min( value, maxValue )\n\t}\n\n\t/**\n\t * Updates the value of a slider component.\n\t *\n\t * @param {HTMLElement} element - The slider component element.\n\t * @param {string} value - The new value to be set.\n\t * @return {string} - The updated value.\n\t */\n\tupdateValue( element, value ) {\n\t\tif ( element.classList.contains( 'frm-has-multiple-values' ) ) {\n\t\t\tconst input = element.closest( '.frm-style-component' ).querySelector( 'input[type=\"hidden\"]' );\n\t\t\tconst inputValue = input.value.split( ' ' );\n\t\t\tconst type = element.dataset.type;\n\n\t\t\tif ( ! inputValue[2] ) {\n\t\t\t\tinputValue[2] = '0px';\n\t\t\t}\n\n\t\t\tif ( ! inputValue[3] ) {\n\t\t\t\tinputValue[3] = '0px';\n\t\t\t}\n\n\t\t\tswitch ( type ) {\n\t\t\t\tcase 'vertical':\n\t\t\t\t\tinputValue[0] = value;\n\t\t\t\t\tinputValue[2] = value;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'horizontal':\n\t\t\t\t\tinputValue[1] = value;\n\t\t\t\t\tinputValue[3] = value;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'top':\n\t\t\t\t\tinputValue[0] = value;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'bottom':\n\t\t\t\t\tinputValue[2] = value;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'left':\n\t\t\t\t\tinputValue[3] = value;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'right':\n\t\t\t\t\tinputValue[1] = value;\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst newValue = inputValue.join( ' ' );\n\t\t\tinput.value = newValue;\n\n\t\t\tconst childSlidersGroup = this.getSliderGroupItems( element );\n\t\t\tchildSlidersGroup.forEach( ( slider ) => {\n\t\t\t\tconst unitMeasure = this.getUnitMeasureFromValue( value );\n\t\t\t\tslider.querySelector( '.frm-slider-value input[type=\"text\"]' ).value = parseInt( value, 10 );\n\t\t\t\tslider.querySelector( 'select' ).value = unitMeasure;\n\t\t\t});\n\n\t\t\treturn newValue;\n\t\t}\n\n\t\tif ( element.classList.contains( 'frm-has-independent-fields' ) ) {\n\t\t\tconst inputValues = element.querySelectorAll( '.frm-slider-value input[type=\"hidden\"]' );\n\t\t\tconst visibleValues = element.querySelectorAll( '.frm-slider-value input[type=\"text\"]' );\n\t\t\tinputValues.forEach( ( input, index ) => {\n\t\t\t\tinput.value = value;\n\t\t\t\tvisibleValues[ index + 1 ].value = parseInt( value, 10 );\n\t\t\t});\n\n\t\t\treturn value;\n\t\t}\n\n\t\telement.querySelector( '.frm-slider-value input[type=\"hidden\"]' ).value = value;\n\t\treturn value;\n\t}\n\n\t/**\n\t * Returns the unit of measurement used in the given value.\n\t *\n\t * @param {string} value - The value to check for the unit of measurement.\n\t * @return {string} The unit of measurement ('%', 'px', 'em') found in the value, or an empty string if none is found.\n\t */\n\tgetUnitMeasureFromValue( value ) {\n\t\treturn [ '%', 'px', 'em' ].find( unit => value.includes( unit ) ) || '';\n\t}\n}","import { frmTabsNavigator } from '../../components/class-tabs-navigator';\n/**\n * Represents a Tabs Style Component.\n * @class\n */\nexport default class frmTabsStyleComponent {\n\n\tconstructor() {\n\t\tthis.elements = document.querySelectorAll( '.frm-style-tabs-wrapper' );\n\t\tif ( 0 < this.elements.length ) {\n\t\t\tthis.init();\n\t\t}\n\t}\n\n\t/**\n\t * Initializes the Tabs Style Component.\n\t */\n\tinit() {\n\t\tthis.elements.forEach( ( element ) => {\n\t\t\tnew frmTabsNavigator( element );\n\t\t});\n\t}\n\n\t/**\n\t * Initializes the component on tab click.\n\t * @param {Element} wrapper - The wrapper element.\n\t */\n\tinitOnTabClick( wrapper ) {\n\t\tthis.initActiveBackgroundWidth( wrapper );\n\t\twrapper.querySelectorAll( '.frm-tab-item' ).forEach( ( tab ) => {\n\t\t\ttab.addEventListener( 'click', ( event ) => {\n\t\t\t\tthis.onTabClick( event.target.closest( '.frm-tabs-wrapper' ) );\n\t\t\t});\n\t\t});\n\t}\n}","export const HIDDEN_CLASS = 'frm_hidden';\nexport const CHECKED_CLASS = 'frm-checked';\n","export class frmAnimate {\n\n\t/**\n\t * Construct frmAnimate\n\t *\n\t * @param {Element|Element[]} elements\n\t * @param {'default'|'cascade'|'cascade-3d'} type - The animation type: default | cascade | cascade-3d\n\t *\n\t */\n\tconstructor( elements, type = 'default' ) {\n\t\tthis.elements = elements;\n\t\tthis.type = type;\n\n\t\tthis.prepareElements();\n\t}\n\n\t/**\n\t * Init animation - fadeIn.\n\t * Requires this.type = 'default';\n\t * ex: new frmAnimate( elements ).fadeIn();\n\t */\n\tfadeIn() {\n\t\tthis.applyStyleToElements( element => {\n\t\t\telement.classList.add( 'frm-fadein-up' );\n\n\t\t\telement.addEventListener( 'animationend', () => {\n\t\t\t\tthis.resetOpacity();\n\t\t\t\telement.classList.remove( 'frm-fadein-up' );\n\t\t\t}, { once: true });\n\t\t});\n\t}\n\n\t/**\n\t * Init animation - cascadeFadeIn.\n\t * Requires this.type = 'cascade'|'cascade-3d';\n\t * ex: new frmAnimate( elements, 'cascade' ).cascadeFadeIn();\n\t * new frmAnimate( elements, 'cascade-3d' ).cascadeFadeIn();\n\t *\n\t * @param {float} delay - The transition delay value.\n\t *\n\t */\n\tcascadeFadeIn( delay = 0.03 ) {\n\t\tsetTimeout( () => {\n\t\t\tthis.applyStyleToElements( ( element, index ) => {\n\t\t\t\telement.classList.remove( 'frm-animate' );\n\t\t\t\telement.style.transitionDelay = ( index + 1 ) * delay + 's';\n\t\t\t});\n\t\t}, 200 );\n\t}\n\n\tprepareElements() {\n\t\tthis.applyStyleToElements( element => {\n\t\t\tif ( 'default' === this.type ) {\n\t\t\t\telement.style.opacity = '0.0';\n\t\t\t}\n\t\t\tif ( 'cascade' === this.type ) {\n\t\t\t\telement.classList.add( 'frm-init-cascade-animation' );\n\t\t\t}\n\t\t\tif ( 'cascade-3d' === this.type ) {\n\t\t\t\telement.classList.add( 'frm-init-fadein-3d' );\n\t\t\t}\n\t\t\telement.classList.add( 'frm-animate' );\n\t\t});\n\t}\n\n\tresetOpacity() {\n\t\tthis.applyStyleToElements( element => element.style.opacity = '1.0' );\n\t}\n\n\tapplyStyleToElements( callback ) {\n\t\tif ( this.elements instanceof Element ) {\n\t\t\tcallback( this.elements, 0 );\n\t\t\treturn;\n\t\t}\n\t\tif ( 0 < this.elements.length ) {\n\t\t\tthis.elements.forEach( ( element, index ) => callback( element, index ) );\n\t\t}\n\t}\n}\n","export const { onClickPreventDefault } = window.frmDom.util;\n\nexport * from './visibility';\nexport * from './animation';\nexport * from './requestQueue';\nexport * from './validation';\nexport * from './uiUtils';\nexport * from './url';\n","// Initialize lastPromise with a resolved promise as the starting point for the queue\nlet lastPromise = Promise.resolve();\n\n/**\n * Adds a task to the request queue.\n *\n * @param {function(): Promise} task A function that returns a promise.\n * @return {Promise} The new last promise in the queue.\n */\nexport const addToRequestQueue = task => lastPromise = lastPromise.then( task ).catch( task );\n","/**\n * Internal dependencies\n */\nimport { hide, show } from '.';\n\n/**\n * Displays form validation error messages.\n *\n * @param {string} inputId The ID selector for the input field with the error.\n * @param {string} errorId The ID selector for the error message display element.\n * @param {string} type The categorization of the error (e.g., \"invalid\", \"empty\").\n * @param {string} [message] Optional. The specific error message to display.\n * @return {void}\n */\nexport const showFormError = ( inputId, errorId, type, message ) => {\n\tconst inputElement = document.querySelector( inputId );\n\tconst errorElement = document.querySelector( errorId );\n\n\tif ( ! inputElement || ! errorElement ) {\n\t\tconsole.warn( 'showFormError: Unable to find input or error element.' );\n\t\treturn;\n\t}\n\n\t// If a message is provided, update the span element's text that matches the error type\n\tif ( message ) {\n\t\tconst span = errorElement.querySelector( `span[frm-error=\"${type}\"]` );\n\t\tif ( span ) {\n\t\t\tspan.textContent = message;\n\t\t}\n\t}\n\n\t// Assign the error type and make the error message visible\n\terrorElement.setAttribute( 'frm-error', type );\n\tshow( errorElement );\n\n\t// Hide the error message when the user starts typing in the faulty input field\n\tinputElement.addEventListener( 'keyup', () => {\n\t\thide( errorElement );\n\t}, { once: true });\n};\n","/**\n * Initializes URL and URLSearchParams objects from the current window's location\n */\nconst url = new URL( window.location.href );\nconst urlParams = url.searchParams;\n\n/**\n * Gets the value of a specified query parameter from the current URL.\n *\n * @param {string} paramName The name of the query parameter to retrieve.\n * @return {string|null} The value associated with the specified query parameter name, or null if not found.\n */\nexport const getQueryParam = paramName => urlParams.get( paramName );\n\n/**\n * Removes a query parameter from the current URL and returns the updated URL string.\n *\n * @param {string} paramName The name of the query parameter to remove.\n * @return {string} The updated URL string.\n */\nexport const removeQueryParam = ( paramName ) => {\n\turlParams.delete( paramName );\n\turl.search = urlParams.toString();\n\treturn url.toString();\n};\n\n/**\n * Sets the value of a query parameter in the current URL and optionally updates the browser's history state.\n *\n * @param {string} paramName The name of the query parameter to set.\n * @param {string} paramValue The value to set for the query parameter.\n * @param {string} [updateMethod='pushState'] The method to use for updating the history state. Accepts 'pushState' or 'replaceState'.\n * @return {string} The updated URL string.\n */\nexport const setQueryParam = ( paramName, paramValue, updateMethod = 'pushState' ) => {\n\turlParams.set( paramName, paramValue );\n\turl.search = urlParams.toString();\n\n\tif ([ 'pushState', 'replaceState' ].includes( updateMethod ) ) {\n\t\tconst state = {[paramName]: paramValue};\n\t\twindow.history[updateMethod]( state, '', url );\n\t}\n\n\treturn url.toString();\n};\n\n/**\n * Checks if a query parameter exists in the current URL.\n *\n * @param {string} paramName The name of the query parameter to check.\n * @return {boolean} True if the query parameter exists, otherwise false.\n */\nexport const hasQueryParam = paramName => urlParams.has( paramName );\n","/**\n * Validates an email address using a regular expression.\n *\n * @param {string} email The email address to validate.\n * @return {boolean} True if the email address is valid, otherwise false.\n */\nexport const isValidEmail = email =>\n\ttypeof email === 'string' ? /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/i.test( email ) : false;\n\n/**\n * Validates if the given element is an instance of HTMLElement.\n *\n * @param {any} element Element to be checked.\n * @return {boolean} True if it's an HTMLElement, otherwise false.\n */\nexport const isHTMLElement = element => element instanceof HTMLElement || console.warn( 'Invalid argument: Element must be an instance of HTMLElement' ) || false;\n\n/**\n * Checks if the given object is empty.\n *\n * @param {Object} obj The object to check.\n * @return {boolean} True if the object is empty, otherwise false.\n */\nexport const isEmptyObject = obj => Object.keys( obj ).length === 0 && obj.constructor === Object;\n","import { HIDDEN_CLASS } from '../constants';\n\n/**\n * Shows specified elements by removing the hidden class.\n *\n * @param {Array} elements An array of elements to show.\n * @return {void}\n */\nexport const showElements = elements =>\n\tArray.from( elements )?.forEach( element => show( element ) );\n\n/**\n * Hides specified elements by adding the hidden class.\n *\n * @param {Array} elements An array of elements to hide.\n * @return {void}\n */\nexport const hideElements = elements =>\n\tArray.from( elements )?.forEach( element => hide( element ) );\n\n/**\n * Removes the hidden class to show the element.\n *\n * @param {Element} element The element to show.\n * @return {void}\n */\nexport const show = element => element?.classList.remove( HIDDEN_CLASS );\n\n/**\n * Adds the hidden class to hide the element.\n *\n * @param {Element} element The element to hide.\n * @return {void}\n */\nexport const hide = element => element?.classList.add( HIDDEN_CLASS );\n\n/**\n * Checks if an element is visible.\n *\n * @param {HTMLElement} element The HTML element to check for visibility.\n * @return {boolean} Returns true if the element is visible, otherwise false.\n */\nexport const isVisible = element => {\n\tconst styles = window.getComputedStyle( element );\n\treturn styles.getPropertyValue( 'display' ) !== 'none';\n};\n","export class frmTabsNavigator {\n\n\tconstructor( wrapper ) {\n\t\tif ( 'undefined' === typeof wrapper ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.wrapper = wrapper instanceof Element ? wrapper : document.querySelector( wrapper );\n\n\t\tif ( null === this.wrapper ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.flexboxSlidesGap = '16px';\n\t\tthis.navs = this.wrapper.querySelectorAll( '.frm-tabs-navs ul > li' );\n\t\tthis.slideTrackLine = this.wrapper.querySelector( '.frm-tabs-active-underline' );\n\t\tthis.slideTrack = this.wrapper.querySelector( '.frm-tabs-slide-track' );\n\t\tthis.slides = this.wrapper.querySelectorAll( '.frm-tabs-slide-track > div' );\n\n\t\tthis.init();\n\t}\n\n\tinit() {\n\t\tif ( null === this.wrapper || ! this.navs.length || null === this.trackLine || null === this.slideTrack || ! this.slides.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.initDefaultSlideTrackerWidth();\n\t\tthis.navs.forEach( ( nav, index ) => {\n\t\t\tnav.addEventListener( 'click', event => this.onNavClick( event, index ) );\n\t\t});\n\t}\n\n\tonNavClick( event, index ) {\n\t\tthis.removeActiveClassnameFromNavs();\n\t\tevent.target.classList.add( 'frm-active' );\n\t\tthis.initSlideTrackUnderline( event.target, index );\n\t\tthis.changeSlide( index );\n\t}\n\n\tinitDefaultSlideTrackerWidth() {\n\t\tif ( ! this.slideTrackLine.dataset.initialWidth ) {\n\t\t\treturn;\n\t\t}\n\t\tthis.slideTrackLine.style.width = `${this.slideTrackLine.dataset.initialWidth}px`;\n\t}\n\tinitSlideTrackUnderline( nav, index ) {\n\t\tthis.slideTrackLine.classList.remove( 'frm-first', 'frm-last' );\n\t\tconst activeNav = 'undefined' !== typeof nav ? nav : this.navs.filter( nav => nav.classList.contains( 'frm-active' ) ) ;\n\t\tthis.slideTrackLine.style.transform = `translateX(${activeNav.offsetLeft}px)`;\n\t\tthis.slideTrackLine.style.width = activeNav.clientWidth + 'px';\n\n\t\tif ( this.navs.length === index + 1 ) { \n\t\t\tthis.slideTrackLine.classList.add( 'frm-last' );\n\t\t\treturn;\n\t\t}\n\t\tif ( 0 === index ) {\n\t\t\tthis.slideTrackLine.classList.add( 'frm-first' );\n\t\t}\n\t}\n\n\tchangeSlide( index ) {\n\t\tthis.removeActiveClassnameFromSlides();\n\t\tconst translate = index == 0 ? '0px' : `calc( ( ${( index * 100 )}% + ${parseInt( this.flexboxSlidesGap, 10 ) * index }px ) * -1 )`;\n\t\tthis.slideTrack.style.transform = `translateX(${translate})`;\n\t\tif ( index in this.slides ) {\n\t\t\tthis.slides[ index ].classList.add( 'frm-active' );\n\t\t}\n\t}\n\n\tremoveActiveClassnameFromSlides() {\n\t\tthis.slides.forEach( slide => slide.classList.remove( 'frm-active' ) );\n\t}\n\n\tremoveActiveClassnameFromNavs() {\n\t\tthis.navs.forEach( nav => nav.classList.remove( 'frm-active' ) );\n\t}\n}\n","/**\n * Memize options object.\n *\n * @typedef MemizeOptions\n *\n * @property {number} [maxSize] Maximum size of the cache.\n */\n\n/**\n * Internal cache entry.\n *\n * @typedef MemizeCacheNode\n *\n * @property {?MemizeCacheNode|undefined} [prev] Previous node.\n * @property {?MemizeCacheNode|undefined} [next] Next node.\n * @property {Array<*>} args Function arguments for cache\n * entry.\n * @property {*} val Function result.\n */\n\n/**\n * Properties of the enhanced function for controlling cache.\n *\n * @typedef MemizeMemoizedFunction\n *\n * @property {()=>void} clear Clear the cache.\n */\n\n/**\n * Accepts a function to be memoized, and returns a new memoized function, with\n * optional options.\n *\n * @template {Function} F\n *\n * @param {F} fn Function to memoize.\n * @param {MemizeOptions} [options] Options object.\n *\n * @return {F & MemizeMemoizedFunction} Memoized function.\n */\nfunction memize( fn, options ) {\n\tvar size = 0;\n\n\t/** @type {?MemizeCacheNode|undefined} */\n\tvar head;\n\n\t/** @type {?MemizeCacheNode|undefined} */\n\tvar tail;\n\n\toptions = options || {};\n\n\tfunction memoized( /* ...args */ ) {\n\t\tvar node = head,\n\t\t\tlen = arguments.length,\n\t\t\targs, i;\n\n\t\tsearchCache: while ( node ) {\n\t\t\t// Perform a shallow equality test to confirm that whether the node\n\t\t\t// under test is a candidate for the arguments passed. Two arrays\n\t\t\t// are shallowly equal if their length matches and each entry is\n\t\t\t// strictly equal between the two sets. Avoid abstracting to a\n\t\t\t// function which could incur an arguments leaking deoptimization.\n\n\t\t\t// Check whether node arguments match arguments length\n\t\t\tif ( node.args.length !== arguments.length ) {\n\t\t\t\tnode = node.next;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Check whether node arguments match arguments values\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tif ( node.args[ i ] !== arguments[ i ] ) {\n\t\t\t\t\tnode = node.next;\n\t\t\t\t\tcontinue searchCache;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// At this point we can assume we've found a match\n\n\t\t\t// Surface matched node to head if not already\n\t\t\tif ( node !== head ) {\n\t\t\t\t// As tail, shift to previous. Must only shift if not also\n\t\t\t\t// head, since if both head and tail, there is no previous.\n\t\t\t\tif ( node === tail ) {\n\t\t\t\t\ttail = node.prev;\n\t\t\t\t}\n\n\t\t\t\t// Adjust siblings to point to each other. If node was tail,\n\t\t\t\t// this also handles new tail's empty `next` assignment.\n\t\t\t\t/** @type {MemizeCacheNode} */ ( node.prev ).next = node.next;\n\t\t\t\tif ( node.next ) {\n\t\t\t\t\tnode.next.prev = node.prev;\n\t\t\t\t}\n\n\t\t\t\tnode.next = head;\n\t\t\t\tnode.prev = null;\n\t\t\t\t/** @type {MemizeCacheNode} */ ( head ).prev = node;\n\t\t\t\thead = node;\n\t\t\t}\n\n\t\t\t// Return immediately\n\t\t\treturn node.val;\n\t\t}\n\n\t\t// No cached value found. Continue to insertion phase:\n\n\t\t// Create a copy of arguments (avoid leaking deoptimization)\n\t\targs = new Array( len );\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tnode = {\n\t\t\targs: args,\n\n\t\t\t// Generate the result from original function\n\t\t\tval: fn.apply( null, args ),\n\t\t};\n\n\t\t// Don't need to check whether node is already head, since it would\n\t\t// have been returned above already if it was\n\n\t\t// Shift existing head down list\n\t\tif ( head ) {\n\t\t\thead.prev = node;\n\t\t\tnode.next = head;\n\t\t} else {\n\t\t\t// If no head, follows that there's no tail (at initial or reset)\n\t\t\ttail = node;\n\t\t}\n\n\t\t// Trim tail if we're reached max size and are pending cache insertion\n\t\tif ( size === /** @type {MemizeOptions} */ ( options ).maxSize ) {\n\t\t\ttail = /** @type {MemizeCacheNode} */ ( tail ).prev;\n\t\t\t/** @type {MemizeCacheNode} */ ( tail ).next = null;\n\t\t} else {\n\t\t\tsize++;\n\t\t}\n\n\t\thead = node;\n\n\t\treturn node.val;\n\t}\n\n\tmemoized.clear = function() {\n\t\thead = null;\n\t\ttail = null;\n\t\tsize = 0;\n\t};\n\n\tif ( process.env.NODE_ENV === 'test' ) {\n\t\t// Cache is not exposed in the public API, but used in tests to ensure\n\t\t// expected list progression\n\t\tmemoized.getCache = function() {\n\t\t\treturn [ head, tail, size ];\n\t\t};\n\t}\n\n\t// Ignore reason: There's not a clear solution to create an intersection of\n\t// the function with additional properties, where the goal is to retain the\n\t// function signature of the incoming argument and add control properties\n\t// on the return value.\n\n\t// @ts-ignore\n\treturn memoized;\n}\n\nmodule.exports = memize;\n","/* global window, exports, define */\n\n!function() {\n 'use strict'\n\n var re = {\n not_string: /[^s]/,\n not_bool: /[^t]/,\n not_type: /[^T]/,\n not_primitive: /[^v]/,\n number: /[diefg]/,\n numeric_arg: /[bcdiefguxX]/,\n json: /[j]/,\n not_json: /[^j]/,\n text: /^[^\\x25]+/,\n modulo: /^\\x25{2}/,\n placeholder: /^\\x25(?:([1-9]\\d*)\\$|\\(([^)]+)\\))?(\\+)?(0|'[^$])?(-)?(\\d+)?(?:\\.(\\d+))?([b-gijostTuvxX])/,\n key: /^([a-z_][a-z_\\d]*)/i,\n key_access: /^\\.([a-z_][a-z_\\d]*)/i,\n index_access: /^\\[(\\d+)\\]/,\n sign: /^[+-]/\n }\n\n function sprintf(key) {\n // `arguments` is not an array, but should be fine for this call\n return sprintf_format(sprintf_parse(key), arguments)\n }\n\n function vsprintf(fmt, argv) {\n return sprintf.apply(null, [fmt].concat(argv || []))\n }\n\n function sprintf_format(parse_tree, argv) {\n var cursor = 1, tree_length = parse_tree.length, arg, output = '', i, k, ph, pad, pad_character, pad_length, is_positive, sign\n for (i = 0; i < tree_length; i++) {\n if (typeof parse_tree[i] === 'string') {\n output += parse_tree[i]\n }\n else if (typeof parse_tree[i] === 'object') {\n ph = parse_tree[i] // convenience purposes only\n if (ph.keys) { // keyword argument\n arg = argv[cursor]\n for (k = 0; k < ph.keys.length; k++) {\n if (arg == undefined) {\n throw new Error(sprintf('[sprintf] Cannot access property \"%s\" of undefined value \"%s\"', ph.keys[k], ph.keys[k-1]))\n }\n arg = arg[ph.keys[k]]\n }\n }\n else if (ph.param_no) { // positional argument (explicit)\n arg = argv[ph.param_no]\n }\n else { // positional argument (implicit)\n arg = argv[cursor++]\n }\n\n if (re.not_type.test(ph.type) && re.not_primitive.test(ph.type) && arg instanceof Function) {\n arg = arg()\n }\n\n if (re.numeric_arg.test(ph.type) && (typeof arg !== 'number' && isNaN(arg))) {\n throw new TypeError(sprintf('[sprintf] expecting number but found %T', arg))\n }\n\n if (re.number.test(ph.type)) {\n is_positive = arg >= 0\n }\n\n switch (ph.type) {\n case 'b':\n arg = parseInt(arg, 10).toString(2)\n break\n case 'c':\n arg = String.fromCharCode(parseInt(arg, 10))\n break\n case 'd':\n case 'i':\n arg = parseInt(arg, 10)\n break\n case 'j':\n arg = JSON.stringify(arg, null, ph.width ? parseInt(ph.width) : 0)\n break\n case 'e':\n arg = ph.precision ? parseFloat(arg).toExponential(ph.precision) : parseFloat(arg).toExponential()\n break\n case 'f':\n arg = ph.precision ? parseFloat(arg).toFixed(ph.precision) : parseFloat(arg)\n break\n case 'g':\n arg = ph.precision ? String(Number(arg.toPrecision(ph.precision))) : parseFloat(arg)\n break\n case 'o':\n arg = (parseInt(arg, 10) >>> 0).toString(8)\n break\n case 's':\n arg = String(arg)\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 't':\n arg = String(!!arg)\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 'T':\n arg = Object.prototype.toString.call(arg).slice(8, -1).toLowerCase()\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 'u':\n arg = parseInt(arg, 10) >>> 0\n break\n case 'v':\n arg = arg.valueOf()\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 'x':\n arg = (parseInt(arg, 10) >>> 0).toString(16)\n break\n case 'X':\n arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase()\n break\n }\n if (re.json.test(ph.type)) {\n output += arg\n }\n else {\n if (re.number.test(ph.type) && (!is_positive || ph.sign)) {\n sign = is_positive ? '+' : '-'\n arg = arg.toString().replace(re.sign, '')\n }\n else {\n sign = ''\n }\n pad_character = ph.pad_char ? ph.pad_char === '0' ? '0' : ph.pad_char.charAt(1) : ' '\n pad_length = ph.width - (sign + arg).length\n pad = ph.width ? (pad_length > 0 ? pad_character.repeat(pad_length) : '') : ''\n output += ph.align ? sign + arg + pad : (pad_character === '0' ? sign + pad + arg : pad + sign + arg)\n }\n }\n }\n return output\n }\n\n var sprintf_cache = Object.create(null)\n\n function sprintf_parse(fmt) {\n if (sprintf_cache[fmt]) {\n return sprintf_cache[fmt]\n }\n\n var _fmt = fmt, match, parse_tree = [], arg_names = 0\n while (_fmt) {\n if ((match = re.text.exec(_fmt)) !== null) {\n parse_tree.push(match[0])\n }\n else if ((match = re.modulo.exec(_fmt)) !== null) {\n parse_tree.push('%')\n }\n else if ((match = re.placeholder.exec(_fmt)) !== null) {\n if (match[2]) {\n arg_names |= 1\n var field_list = [], replacement_field = match[2], field_match = []\n if ((field_match = re.key.exec(replacement_field)) !== null) {\n field_list.push(field_match[1])\n while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') {\n if ((field_match = re.key_access.exec(replacement_field)) !== null) {\n field_list.push(field_match[1])\n }\n else if ((field_match = re.index_access.exec(replacement_field)) !== null) {\n field_list.push(field_match[1])\n }\n else {\n throw new SyntaxError('[sprintf] failed to parse named argument key')\n }\n }\n }\n else {\n throw new SyntaxError('[sprintf] failed to parse named argument key')\n }\n match[2] = field_list\n }\n else {\n arg_names |= 2\n }\n if (arg_names === 3) {\n throw new Error('[sprintf] mixing positional and named placeholders is not (yet) supported')\n }\n\n parse_tree.push(\n {\n placeholder: match[0],\n param_no: match[1],\n keys: match[2],\n sign: match[3],\n pad_char: match[4],\n align: match[5],\n width: match[6],\n precision: match[7],\n type: match[8]\n }\n )\n }\n else {\n throw new SyntaxError('[sprintf] unexpected placeholder')\n }\n _fmt = _fmt.substring(match[0].length)\n }\n return sprintf_cache[fmt] = parse_tree\n }\n\n /**\n * export to either browser or node.js\n */\n /* eslint-disable quote-props */\n if (typeof exports !== 'undefined') {\n exports['sprintf'] = sprintf\n exports['vsprintf'] = vsprintf\n }\n if (typeof window !== 'undefined') {\n window['sprintf'] = sprintf\n window['vsprintf'] = vsprintf\n\n if (typeof define === 'function' && define['amd']) {\n define(function() {\n return {\n 'sprintf': sprintf,\n 'vsprintf': vsprintf\n }\n })\n }\n }\n /* eslint-enable quote-props */\n}(); // eslint-disable-line\n","import pluralForms from '@tannin/plural-forms';\n\n/**\n * Tannin constructor options.\n *\n * @typedef {Object} TanninOptions\n *\n * @property {string} [contextDelimiter] Joiner in string lookup with context.\n * @property {Function} [onMissingKey] Callback to invoke when key missing.\n */\n\n/**\n * Domain metadata.\n *\n * @typedef {Object} TanninDomainMetadata\n *\n * @property {string} [domain] Domain name.\n * @property {string} [lang] Language code.\n * @property {(string|Function)} [plural_forms] Plural forms expression or\n * function evaluator.\n */\n\n/**\n * Domain translation pair respectively representing the singular and plural\n * translation.\n *\n * @typedef {[string,string]} TanninTranslation\n */\n\n/**\n * Locale data domain. The key is used as reference for lookup, the value an\n * array of two string entries respectively representing the singular and plural\n * translation.\n *\n * @typedef {{[key:string]:TanninDomainMetadata|TanninTranslation,'':TanninDomainMetadata|TanninTranslation}} TanninLocaleDomain\n */\n\n/**\n * Jed-formatted locale data.\n *\n * @see http://messageformat.github.io/Jed/\n *\n * @typedef {{[domain:string]:TanninLocaleDomain}} TanninLocaleData\n */\n\n/**\n * Default Tannin constructor options.\n *\n * @type {TanninOptions}\n */\nvar DEFAULT_OPTIONS = {\n\tcontextDelimiter: '\\u0004',\n\tonMissingKey: null,\n};\n\n/**\n * Given a specific locale data's config `plural_forms` value, returns the\n * expression.\n *\n * @example\n *\n * ```\n * getPluralExpression( 'nplurals=2; plural=(n != 1);' ) === '(n != 1)'\n * ```\n *\n * @param {string} pf Locale data plural forms.\n *\n * @return {string} Plural forms expression.\n */\nfunction getPluralExpression( pf ) {\n\tvar parts, i, part;\n\n\tparts = pf.split( ';' );\n\n\tfor ( i = 0; i < parts.length; i++ ) {\n\t\tpart = parts[ i ].trim();\n\t\tif ( part.indexOf( 'plural=' ) === 0 ) {\n\t\t\treturn part.substr( 7 );\n\t\t}\n\t}\n}\n\n/**\n * Tannin constructor.\n *\n * @class\n *\n * @param {TanninLocaleData} data Jed-formatted locale data.\n * @param {TanninOptions} [options] Tannin options.\n */\nexport default function Tannin( data, options ) {\n\tvar key;\n\n\t/**\n\t * Jed-formatted locale data.\n\t *\n\t * @name Tannin#data\n\t * @type {TanninLocaleData}\n\t */\n\tthis.data = data;\n\n\t/**\n\t * Plural forms function cache, keyed by plural forms string.\n\t *\n\t * @name Tannin#pluralForms\n\t * @type {Object}\n\t */\n\tthis.pluralForms = {};\n\n\t/**\n\t * Effective options for instance, including defaults.\n\t *\n\t * @name Tannin#options\n\t * @type {TanninOptions}\n\t */\n\tthis.options = {};\n\n\tfor ( key in DEFAULT_OPTIONS ) {\n\t\tthis.options[ key ] = options !== undefined && key in options\n\t\t\t? options[ key ]\n\t\t\t: DEFAULT_OPTIONS[ key ];\n\t}\n}\n\n/**\n * Returns the plural form index for the given domain and value.\n *\n * @param {string} domain Domain on which to calculate plural form.\n * @param {number} n Value for which plural form is to be calculated.\n *\n * @return {number} Plural form index.\n */\nTannin.prototype.getPluralForm = function( domain, n ) {\n\tvar getPluralForm = this.pluralForms[ domain ],\n\t\tconfig, plural, pf;\n\n\tif ( ! getPluralForm ) {\n\t\tconfig = this.data[ domain ][ '' ];\n\n\t\tpf = (\n\t\t\tconfig[ 'Plural-Forms' ] ||\n\t\t\tconfig[ 'plural-forms' ] ||\n\t\t\t// Ignore reason: As known, there's no way to document the empty\n\t\t\t// string property on a key to guarantee this as metadata.\n\t\t\t// @ts-ignore\n\t\t\tconfig.plural_forms\n\t\t);\n\n\t\tif ( typeof pf !== 'function' ) {\n\t\t\tplural = getPluralExpression(\n\t\t\t\tconfig[ 'Plural-Forms' ] ||\n\t\t\t\tconfig[ 'plural-forms' ] ||\n\t\t\t\t// Ignore reason: As known, there's no way to document the empty\n\t\t\t\t// string property on a key to guarantee this as metadata.\n\t\t\t\t// @ts-ignore\n\t\t\t\tconfig.plural_forms\n\t\t\t);\n\n\t\t\tpf = pluralForms( plural );\n\t\t}\n\n\t\tgetPluralForm = this.pluralForms[ domain ] = pf;\n\t}\n\n\treturn getPluralForm( n );\n};\n\n/**\n * Translate a string.\n *\n * @param {string} domain Translation domain.\n * @param {string|void} context Context distinguishing terms of the same name.\n * @param {string} singular Primary key for translation lookup.\n * @param {string=} plural Fallback value used for non-zero plural\n * form index.\n * @param {number=} n Value to use in calculating plural form.\n *\n * @return {string} Translated string.\n */\nTannin.prototype.dcnpgettext = function( domain, context, singular, plural, n ) {\n\tvar index, key, entry;\n\n\tif ( n === undefined ) {\n\t\t// Default to singular.\n\t\tindex = 0;\n\t} else {\n\t\t// Find index by evaluating plural form for value.\n\t\tindex = this.getPluralForm( domain, n );\n\t}\n\n\tkey = singular;\n\n\t// If provided, context is prepended to key with delimiter.\n\tif ( context ) {\n\t\tkey = context + this.options.contextDelimiter + singular;\n\t}\n\n\tentry = this.data[ domain ][ key ];\n\n\t// Verify not only that entry exists, but that the intended index is within\n\t// range and non-empty.\n\tif ( entry && entry[ index ] ) {\n\t\treturn entry[ index ];\n\t}\n\n\tif ( this.options.onMissingKey ) {\n\t\tthis.options.onMissingKey( singular, domain );\n\t}\n\n\t// If entry not found, fall back to singular vs. plural with zero index\n\t// representing the singular value.\n\treturn index === 0 ? singular : plural;\n};\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","import _typeof from \"./typeof.js\";\nexport default function toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : String(i);\n}","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { __ } from '@wordpress/i18n';\nimport frmRadioStyleComponent from './styles/radio-style-component.js';\nimport frmSliderStyleComponent from './styles/slider-style-component.js';\nimport frmTabsStyleComponent from './styles/tabs-style-component.js';\nimport frmStyleDependentUpdaterComponent from './styles/dependent-updater-component.js';\n\n/**\n * Represents the frmStyleOptions class.\n * @class\n */\nclass frmStyleOptions {\n\n\tconstructor() {\n\t\tthis.success = frmDom.success;\n\t\tthis.init();\n\t\tthis.initHover();\n\t}\n\n\t/**\n\t * Initializes the style components: frmRadioStyleComponent, frmSliderStyleComponent, and frmTabsStyleComponent.\n\t * Init the dependent \n\t */\n\tinit() {\n\t\tnew frmRadioStyleComponent();\n\t\tnew frmSliderStyleComponent();\n\t\tnew frmTabsStyleComponent();\n\n\t\tthis.initColorPickerDependentUpdaterComponents();\n\t\tthis.initStyleClassCopyToClipboard( __( 'The class name has been copied.', 'formidable' ) );\n\t}\n\n\t/**\n\t * Initializes the color picker dependent updater components.\n\t * Retrieves the components and elements, and adds them to the elements array.\n\t * Adds an action hook for the frm_style_options_color_change event.\n\t */\n\tinitColorPickerDependentUpdaterComponents() {\n\t\tconst components = document.querySelectorAll( '.frm-style-dependent-updater-component.frm-colorpicker' );\n\t\tconst elements = [];\n\n\t\tcomponents.forEach( ( component ) => {\n\t\t\tconst element = component.querySelector( 'input.hex' );\n\t\t\tconst id = 'undefined' !== typeof element ? element.getAttribute( 'id' ) : null;\n\n\t\t\tif ( null !== id ) {\n\t\t\t\telements.push({\n\t\t\t\t\tid: id,\n\t\t\t\t\tdependentUpdaterClass: new frmStyleDependentUpdaterComponent( component, 'colorpicker' )\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\twp.hooks.addAction( 'frm_style_options_color_change', 'formidable', ( { event, value } ) => {\n\t\t\tconst container = event.target.closest( '.wp-picker-container' );\n\t\t\tconst id = event.target.getAttribute( 'id' );\n\n\t\t\tcontainer.querySelector( '.wp-color-result-text' ).innerText = value;\n\n\t\t\telements.forEach( ( element ) => {\n\t\t\t\tif ( element.id === id ) {\n\t\t\t\t\telement.dependentUpdaterClass.updateAllDependentElements( value );\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Initializes the hover functionality for the style options.\n\t * Creates a hover element and appends it to the settingsWrapper.\n\t * Adds event listeners for mouseover and click events.\n\t */\n\tinitHover() {\n\t\tconst settingsWrapper = document.querySelector( '.frm-right-panel .styling_settings .accordion-container' );\n\t\tif ( null === settingsWrapper ) {\n\t\t\treturn;\n\t\t}\n\t\tconst hoverElement = document.createElement( 'div' );\n\t\thoverElement.classList.add( 'frm_hidden' );\n\t\thoverElement.classList.add( 'frm-style-settings-hover' );\n\t\tsettingsWrapper.appendChild( hoverElement );\n\n\t\tconst styleOptionsMenu = settingsWrapper.querySelector( ':scope > ul' );\n\n\t\tstyleOptionsMenu.querySelectorAll( ':scope > li' ).forEach( ( item ) => {\n\t\t\titem.querySelector('h3').addEventListener( 'mouseover', ( event ) => {\n\t\t\t\thoverElement.style.transform = `translateY(${event.target.closest('li').offsetTop}px)`;\n\t\t\t\thoverElement.classList.add( 'frm-animating' );\n\t\t\t\thoverElement.classList.remove( 'frm_hidden' );\n\t\t\t\tsetTimeout( () => { hoverElement.classList.remove( 'frm-animating' ); }, 250 );\n\t\t\t});\n\t\t});\n\n\t\tconst accordionitems = document.querySelectorAll( '#frm_style_sidebar .accordion-section h3' );\n\t\taccordionitems.forEach( ( item ) => {\n\t\t\titem.addEventListener( 'click', () => {\n\t\t\t\thoverElement.classList.add( 'frm_hidden' );\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Initializes the copy to clipboard functionality for style classes.\n\t * Adds a click event listener to the copyLabel element.\n\t * Copies the class name to the clipboard and displays a success message.\n\t * @param {string} successMessage - The success message to display.\n\t */\n\tinitStyleClassCopyToClipboard( successMessage ) {\n\t\tconst copyLabel = document.querySelector( '.frm-copy-text' );\n\t\tcopyLabel.addEventListener( 'click', ( event ) => {\n\t\t\tconst className = event.target.innerText;\n\t\t\tnavigator.clipboard.writeText( className ).then( () => {\n\t\t\t\tthis.success( successMessage );\n\t\t\t});\n\t\t})\n\t}\n}\n\nnew frmStyleOptions();\n"],"names":["frmStyleDependentUpdaterComponent","component","_classCallCheck","willChangeData","JSON","parse","dataset","willChange","data","propagateInputs","initPropagationList","changeEvent","Event","bubbles","error","console","_createClass","key","value","inputNames","list","forEach","name","input","document","querySelector","concat","push","updateAllDependentElements","dispatchEvent","default","show","hide","frmRadioStyleComponent","radioElements","querySelectorAll","length","init","_this","element","initOnRadioChange","initTrackerOnAccordionClick","_this2","accordionitems","accordionitem","addEventListener","event","wrapper","target","closest","radioButtons","radio","setTimeout","onRadioChange","radioElement","_this3","checked","activeItem","moveTracker","hideExtraElements","maybeShowExtraElements","elementAttr","getAttribute","elements","classList","add","remove","offset","offsetLeft","width","offsetWidth","tracker","style","left","transform","frmSliderStyleComponent","sliderElements","sliderBulletWidth","sliderMarginRight","eventsChange","debounce","frmDom","util","valueChangeDebouncer","index","triggerValueChange","initOptions","options","parentWrapper","contains","dragging","startX","translateX","maxValue","parseInt","dependentUpdater","initSlidersPosition","initDraggable","cancelable","draggableBullet","valueInput","unit","getMaxValue","initSliderWidth","updateValue","expandSliderGroup","updateOnUnitChange","changeSliderPositionOnClick","preventDefault","stopPropagation","enableDragging","disableDragging","svgIcon","displaySliders","sliderGroupItems","getSliderGroupItems","item","toggle","_this4","toLowerCase","fullValue","_this5","frmSlider","customEvent","sliderWidth","sliderRect","getBoundingClientRect","deltaX","clientX","calculateValue","initChildSlidersWidth","slidersGroup","split","query","map","join","_this6","quickSettings","openedAccordion","wp","hooks","addAction","imageBackgroundOpacitySlider","initSlidersWidth","initSliderPositionOnFieldShapeChange","_this7","fieldShapeType","slider","section","_this8","sliders","getSliderIndex","Math","round","ceil","_this9","childSliders","childIndex","filter","option","max","innerText","_this10","NodeList","delta","min","_this11","inputValue","type","newValue","childSlidersGroup","unitMeasure","getUnitMeasureFromValue","inputValues","visibleValues","find","includes","frmTabsNavigator","frmTabsStyleComponent","initOnTabClick","initActiveBackgroundWidth","tab","onTabClick","HIDDEN_CLASS","CHECKED_CLASS","frmAnimate","arguments","undefined","prepareElements","fadeIn","applyStyleToElements","resetOpacity","once","cascadeFadeIn","delay","transitionDelay","opacity","callback","Element","onClickPreventDefault","window","lastPromise","Promise","resolve","addToRequestQueue","task","then","catch","showFormError","inputId","errorId","message","inputElement","errorElement","warn","span","textContent","setAttribute","url","URL","location","href","urlParams","searchParams","getQueryParam","paramName","get","removeQueryParam","delete","search","toString","setQueryParam","paramValue","updateMethod","set","state","_defineProperty","history","hasQueryParam","has","isValidEmail","email","test","isHTMLElement","HTMLElement","isEmptyObject","obj","Object","keys","constructor","showElements","_Array$from","Array","from","hideElements","_Array$from2","isVisible","styles","getComputedStyle","getPropertyValue","flexboxSlidesGap","navs","slideTrackLine","slideTrack","slides","trackLine","initDefaultSlideTrackerWidth","nav","onNavClick","removeActiveClassnameFromNavs","initSlideTrackUnderline","changeSlide","initialWidth","activeNav","clientWidth","removeActiveClassnameFromSlides","translate","slide","__","frmStyleOptions","success","initHover","initColorPickerDependentUpdaterComponents","initStyleClassCopyToClipboard","components","id","dependentUpdaterClass","_ref","container","settingsWrapper","hoverElement","createElement","appendChild","styleOptionsMenu","offsetTop","successMessage","copyLabel","className","navigator","clipboard","writeText"],"sourceRoot":""} \ No newline at end of file diff --git a/js/src/admin/styles/slider-style-component.js b/js/src/admin/styles/slider-style-component.js index 9f4f6140dd..5f61972560 100644 --- a/js/src/admin/styles/slider-style-component.js +++ b/js/src/admin/styles/slider-style-component.js @@ -204,13 +204,27 @@ export default class frmSliderStyleComponent { * Initializes the position of sliders when a style accordion section is opened. */ initSlidersPosition() { - const accordionitems = document.querySelectorAll( '#frm_style_sidebar .accordion-section h3' ); - const quickSettings = document.querySelector( '.frm-quick-settings' ); + const accordionitems = document.querySelectorAll( '#frm_style_sidebar .accordion-section h3' ); + const quickSettings = document.querySelector( '.frm-quick-settings' ); + const openedAccordion = document.querySelector( '.accordion-section.open' ); + + // Detect if upload background image upload has triggered and initialize the "Image Opacity" slider width. + wp.hooks.addAction( 'frm_pro_on_bg_image_upload', 'formidable', ( event ) => { + const imageBackgroundOpacitySlider = event.closest( '.accordion-section-content' ).querySelector( '#frm-bg-image-opacity-slider' ); + this.initSlidersWidth( imageBackgroundOpacitySlider ); + }); + // init the sliders width from "Quick Settings" page. if ( null !== quickSettings ) { this.initSlidersWidth( quickSettings ); } + // Init the sliders width in opened accordion section from "Advanced Settings" page. + if ( null !== openedAccordion ) { + this.initSlidersWidth( openedAccordion ); + } + + // init the sliders width everytime when an accordion section is opened from "Advanced Settings" page. accordionitems.forEach( ( item ) => { item.addEventListener( 'click', ( event ) => { this.initSlidersWidth( event.target.closest( '.accordion-section' ) ); From 8f26d2b9e486bcee687627283f65e57f065544e0 Mon Sep 17 00:00:00 2001 From: liviu13 Date: Tue, 10 Sep 2024 16:07:16 +0300 Subject: [PATCH 2/2] move colordebouncer for quick settings components outside PRO check --- js/admin/style.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/js/admin/style.js b/js/admin/style.js index f9383b0fd1..a7106668b7 100644 --- a/js/admin/style.js +++ b/js/admin/style.js @@ -1170,8 +1170,9 @@ // If there's transparency, use RGBA color = ui.color.toCSS( 'rgba' ); } + debouncedColorChange( event, color ); + if ( null !== event.target.getAttribute( 'data-alpha-color-type' ) ) { - debouncedColorChange( event, color ); debouncedPreviewUpdate(); return; }